Received: by 2002:ac0:c50a:0:0:0:0:0 with SMTP id y10csp1212920imi; Fri, 1 Jul 2022 05:31:58 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uha0BHFRI4pe1AsavEtSIcRS8d6cfrbiU3AlVkliper0VovW+JZMLR4o7qkS9w3T7jXLUG X-Received: by 2002:a63:4c:0:b0:408:c003:a45c with SMTP id 73-20020a63004c000000b00408c003a45cmr12648210pga.252.1656678718440; Fri, 01 Jul 2022 05:31:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656678718; cv=none; d=google.com; s=arc-20160816; b=HrckkrW3TkmraTAzSJzYVxCqsSU1OhQQHhAKDAN6HvMxIuEz4VX++mAcw9Sz802WMh lfmW7rXA5c23H6OkOqSos/pMuMVkkaxYVKWsPuNJULdkKz8TmEgtCWoFF8N/Fj/AYxJS 0FtcsCyNf7XDs66I1u9v3wCBhgDquXYW1EivBkDxqQmz0Krtusnq52aeVeFfSiqaDWCe pB0tw0WXu4hIYzAE20Ua18Y4cSkXFZRh/78z4/zD8tGU/IFjPDil1vthLfDDGNgzhDyl GilTEmztOxeDy4zW216Bi4fzOkRNmXjJpoImtBLQp5sQ/ma2i0O1lHC5bKeA3ehEMmCs dxlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version:reply-to :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ZP5SmKEkYET/hECY/RJS5MWkuaoqC8cNJzMkwVE3a9U=; b=TWs2MHRLOotuxFbsjzjJ7q466mdY7jKgfBLnsRC1RHhG/jaFSjMzP1Z+O/G2TVha2Y 3/918/ScSBXUFEnB6gYeW9jb+BF8AYQDMywPEAYbzYEldcWLMmUUf8QxBtzPQfV8/vN6 0YjFQ05ZXfZKu/lLfUu/d0WRBx0+O7Lh46IbmSQVuvC0Qx/z0pGpV/VpCelD7BrbwjYG RM2y+si5CuaAYuy2+mzUZUVOei21SQpzedfRI/IRx0BnqvmFNJ5Gc19g3Sa0U4deBhky QfKyMRFLhj+RkNlnsh/iNAa9+Hr0YCYHbcPsNq9Y+64wX8qwun2Su733QV9kEMyPDoQu M5fw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 34-20020a631262000000b0040cf2e6f0e7si17171469pgs.497.2022.07.01.05.31.46; Fri, 01 Jul 2022 05:31:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236730AbiGAMJU (ORCPT + 99 others); Fri, 1 Jul 2022 08:09:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232975AbiGAMJG (ORCPT ); Fri, 1 Jul 2022 08:09:06 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7CA0B7BD26; Fri, 1 Jul 2022 05:09:05 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 55B56113E; Fri, 1 Jul 2022 05:09:05 -0700 (PDT) Received: from e126387.arm.com (unknown [10.57.71.134]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DAB8B3F792; Fri, 1 Jul 2022 05:09:03 -0700 (PDT) From: carsten.haitzler@foss.arm.com To: linux-kernel@vger.kernel.org Cc: coresight@lists.linaro.org, suzuki.poulose@arm.com, mathieu.poirier@linaro.org, mike.leach@linaro.org, leo.yan@linaro.org, linux-perf-users@vger.kernel.org, acme@kernel.org Subject: [PATCH 04/14] perf test: Add asm pureloop test tool Date: Fri, 1 Jul 2022 13:07:53 +0100 Message-Id: <20220701120804.3226396-5-carsten.haitzler@foss.arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220701120804.3226396-1-carsten.haitzler@foss.arm.com> References: <20220701120804.3226396-1-carsten.haitzler@foss.arm.com> Reply-To: carsten.haitzler@foss.arm.com MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Carsten Haitzler (Rasterman)" Add test tool to be driven by further test scripts. This tool is pure arm64 ASM with no libc usage to ensure it is the same exact binary/code every time so it can also be re-used for many uses. It just loops for a given fixed number of loops. Signed-off-by: Carsten Haitzler --- tools/perf/tests/shell/coresight/Makefile | 3 +- .../shell/coresight/asm_pure_loop/.gitignore | 1 + .../shell/coresight/asm_pure_loop/Makefile | 34 +++++++++++++++++++ .../coresight/asm_pure_loop/asm_pure_loop.S | 28 +++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/.gitignore create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/Makefile create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile index 3b816bb4ced3..d4f868d55773 100644 --- a/tools/perf/tests/shell/coresight/Makefile +++ b/tools/perf/tests/shell/coresight/Makefile @@ -4,7 +4,8 @@ include ../../../../../tools/scripts/Makefile.include include ../../../../../tools/scripts/Makefile.arch include ../../../../../tools/scripts/utilities.mak -SUBDIRS = +SUBDIRS = \ + asm_pure_loop all: $(SUBDIRS) $(SUBDIRS): diff --git a/tools/perf/tests/shell/coresight/asm_pure_loop/.gitignore b/tools/perf/tests/shell/coresight/asm_pure_loop/.gitignore new file mode 100644 index 000000000000..468673ac32e8 --- /dev/null +++ b/tools/perf/tests/shell/coresight/asm_pure_loop/.gitignore @@ -0,0 +1 @@ +asm_pure_loop diff --git a/tools/perf/tests/shell/coresight/asm_pure_loop/Makefile b/tools/perf/tests/shell/coresight/asm_pure_loop/Makefile new file mode 100644 index 000000000000..206849e92bc9 --- /dev/null +++ b/tools/perf/tests/shell/coresight/asm_pure_loop/Makefile @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: GPL-2.0 +# Carsten Haitzler , 2021 + +include ../Makefile.miniconfig + +# Binary to produce +BIN=asm_pure_loop +# Any linking/libraries needed for the binary - empty if none needed +LIB= + +all: $(BIN) + +$(BIN): $(BIN).S +ifdef CORESIGHT +ifeq ($(ARCH),arm64) +# Build line - this is raw asm with no libc to have an always exact binary + $(Q)$(CC) $(BIN).S -nostdlib -static -o $(BIN) $(LIB) +endif +endif + +install-tests: all +ifdef CORESIGHT +ifeq ($(ARCH),arm64) +# Install the test tool in the right place + $(call QUIET_INSTALL, tests) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/$(INSTDIR_SUB)/$(BIN)'; \ + $(INSTALL) $(BIN) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/$(INSTDIR_SUB)/$(BIN)/$(BIN)' +endif +endif + +clean: + $(Q)$(RM) -f $(BIN) + +.PHONY: all clean install-tests diff --git a/tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S b/tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S new file mode 100644 index 000000000000..75cf084a927d --- /dev/null +++ b/tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Tamas Zsoldos , 2021 */ + +.globl _start +_start: + mov x0, 0x0000ffff + mov x1, xzr +loop: + nop + nop + cbnz x1, noskip + nop + nop + adrp x2, skip + add x2, x2, :lo12:skip + br x2 + nop + nop +noskip: + nop + nop +skip: + sub x0, x0, 1 + cbnz x0, loop + + mov x0, #0 + mov x8, #93 // __NR_exit syscall + svc #0 -- 2.32.0