Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4438519imw; Tue, 12 Jul 2022 07:59:42 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u0bHzVt7gYhwHFuTVJjMK4/rYnGAUIhXTMU46nREQ/r/zbe43WDMZ69mGxphLm6tIIIf4v X-Received: by 2002:a63:8049:0:b0:414:e8aa:b6bd with SMTP id j70-20020a638049000000b00414e8aab6bdmr21109357pgd.10.1657637982203; Tue, 12 Jul 2022 07:59:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657637982; cv=none; d=google.com; s=arc-20160816; b=eY5pW/jwYrd7d+YfzsNBvgtxvtOx9Y/B1KhJ3usWJpAdAT0582EiZHURUVwRQCQKAZ M85lT1boqcJqJI+pz2yzQc7gdg5D8RfMDWSuIhDakN9+GtwRblxGGH8s7DdMa3/2/29z t62q+kt+Xm7BwgA6i46HIm/OzYvD59tBOT9WBUQT0J5Oa0c9PKzAxiJ26Y6C9w4twkY9 edGZlm46HvjE3KFwTQsqj08W2JwohZGpl9hAlrUFDU6gstpPQiwTxpdKyHSDeeavA1m+ EvAuey+ezB2bTBfVMg6LxIXLJ6hWF1vUO7Qe/zTyEV+xYkMXk8LnnASUHzR8bsk3Q7C5 qU3w== 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=TtEMIPfEiE6p9wQTKx9vJ1H98zE4fyQUfLMYJircyWfTiYcLSEx8gtcGSsd1cTo/r5 AlLQz7SIsjAjxiYCfxhuDiuuAxVyAzkt74cth0MgnIy8pne0t7i2Tf72cewxUWYzwnw9 2lPP2j7FUUWdlpyEB8e6+3gE78ZSUulE+s64O2vRRxuFX4+5T89RxAqyMmjcHVna7Prb +gfk1fGyehpoB3tpvleBMEndvDdoLF6demHjZ0SZTVRNIoxLjL1/trlY6EDz2AqOXRdp Vscnzc+/M6amgpD92pBSQQObZ4T2dEuN8l9JyjkUEMXfD9xFlenG0IOXtMq69yDzmAx8 83Lg== 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 b2-20020a170902b60200b0016c3f7f6e21si10535434pls.387.2022.07.12.07.59.30; Tue, 12 Jul 2022 07:59:42 -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 S233435AbiGLN6l (ORCPT + 99 others); Tue, 12 Jul 2022 09:58:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233383AbiGLN63 (ORCPT ); Tue, 12 Jul 2022 09:58:29 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3D247B6554; Tue, 12 Jul 2022 06:58:28 -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 697FB165C; Tue, 12 Jul 2022 06:58:28 -0700 (PDT) Received: from e126387.arm.com (unknown [10.57.72.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CDF0C3F73D; Tue, 12 Jul 2022 06:58:26 -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: Tue, 12 Jul 2022 14:57:40 +0100 Message-Id: <20220712135750.2212005-5-carsten.haitzler@foss.arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220712135750.2212005-1-carsten.haitzler@foss.arm.com> References: <20220712135750.2212005-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,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