Received: by 2002:ac0:e34a:0:0:0:0:0 with SMTP id g10csp527757imn; Thu, 28 Jul 2022 08:01:02 -0700 (PDT) X-Google-Smtp-Source: AGRyM1toQQ3MIgYqvCctlJSTK36MkrCH0kmkFHcU8sAiz1BSLzt2uctZBERMD0khLTi3N6ZCy5C0 X-Received: by 2002:a17:902:ce83:b0:16c:d47e:bd3f with SMTP id f3-20020a170902ce8300b0016cd47ebd3fmr26852018plg.57.1659020462474; Thu, 28 Jul 2022 08:01:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659020462; cv=none; d=google.com; s=arc-20160816; b=ETqUlFD/4x4uzFI2rSUg0HwZtnqwMe8TTA1uL0Eoml4GXEBwn9e9qE/RO48dm81zzd ZMnDb4n/72oE3NJz7JykZIyO+bwXH7+SCQbgaeKSZSi9kgXO9wUBtf1zsCqP48C5Ckjv JVsrTweOdl5EKUP3dpHgoJbVc18aYW/XfuWYcHG//D+tjgnPy+Yupvtarjmp13Rl/tEZ uZ4Cz/3K2FxCHcLkcKXdui4+UCUAOicOsHDlUmI8T3xYf7N6t1VNqh3AsvfF046eJUw1 0nkkrVPwBPngrelm7JLNC27Z96JV6mD6wcie7lCzLeG4AhGNteOOhM22jsBQoESJop94 kUOA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ZP5SmKEkYET/hECY/RJS5MWkuaoqC8cNJzMkwVE3a9U=; b=0wgHHoa+Yds8sDOahiYroHxMQngCWZH1i9TnqqrYVlE2FhR1I1Yqrnq9kKGuZ8G9W+ mQxJ3QpQKaD7iR7f3DFZUdUCx3eQVzdx02U6AvkQgTfo0SqmlleUBTKKdYj10s0DXl8y nvKD0QrNwn6BZpZkdt0r9IWJdyQKvbmhXHFlxilIVZ1FbKm7TQqw4xUMzarfkVddBlVT EaQ2gZzviLweTw8y+QIGc/1QFAW5f88S70O1G9VLgpi7/3k6cDBuySLl7OUgOFYAvZPX Y2L8YhJ4BTc/G/jQOIP3I+ho3A61nxCkXz9PtwD87ljSozWxnFUXyU3Kzj77SRUS4ogS Blyg== 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 jd17-20020a170903261100b0016c3f3acbaasi1144664plb.441.2022.07.28.08.00.40; Thu, 28 Jul 2022 08:01:02 -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 S233433AbiG1OyG (ORCPT + 99 others); Thu, 28 Jul 2022 10:54:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233245AbiG1Oxq (ORCPT ); Thu, 28 Jul 2022 10:53:46 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 0FBB969F08; Thu, 28 Jul 2022 07:53:21 -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 5332B106F; Thu, 28 Jul 2022 07:53:21 -0700 (PDT) Received: from e126387.arm.com (unknown [10.57.11.24]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7AED53F70D; Thu, 28 Jul 2022 07:53:19 -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 v5 04/14] perf test: Add asm pureloop test tool Date: Thu, 28 Jul 2022 15:52:46 +0100 Message-Id: <20220728145256.2985298-5-carsten.haitzler@foss.arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220728145256.2985298-1-carsten.haitzler@foss.arm.com> References: <20220728145256.2985298-1-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 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