From nobody Wed Nov 27 00:26:10 2024 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 966355223 for ; Tue, 15 Oct 2024 00:02:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950528; cv=none; b=uPGmRTxYXQPjgsyP/y4+mZpXBmrO2Ll3OLsMsvCTtoFuk4kV0Y0iaMQ4kENhcdnc9INZi5Jyv9XKWVE9mtaaxqM2cXXKeWAhJDEjjlSArKvFMIIFSu3PK6kYKIudbImfnOFnt8hzSOcY9k0mnabyGVotGkI9RpCkyrpUc0NI1l4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950528; c=relaxed/simple; bh=8NLROw6KKSFllbopuuSL8swQth3r2BSa+1UDDDHl3pw=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=PwBKvEmGhuleN03DmMe0J8DgdMXsRRVGOKuNQgAecU8asyMoUdHioK+eJuqRwJ1Ed3g4N7x7mzN9ja7Uo0WE05U7BJUTQHzdyXJiHZEamiPnVauT9PNTWDUe5u3dh8Nt9nZQWR5AT5+l3Ir4VlMX3chlbtDKLOPMcYxIoW7g3kA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=fkJ7GR8E; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="fkJ7GR8E" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-690404fd230so89948387b3.3 for ; Mon, 14 Oct 2024 17:02:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1728950526; x=1729555326; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=5sWId1MW2gWjJ8B3DXmeL36O281P7L5ABFWtGa9JPb4=; b=fkJ7GR8ELB0IMktL66LFMxyRY3m4wdi6btEokpppTEGCojQUNCxR4oyFF21NidwEBr lRguGwWEOG8dBoIpzfqvSGv7/tpb5mPTWTdNTnlC3x3PaLSwWFV9A5HGNVD7tRtb0CPj N1rSlSI2M2PwnZDKInUj3t1RlBpJl/eO8aziTu7eBIaUnltbkjjnUa241tyPLwcg1+VH mruccc9EkxsfkziGe6sad63esjDtM7e57FYUv5n7SWqpiz9/1xhI2NqzNtPiptg7Yawa IWw+WsTX5e0Pyc1/dG2uKekNPtOdRgWp0EgBqpGZeLXwrfe7pkVio8+MZLSMe4PZfviQ CdhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728950526; x=1729555326; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5sWId1MW2gWjJ8B3DXmeL36O281P7L5ABFWtGa9JPb4=; b=mj++2R2FvkwtjBBJKyuuHMloAeg/7mRTYkm95dZojKcLn32tGDqDkbCBINGkZ2rHiV GXUK6C3+GKUopOoD4gqXq9hpM8tsOPmEN7I7OLD4BpNJLnV572VZ0CLtg5l1CRBdEQX1 AQKCLC5AU7DjRk3kojsI5f5tOrZdzweb5a4fxKt5gD5gI90mzPKSaeg+VEL38Jw9pPJN cc4CBo3gpODn1c5HpmeylTCUfuqQSPPOIIso897YNWFevtpPVckHuUc9ycW8Q7ghRnjp SErB3GQ/cqR2QcxFBWXfOGd89CdyZCYy+fg5ypUQe5YWc22SnTQh41gavNLgJgYvKyB8 4TTw== X-Forwarded-Encrypted: i=1; AJvYcCXV+G/P6b1aCcD88iGC+wBVWdPRkK0c8dfBW3ZK7zs6gfLaM0kQco87jbzrmzcn05g1D0QZ4f3Qcdg2SGo=@vger.kernel.org X-Gm-Message-State: AOJu0Yyru89mcwnUjXwVlvQ8s6nEonN8eOq3yURdSAQgjzo5gjhiGKkT y6KwWgUTUvUa6K/cf2m5RWuS9oLEnJDxSjlE5f0n0LKvcV5sXsKD4uYK9kfmQ91bsAlzZne3mAn CB9mhQA== X-Google-Smtp-Source: AGHT+IHFyTiWxaw8Ek0l8rj6yZD1R6f2jnu5vF6MOt2oGc8LyxuLsasPkZ2Bh7M2Yo+gJ2nm1BVEIFgcatJj X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:f1f9:f6b6:68bc:5a14]) (user=irogers job=sendgmr) by 2002:a05:690c:2e12:b0:6e2:371f:4aef with SMTP id 00721157ae682-6e347b2fe3bmr320727b3.3.1728950525613; Mon, 14 Oct 2024 17:02:05 -0700 (PDT) Date: Mon, 14 Oct 2024 17:01:56 -0700 In-Reply-To: <20241015000158.871828-1-irogers@google.com> Message-Id: <20241015000158.871828-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241015000158.871828-1-irogers@google.com> X-Mailer: git-send-email 2.47.0.rc1.288.g06298d1525-goog Subject: [PATCH v2 1/3] perf test: Add a shell wrapper for "Setup struct perf_event_attr" From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Athira Jajeev , zhaimingbing , Thomas Richter , Veronika Molnarova , Leo Yan , Howard Chu , Ze Gao , Weilin Wang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephen Rothwell Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The "Setup struct perf_event_attr" test in attr.c does a bunch of directory finding to set up running a python test that in general is more brittle than similar logic we have in shell tests. Add a shell test that invokes and runs the tests in the python attr.py script. Signed-off-by: Ian Rogers Tested-by: Athira Rajeev --- tools/perf/tests/shell/attr.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 tools/perf/tests/shell/attr.sh diff --git a/tools/perf/tests/shell/attr.sh b/tools/perf/tests/shell/attr.sh new file mode 100755 index 000000000000..e094f3baffb7 --- /dev/null +++ b/tools/perf/tests/shell/attr.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Perf attribute expectations test +# SPDX-License-Identifier: GPL-2.0 + +err=3D0 + +cleanup() { + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +shelldir=3D$(dirname "$0") +perf_path=3D$(which perf) +python "${shelldir}"/../attr.py -d "${shelldir}"/../attr -v -p "$perf_path" +cleanup +exit $err --=20 2.47.0.rc1.288.g06298d1525-goog From nobody Wed Nov 27 00:26:10 2024 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDABC4B5C1 for ; Tue, 15 Oct 2024 00:02:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950530; cv=none; b=pUOi59TtRxJNwDy5IkiBcoXwoJaogu91AFvQYO+8rjD74NKCgt6KPG4YyCKClP9194GZU+BdezekRYvpVs3+fwUDLs+0YfqgmwOT8ZVFZxPHBega7GBDsw741ecseyDBPDRn1BFXBGsx1jODeRf4GIoeFxnkFcmwYBqzz4b06rs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950530; c=relaxed/simple; bh=dwg8gNhh7v9B1ydGubuqneMwz+VTpM9C3AFrPIq1XfQ=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=HiaDyvDZCXOlZX8iX0M0pNKAfx1PpO0lXY7IFBitLal5L1JP3Kno3vRQ3+rIyzwCAZd3Gbi8agaNLscGfUqxQHdhb8N4BVYEmDIceuAErs61TJDGNkYv5EsIboYN7pkL4T5L+Kt+DGl+yixtSebqNgChycu4zn8koy5rpGfQeS8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=GBdXw8/1; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="GBdXw8/1" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-690404fd230so89948967b3.3 for ; Mon, 14 Oct 2024 17:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1728950528; x=1729555328; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=4J9mwWpiQPgKMgt+V2+vAl0A41SMcH0GEk0Bg23ggvI=; b=GBdXw8/1dcm5UrmhZKCPLCM3j9MhJcY9V1j/CPily9nlbsKU0GK8J1S4nFfZSKKXq8 +KZSyKnlDHcAZXxE2PQ6FUb1TQWxDAc+OJGftT+gXqOrVq2bCAdi1m9XDK6m6ukE2A1v f7kq7oNq+C9Jy2iuWl1vM/SVAG0GALHNwDjaGOmuCu7TDUlaQSOJr+1pDf57o4apMnb6 9v6Rt3O/LIGn1Kv6xSC8bkZeEQL1m12utVapeI0f7VPWWRwUXhXfYaM18LcPlpVxla8/ 7BiGVNqynL0k5OhUfDlybEBoMwokglMv4PT2ryWlRFt6AFx6gM9oBPwsxWX68fggkySG RDJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728950528; x=1729555328; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4J9mwWpiQPgKMgt+V2+vAl0A41SMcH0GEk0Bg23ggvI=; b=bFuRdtwKYjAyS3m/h5GP6fXvgBELxGZUohUZ8s2OGW5OkdOiz/ouR5Mf+3HI3uwm6G pQL15k39ppU5dDWI37A3vzmk1bpfHIJj+BFkwqtPEZUgR0RONR3Vi6+Wo0SOAC3SGuXx 0c7Gz8BToreFzgP0uZlnwuX5nZhGv0wnJMQWnLy0cf0r4+U8WhS79B9gbG6hP0JnVyzT d8mAZlfO85nHFLIcooYdjvUVI0D03thfwQbHQ0UGzUSFfrMGmIy6UB/uWZkVbrcqChn7 JdfC+KNSSa4CxNoPvHOFQVJchCVrNUA4X7dbk+iwSRRpt9uIhKPP+96ruq+R2x3FbZSn N5FQ== X-Forwarded-Encrypted: i=1; AJvYcCWWbRvk3DGuBVYKppVrhRShuhSwtCn8Wgvlev2ysn/iww/8b6+zKsjxb2E1g/LdEtRkZeoK73Lb2b7rtdg=@vger.kernel.org X-Gm-Message-State: AOJu0YwZk0NPjXZPwn6Cz/ESwQJrAFCmXZ4P4OlIGvgEG6WdzMaKA46w 43+eQQRUUUJpCjGHvZknvHBjq6Dal/83KQVwubfVfp7+Nv3wqLJro6048vrTbI4x/XtWM3ufqJZ 0g7e1EQ== X-Google-Smtp-Source: AGHT+IHjvCADWqRvwff+Ci3msyOigV+EFk1j+JPxW4tWPKBSwmWrcqq9CcDpGbe0cYOLMLdn6nzZkXX/Qrgb X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:f1f9:f6b6:68bc:5a14]) (user=irogers job=sendgmr) by 2002:a05:690c:6012:b0:6e3:8cf8:7b7 with SMTP id 00721157ae682-6e38cf80813mr389547b3.8.1728950527863; Mon, 14 Oct 2024 17:02:07 -0700 (PDT) Date: Mon, 14 Oct 2024 17:01:57 -0700 In-Reply-To: <20241015000158.871828-1-irogers@google.com> Message-Id: <20241015000158.871828-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241015000158.871828-1-irogers@google.com> X-Mailer: git-send-email 2.47.0.rc1.288.g06298d1525-goog Subject: [PATCH v2 2/3] perf test: Remove C test wrapper for attr.py From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Athira Jajeev , zhaimingbing , Thomas Richter , Veronika Molnarova , Leo Yan , Howard Chu , Ze Gao , Weilin Wang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephen Rothwell Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove the C wrapper now a shell script wrapper exists. Move perf_event_attr dumping functions to evsel.c and reduce the scope of variables/defines. Use fprintf to avoid snprintf complexities in WRITE_ASS. Add __SANE_USERSPACE_TYPES__ to evsel.c to fix format flag issues on PowerPC triggered by moving attr.c functions to evsel.c. Signed-off-by: Ian Rogers Tested-by: Athira Rajeev --- tools/perf/perf.c | 2 - tools/perf/tests/Build | 1 - tools/perf/tests/attr.c | 218 -------------------------------- tools/perf/tests/builtin-test.c | 1 - tools/perf/util/evsel.c | 127 ++++++++++++++++++- tools/perf/util/util.h | 7 - 6 files changed, 123 insertions(+), 233 deletions(-) delete mode 100644 tools/perf/tests/attr.c diff --git a/tools/perf/perf.c b/tools/perf/perf.c index 4def800f4089..a2987f2cfe1a 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -542,8 +542,6 @@ int main(int argc, const char **argv) } cmd =3D argv[0]; =20 - test_attr__init(); - /* * We use PATH to find perf commands, but we prepend some higher * precedence paths: the "--exec-path" option, the PERF_EXEC_PATH diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index a771e4928247..03cbdf7c50a0 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build @@ -4,7 +4,6 @@ perf-test-y +=3D builtin-test.o perf-test-y +=3D tests-scripts.o perf-test-y +=3D parse-events.o perf-test-y +=3D dso-data.o -perf-test-y +=3D attr.o perf-test-y +=3D vmlinux-kallsyms.o perf-test-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall.o perf-test-$(CONFIG_LIBTRACEEVENT) +=3D openat-syscall-all-cpus.o diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c deleted file mode 100644 index 97e1bdd6ec0e..000000000000 --- a/tools/perf/tests/attr.c +++ /dev/null @@ -1,218 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * The struct perf_event_attr test support. - * - * This test is embedded inside into perf directly and is governed - * by the PERF_TEST_ATTR environment variable and hook inside - * sys_perf_event_open function. - * - * The general idea is to store 'struct perf_event_attr' details for - * each event created within single perf command. Each event details - * are stored into separate text file. Once perf command is finished - * these files can be checked for values we expect for command. - * - * Besides 'struct perf_event_attr' values we also store 'fd' and - * 'group_fd' values to allow checking for groups created. - * - * This all is triggered by setting PERF_TEST_ATTR environment variable. - * It must contain name of existing directory with access and write - * permissions. All the event text files are stored there. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "event.h" -#include "util.h" -#include "tests.h" -#include "pmus.h" - -#define ENV "PERF_TEST_ATTR" - -static char *dir; -static bool ready; - -void test_attr__init(void) -{ - dir =3D getenv(ENV); - test_attr__enabled =3D (dir !=3D NULL); -} - -#define BUFSIZE 1024 - -#define __WRITE_ASS(str, fmt, data) \ -do { \ - char buf[BUFSIZE]; \ - size_t size; \ - \ - size =3D snprintf(buf, BUFSIZE, #str "=3D%"fmt "\n", data); \ - if (1 !=3D fwrite(buf, size, 1, file)) { \ - perror("test attr - failed to write event file"); \ - fclose(file); \ - return -1; \ - } \ - \ -} while (0) - -#define WRITE_ASS(field, fmt) __WRITE_ASS(field, fmt, attr->field) - -static int store_event(struct perf_event_attr *attr, pid_t pid, struct per= f_cpu cpu, - int fd, int group_fd, unsigned long flags) -{ - FILE *file; - char path[PATH_MAX]; - - if (!ready) - return 0; - - snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir, - attr->type, attr->config, fd); - - file =3D fopen(path, "w+"); - if (!file) { - perror("test attr - failed to open event file"); - return -1; - } - - if (fprintf(file, "[event-%d-%llu-%d]\n", - attr->type, attr->config, fd) < 0) { - perror("test attr - failed to write event file"); - fclose(file); - return -1; - } - - /* syscall arguments */ - __WRITE_ASS(fd, "d", fd); - __WRITE_ASS(group_fd, "d", group_fd); - __WRITE_ASS(cpu, "d", cpu.cpu); - __WRITE_ASS(pid, "d", pid); - __WRITE_ASS(flags, "lu", flags); - - /* struct perf_event_attr */ - WRITE_ASS(type, PRIu32); - WRITE_ASS(size, PRIu32); - WRITE_ASS(config, "llu"); - WRITE_ASS(sample_period, "llu"); - WRITE_ASS(sample_type, "llu"); - WRITE_ASS(read_format, "llu"); - WRITE_ASS(disabled, "d"); - WRITE_ASS(inherit, "d"); - WRITE_ASS(pinned, "d"); - WRITE_ASS(exclusive, "d"); - WRITE_ASS(exclude_user, "d"); - WRITE_ASS(exclude_kernel, "d"); - WRITE_ASS(exclude_hv, "d"); - WRITE_ASS(exclude_idle, "d"); - WRITE_ASS(mmap, "d"); - WRITE_ASS(comm, "d"); - WRITE_ASS(freq, "d"); - WRITE_ASS(inherit_stat, "d"); - WRITE_ASS(enable_on_exec, "d"); - WRITE_ASS(task, "d"); - WRITE_ASS(watermark, "d"); - WRITE_ASS(precise_ip, "d"); - WRITE_ASS(mmap_data, "d"); - WRITE_ASS(sample_id_all, "d"); - WRITE_ASS(exclude_host, "d"); - WRITE_ASS(exclude_guest, "d"); - WRITE_ASS(exclude_callchain_kernel, "d"); - WRITE_ASS(exclude_callchain_user, "d"); - WRITE_ASS(mmap2, "d"); - WRITE_ASS(comm_exec, "d"); - WRITE_ASS(context_switch, "d"); - WRITE_ASS(write_backward, "d"); - WRITE_ASS(namespaces, "d"); - WRITE_ASS(use_clockid, "d"); - WRITE_ASS(wakeup_events, PRIu32); - WRITE_ASS(bp_type, PRIu32); - WRITE_ASS(config1, "llu"); - WRITE_ASS(config2, "llu"); - WRITE_ASS(branch_sample_type, "llu"); - WRITE_ASS(sample_regs_user, "llu"); - WRITE_ASS(sample_stack_user, PRIu32); - - fclose(file); - return 0; -} - -void test_attr__open(struct perf_event_attr *attr, pid_t pid, struct perf_= cpu cpu, - int fd, int group_fd, unsigned long flags) -{ - int errno_saved =3D errno; - - if ((fd !=3D -1) && store_event(attr, pid, cpu, fd, group_fd, flags)) { - pr_err("test attr FAILED"); - exit(128); - } - - errno =3D errno_saved; -} - -void test_attr__ready(void) -{ - if (unlikely(test_attr__enabled) && !ready) - ready =3D true; -} - -static int run_dir(const char *d, const char *perf) -{ - char v[] =3D "-vvvvv"; - int vcnt =3D min(verbose, (int) sizeof(v) - 1); - char cmd[3*PATH_MAX]; - - if (verbose > 0) - vcnt++; - - scnprintf(cmd, 3*PATH_MAX, PYTHON " %s/attr.py -d %s/attr/ -p %s %.*s", - d, d, perf, vcnt, v); - - return system(cmd) ? TEST_FAIL : TEST_OK; -} - -static int test__attr(struct test_suite *test __maybe_unused, int subtest = __maybe_unused) -{ - struct stat st; - char path_perf[PATH_MAX]; - char path_dir[PATH_MAX]; - char *exec_path; - - if (perf_pmus__num_core_pmus() > 1) { - /* - * TODO: Attribute tests hard code the PMU type. If there are >1 - * core PMU then each PMU will have a different type which - * requires additional support. - */ - pr_debug("Skip test on hybrid systems"); - return TEST_SKIP; - } - - /* First try development tree tests. */ - if (!lstat("./tests", &st)) - return run_dir("./tests", "./perf"); - - exec_path =3D get_argv_exec_path(); - if (exec_path =3D=3D NULL) - return -1; - - /* Then installed path. */ - snprintf(path_dir, PATH_MAX, "%s/tests", exec_path); - snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR); - free(exec_path); - - if (!lstat(path_dir, &st) && - !lstat(path_perf, &st)) - return run_dir(path_dir, path_perf); - - return TEST_SKIP; -} - -DEFINE_SUITE("Setup struct perf_event_attr", attr); diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-tes= t.c index 3b30f258c395..50533446e747 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -80,7 +80,6 @@ static struct test_suite *generic_tests[] =3D { &suite__perf_evsel__tp_sched_test, &suite__syscall_openat_tp_fields, #endif - &suite__attr, &suite__hists_link, &suite__python_use, &suite__bp_signal, diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index ed0d4d20e357..b138deaa5199 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -5,6 +5,11 @@ * Parts came from builtin-{top,stat,record}.c, see those files for further * copyright notes. */ +/* + * Powerpc needs __SANE_USERSPACE_TYPES__ before to select + * 'int-ll64.h' and avoid compile warnings when printing __u64 with %llu. + */ +#define __SANE_USERSPACE_TYPES__ =20 #include #include @@ -76,7 +81,123 @@ static int evsel__no_extra_init(struct evsel *evsel __m= aybe_unused) return 0; } =20 -void __weak test_attr__ready(void) { } +static bool test_attr__enabled(void) +{ + static bool test_attr__enabled; + static bool test_attr__enabled_tested; + + if (!test_attr__enabled_tested) { + char *dir =3D getenv("PERF_TEST_ATTR"); + + test_attr__enabled =3D (dir !=3D NULL); + test_attr__enabled_tested =3D true; + } + return test_attr__enabled; +} + +#define __WRITE_ASS(str, fmt, data) \ +do { \ + if (fprintf(file, #str "=3D%"fmt "\n", data) < 0) { \ + perror("test attr - failed to write event file"); \ + fclose(file); \ + return -1; \ + } \ +} while (0) + +#define WRITE_ASS(field, fmt) __WRITE_ASS(field, fmt, attr->field) + +static int store_event(struct perf_event_attr *attr, pid_t pid, struct per= f_cpu cpu, + int fd, int group_fd, unsigned long flags) +{ + FILE *file; + char path[PATH_MAX]; + char *dir =3D getenv("PERF_TEST_ATTR"); + + snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir, + attr->type, attr->config, fd); + + file =3D fopen(path, "w+"); + if (!file) { + perror("test attr - failed to open event file"); + return -1; + } + + if (fprintf(file, "[event-%d-%llu-%d]\n", + attr->type, attr->config, fd) < 0) { + perror("test attr - failed to write event file"); + fclose(file); + return -1; + } + + /* syscall arguments */ + __WRITE_ASS(fd, "d", fd); + __WRITE_ASS(group_fd, "d", group_fd); + __WRITE_ASS(cpu, "d", cpu.cpu); + __WRITE_ASS(pid, "d", pid); + __WRITE_ASS(flags, "lu", flags); + + /* struct perf_event_attr */ + WRITE_ASS(type, PRIu32); + WRITE_ASS(size, PRIu32); + WRITE_ASS(config, "llu"); + WRITE_ASS(sample_period, "llu"); + WRITE_ASS(sample_type, "llu"); + WRITE_ASS(read_format, "llu"); + WRITE_ASS(disabled, "d"); + WRITE_ASS(inherit, "d"); + WRITE_ASS(pinned, "d"); + WRITE_ASS(exclusive, "d"); + WRITE_ASS(exclude_user, "d"); + WRITE_ASS(exclude_kernel, "d"); + WRITE_ASS(exclude_hv, "d"); + WRITE_ASS(exclude_idle, "d"); + WRITE_ASS(mmap, "d"); + WRITE_ASS(comm, "d"); + WRITE_ASS(freq, "d"); + WRITE_ASS(inherit_stat, "d"); + WRITE_ASS(enable_on_exec, "d"); + WRITE_ASS(task, "d"); + WRITE_ASS(watermark, "d"); + WRITE_ASS(precise_ip, "d"); + WRITE_ASS(mmap_data, "d"); + WRITE_ASS(sample_id_all, "d"); + WRITE_ASS(exclude_host, "d"); + WRITE_ASS(exclude_guest, "d"); + WRITE_ASS(exclude_callchain_kernel, "d"); + WRITE_ASS(exclude_callchain_user, "d"); + WRITE_ASS(mmap2, "d"); + WRITE_ASS(comm_exec, "d"); + WRITE_ASS(context_switch, "d"); + WRITE_ASS(write_backward, "d"); + WRITE_ASS(namespaces, "d"); + WRITE_ASS(use_clockid, "d"); + WRITE_ASS(wakeup_events, PRIu32); + WRITE_ASS(bp_type, PRIu32); + WRITE_ASS(config1, "llu"); + WRITE_ASS(config2, "llu"); + WRITE_ASS(branch_sample_type, "llu"); + WRITE_ASS(sample_regs_user, "llu"); + WRITE_ASS(sample_stack_user, PRIu32); + + fclose(file); + return 0; +} + +#undef __WRITE_ASS +#undef WRITE_ASS + +static void test_attr__open(struct perf_event_attr *attr, pid_t pid, struc= t perf_cpu cpu, + int fd, int group_fd, unsigned long flags) +{ + int errno_saved =3D errno; + + if ((fd !=3D -1) && store_event(attr, pid, cpu, fd, group_fd, flags)) { + pr_err("test attr FAILED"); + exit(128); + } + + errno =3D errno_saved; +} =20 static void evsel__no_extra_fini(struct evsel *evsel __maybe_unused) { @@ -2144,8 +2265,6 @@ static int evsel__open_cpu(struct evsel *evsel, struc= t perf_cpu_map *cpus, goto out_close; } =20 - test_attr__ready(); - /* Debug message used by test scripts */ pr_debug2_peo("sys_perf_event_open: pid %d cpu %d group_fd %d flags = %#lx", pid, perf_cpu_map__cpu(cpus, idx).cpu, group_fd, evsel->open_flags); @@ -2166,7 +2285,7 @@ static int evsel__open_cpu(struct evsel *evsel, struc= t perf_cpu_map *cpus, =20 bpf_counter__install_pe(evsel, idx, fd); =20 - if (unlikely(test_attr__enabled)) { + if (unlikely(test_attr__enabled())) { test_attr__open(&evsel->core.attr, pid, perf_cpu_map__cpu(cpus, idx), fd, group_fd, evsel->open_flags); diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h index 9966c21aaf04..14f2c70906be 100644 --- a/tools/perf/util/util.h +++ b/tools/perf/util/util.h @@ -81,13 +81,6 @@ char *perf_exe(char *buf, int len); #endif #endif =20 -extern bool test_attr__enabled; -void test_attr__ready(void); -void test_attr__init(void); -struct perf_event_attr; -void test_attr__open(struct perf_event_attr *attr, pid_t pid, struct perf_= cpu cpu, - int fd, int group_fd, unsigned long flags); - struct perf_debuginfod { const char *urls; bool set; --=20 2.47.0.rc1.288.g06298d1525-goog From nobody Wed Nov 27 00:26:10 2024 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 36BDC15623A for ; Tue, 15 Oct 2024 00:02:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950534; cv=none; b=Bevo01rzUxCwdbllHOvKjkqRlMJQ1dKkHW40f+MeLIHHA8GUGvhrpWjmxpA03mIgUA8iryXtnf2KfW/ZGN3qDLk8wqqyUH7Widk1hFO/+f9QDSNbSM9/xxSTRS7S8sTaOuD9627OMgR4a5grQjOIhWID91/INqTKhRaB8/6ng7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728950534; c=relaxed/simple; bh=5V0HYfJIoCqORROOyQxgxCGkVp4lqZYz2wWzhJxbol0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=JYAfYJllNAeTHV47mwt4oQMIgwPrCnc3OGdU0qmAsNYxRvwGvvZxE0qsG5AWsCn2H58lSPauuyObwmQjV3dyMSL2m9Z9YDfZuJpwJo35mnLEY/txQe1M3q/E1e9wyup5XWge3x7d45bfIXEt2qHpQx4a1pat/WWrczhWfgM6ibs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=gN5a3UnW; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="gN5a3UnW" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6e3245ed6b8so69920707b3.0 for ; Mon, 14 Oct 2024 17:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1728950530; x=1729555330; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=g5AyR3CEmAHSsZGpk4O76mSgfPIu474vcsykhPTnG9Y=; b=gN5a3UnW8w+Ixs99tGPUM5OINsyPZFF+opkq/iY5JPUFRUhHd1HJ+Twdfuuuc65YgD dtpX7KY2FO8EyK+dAgpiqMszKJPfKpQ2h/qQodG3EYD/c9BCk06E7RGlEe80pGlNzdCi uC/3DxQoOTb41/W8U/zCjCG2NRDQA0Ic6UTy/v89rTV2QOjKyrb+nS4ezfOoooKA9uzp o6qGMwWe4rqOTzS7PLyJZBahBedTd4LOf6e3ElgfGp2PQO5OLUDBDRm6Rbqca9P09dEn pMKsI+Z6tXrjzYBN0xGj1keMPy0+wkj2141gjqS45kl2I/OUd8J6zQgLE9g6jrEzU4j8 al/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728950530; x=1729555330; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=g5AyR3CEmAHSsZGpk4O76mSgfPIu474vcsykhPTnG9Y=; b=PGh0XJTwMlhjRinWuqtlkS++5QKPt+wKbRpblQeddfC9kagnHflLg9+9NBG0vO9Qsr fVoetNGgKYAzy8L0tuoMXcBoxQ9YUU9YQCXMNyRmj56cOJty0SKUQkMUSojgIVRJqeB9 7KJwvZnLEB5X3Bw0w/DVVXMXDo2F+rwluSToJWGDi66jFeYO0mjcU73ob87l3XKL9pi2 zVl7y5mjYhLiA1f30PXLuYIGv9wR2XCrMdn+RHlGitEgwKIeNsi9EM0FOqGxKt3Kg1a8 FsxML5ff0DT0HVoLuni2bqIie4sBb+suhPPLWwZv1snj41zsdX1MFhjRXz2yJElyDC54 sJOQ== X-Forwarded-Encrypted: i=1; AJvYcCWaGdtedASawLejLnonOUXwE8RtHDxRpfZrCcrdVbA5GRAJ/CCs7dVY76u3byyTOFUayQl7XRnKiIJEbVc=@vger.kernel.org X-Gm-Message-State: AOJu0YzMuGYrgx8Qu87ye85WjjllQsKode4BxI0PjFz6a3BbW3vXLOah tNAF4Eso5Z2SlROS8gpAEJihjiRw76loAALwnLz3NeeMBsVC5toLfMZctQQLNoeHCwlmkuOeDnp ZbeoOPw== X-Google-Smtp-Source: AGHT+IF6M1b/mOXdPo+NfGA6vsUb9d0doLOHoCglmRsIwn3yki8stDt9Wl700p5+nakgabzGXEiq+4mVsW4L X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:f1f9:f6b6:68bc:5a14]) (user=irogers job=sendgmr) by 2002:a05:690c:290b:b0:6e2:b263:103f with SMTP id 00721157ae682-6e3471dcd1emr1036107b3.0.1728950530193; Mon, 14 Oct 2024 17:02:10 -0700 (PDT) Date: Mon, 14 Oct 2024 17:01:58 -0700 In-Reply-To: <20241015000158.871828-1-irogers@google.com> Message-Id: <20241015000158.871828-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241015000158.871828-1-irogers@google.com> X-Mailer: git-send-email 2.47.0.rc1.288.g06298d1525-goog Subject: [PATCH v2 3/3] perf test: Move attr files into shell directory where they are used From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Athira Jajeev , zhaimingbing , Thomas Richter , Veronika Molnarova , Leo Yan , Howard Chu , Ze Gao , Weilin Wang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephen Rothwell Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Now the attr tests are shell tests move the associated python and configuration files. Update the installation build rules for the new directories. Recycle the lib install rules for python files allowing the explicit attr.py install line to be dropped. Signed-off-by: Ian Rogers Tested-by: Athira Rajeev --- tools/perf/Makefile.perf | 5 ++--- tools/perf/tests/shell/attr.sh | 2 +- tools/perf/tests/{ =3D> shell}/attr/README | 0 tools/perf/tests/{ =3D> shell}/attr/base-record | 0 tools/perf/tests/{ =3D> shell}/attr/base-record-spe | 0 tools/perf/tests/{ =3D> shell}/attr/base-stat | 0 tools/perf/tests/{ =3D> shell}/attr/system-wide-dummy | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-C0 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-basic | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-branch-any | 0 .../tests/{ =3D> shell}/attr/test-record-branch-filter-any | 0 .../{ =3D> shell}/attr/test-record-branch-filter-any_call | 0 .../tests/{ =3D> shell}/attr/test-record-branch-filter-any_ret | 0 .../perf/tests/{ =3D> shell}/attr/test-record-branch-filter-hv | 0 .../{ =3D> shell}/attr/test-record-branch-filter-ind_call | 0 .../perf/tests/{ =3D> shell}/attr/test-record-branch-filter-k | 0 .../perf/tests/{ =3D> shell}/attr/test-record-branch-filter-u | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-count | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-data | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-dummy-C0 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-freq | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-graph-default | 0 .../tests/{ =3D> shell}/attr/test-record-graph-default-aarch64 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-graph-dwarf | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-graph-fp | 0 .../perf/tests/{ =3D> shell}/attr/test-record-graph-fp-aarch64 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-group-sampling | 0 .../perf/tests/{ =3D> shell}/attr/test-record-group-sampling1 | 0 .../perf/tests/{ =3D> shell}/attr/test-record-group-sampling2 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-group1 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-group2 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-group3 | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-no-buffering | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-no-inherit | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-no-samples | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-period | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-pfm-period | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-raw | 0 tools/perf/tests/{ =3D> shell}/attr/test-record-spe-period | 0 .../perf/tests/{ =3D> shell}/attr/test-record-spe-period-term | 0 .../tests/{ =3D> shell}/attr/test-record-spe-physical-address | 0 .../{ =3D> shell}/attr/test-record-user-regs-no-sve-aarch64 | 0 .../{ =3D> shell}/attr/test-record-user-regs-old-sve-aarch64 | 0 .../tests/{ =3D> shell}/attr/test-record-user-regs-sve-aarch64 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-C0 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-basic | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-default | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-1 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-2 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-3 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-group1 | 0 tools/perf/tests/{ =3D> shell}/attr/test-stat-no-inherit | 0 tools/perf/tests/{ =3D> shell/lib}/attr.py | 0 53 files changed, 3 insertions(+), 4 deletions(-) rename tools/perf/tests/{ =3D> shell}/attr/README (100%) rename tools/perf/tests/{ =3D> shell}/attr/base-record (100%) rename tools/perf/tests/{ =3D> shell}/attr/base-record-spe (100%) rename tools/perf/tests/{ =3D> shell}/attr/base-stat (100%) rename tools/perf/tests/{ =3D> shell}/attr/system-wide-dummy (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-C0 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-basic (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-any (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-any (= 100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-any_c= all (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-any_r= et (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-hv (1= 00%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-ind_c= all (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-k (10= 0%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-branch-filter-u (10= 0%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-count (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-data (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-dummy-C0 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-freq (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-graph-default (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-graph-default-aarch= 64 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-graph-dwarf (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-graph-fp (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-graph-fp-aarch64 (1= 00%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group-sampling (100= %) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group-sampling1 (10= 0%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group-sampling2 (10= 0%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group1 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group2 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-group3 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-no-buffering (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-no-inherit (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-no-samples (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-period (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-pfm-period (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-raw (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-spe-period (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-spe-period-term (10= 0%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-spe-physical-addres= s (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-user-regs-no-sve-aa= rch64 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-user-regs-old-sve-a= arch64 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-record-user-regs-sve-aarch= 64 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-C0 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-basic (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-default (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-1 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-2 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-detailed-3 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-group1 (100%) rename tools/perf/tests/{ =3D> shell}/attr/test-stat-no-inherit (100%) rename tools/perf/tests/{ =3D> shell/lib}/attr.py (100%) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 9dd2e8d3f3c9..105f734b6820 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -1128,12 +1128,11 @@ endif install-tests: all install-gtk $(call QUIET_INSTALL, tests) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \ - $(INSTALL) tests/attr.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tes= ts'; \ $(INSTALL) tests/pe-file.exe* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests= '; \ - $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \ - $(INSTALL) tests/attr/* -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/test= s/attr'; \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \ $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/s= hell'; \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/at= tr'; \ + $(INSTALL) tests/shell/attr/* -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ= )/tests/shell/attr'; \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/li= b'; \ $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_= SQ)/tests/shell/lib'; \ $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_= SQ)/tests/shell/lib'; \ diff --git a/tools/perf/tests/shell/attr.sh b/tools/perf/tests/shell/attr.sh index e094f3baffb7..5a4e43b2471d 100755 --- a/tools/perf/tests/shell/attr.sh +++ b/tools/perf/tests/shell/attr.sh @@ -17,6 +17,6 @@ trap trap_cleanup EXIT TERM INT =20 shelldir=3D$(dirname "$0") perf_path=3D$(which perf) -python "${shelldir}"/../attr.py -d "${shelldir}"/../attr -v -p "$perf_path" +python "${shelldir}"/lib/attr.py -d "${shelldir}"/attr -v -p "$perf_path" cleanup exit $err diff --git a/tools/perf/tests/attr/README b/tools/perf/tests/shell/attr/REA= DME similarity index 100% rename from tools/perf/tests/attr/README rename to tools/perf/tests/shell/attr/README diff --git a/tools/perf/tests/attr/base-record b/tools/perf/tests/shell/att= r/base-record similarity index 100% rename from tools/perf/tests/attr/base-record rename to tools/perf/tests/shell/attr/base-record diff --git a/tools/perf/tests/attr/base-record-spe b/tools/perf/tests/shell= /attr/base-record-spe similarity index 100% rename from tools/perf/tests/attr/base-record-spe rename to tools/perf/tests/shell/attr/base-record-spe diff --git a/tools/perf/tests/attr/base-stat b/tools/perf/tests/shell/attr/= base-stat similarity index 100% rename from tools/perf/tests/attr/base-stat rename to tools/perf/tests/shell/attr/base-stat diff --git a/tools/perf/tests/attr/system-wide-dummy b/tools/perf/tests/she= ll/attr/system-wide-dummy similarity index 100% rename from tools/perf/tests/attr/system-wide-dummy rename to tools/perf/tests/shell/attr/system-wide-dummy diff --git a/tools/perf/tests/attr/test-record-C0 b/tools/perf/tests/shell/= attr/test-record-C0 similarity index 100% rename from tools/perf/tests/attr/test-record-C0 rename to tools/perf/tests/shell/attr/test-record-C0 diff --git a/tools/perf/tests/attr/test-record-basic b/tools/perf/tests/she= ll/attr/test-record-basic similarity index 100% rename from tools/perf/tests/attr/test-record-basic rename to tools/perf/tests/shell/attr/test-record-basic diff --git a/tools/perf/tests/attr/test-record-branch-any b/tools/perf/test= s/shell/attr/test-record-branch-any similarity index 100% rename from tools/perf/tests/attr/test-record-branch-any rename to tools/perf/tests/shell/attr/test-record-branch-any diff --git a/tools/perf/tests/attr/test-record-branch-filter-any b/tools/pe= rf/tests/shell/attr/test-record-branch-filter-any similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-any rename to tools/perf/tests/shell/attr/test-record-branch-filter-any diff --git a/tools/perf/tests/attr/test-record-branch-filter-any_call b/too= ls/perf/tests/shell/attr/test-record-branch-filter-any_call similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-any_call rename to tools/perf/tests/shell/attr/test-record-branch-filter-any_call diff --git a/tools/perf/tests/attr/test-record-branch-filter-any_ret b/tool= s/perf/tests/shell/attr/test-record-branch-filter-any_ret similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-any_ret rename to tools/perf/tests/shell/attr/test-record-branch-filter-any_ret diff --git a/tools/perf/tests/attr/test-record-branch-filter-hv b/tools/per= f/tests/shell/attr/test-record-branch-filter-hv similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-hv rename to tools/perf/tests/shell/attr/test-record-branch-filter-hv diff --git a/tools/perf/tests/attr/test-record-branch-filter-ind_call b/too= ls/perf/tests/shell/attr/test-record-branch-filter-ind_call similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-ind_call rename to tools/perf/tests/shell/attr/test-record-branch-filter-ind_call diff --git a/tools/perf/tests/attr/test-record-branch-filter-k b/tools/perf= /tests/shell/attr/test-record-branch-filter-k similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-k rename to tools/perf/tests/shell/attr/test-record-branch-filter-k diff --git a/tools/perf/tests/attr/test-record-branch-filter-u b/tools/perf= /tests/shell/attr/test-record-branch-filter-u similarity index 100% rename from tools/perf/tests/attr/test-record-branch-filter-u rename to tools/perf/tests/shell/attr/test-record-branch-filter-u diff --git a/tools/perf/tests/attr/test-record-count b/tools/perf/tests/she= ll/attr/test-record-count similarity index 100% rename from tools/perf/tests/attr/test-record-count rename to tools/perf/tests/shell/attr/test-record-count diff --git a/tools/perf/tests/attr/test-record-data b/tools/perf/tests/shel= l/attr/test-record-data similarity index 100% rename from tools/perf/tests/attr/test-record-data rename to tools/perf/tests/shell/attr/test-record-data diff --git a/tools/perf/tests/attr/test-record-dummy-C0 b/tools/perf/tests/= shell/attr/test-record-dummy-C0 similarity index 100% rename from tools/perf/tests/attr/test-record-dummy-C0 rename to tools/perf/tests/shell/attr/test-record-dummy-C0 diff --git a/tools/perf/tests/attr/test-record-freq b/tools/perf/tests/shel= l/attr/test-record-freq similarity index 100% rename from tools/perf/tests/attr/test-record-freq rename to tools/perf/tests/shell/attr/test-record-freq diff --git a/tools/perf/tests/attr/test-record-graph-default b/tools/perf/t= ests/shell/attr/test-record-graph-default similarity index 100% rename from tools/perf/tests/attr/test-record-graph-default rename to tools/perf/tests/shell/attr/test-record-graph-default diff --git a/tools/perf/tests/attr/test-record-graph-default-aarch64 b/tool= s/perf/tests/shell/attr/test-record-graph-default-aarch64 similarity index 100% rename from tools/perf/tests/attr/test-record-graph-default-aarch64 rename to tools/perf/tests/shell/attr/test-record-graph-default-aarch64 diff --git a/tools/perf/tests/attr/test-record-graph-dwarf b/tools/perf/tes= ts/shell/attr/test-record-graph-dwarf similarity index 100% rename from tools/perf/tests/attr/test-record-graph-dwarf rename to tools/perf/tests/shell/attr/test-record-graph-dwarf diff --git a/tools/perf/tests/attr/test-record-graph-fp b/tools/perf/tests/= shell/attr/test-record-graph-fp similarity index 100% rename from tools/perf/tests/attr/test-record-graph-fp rename to tools/perf/tests/shell/attr/test-record-graph-fp diff --git a/tools/perf/tests/attr/test-record-graph-fp-aarch64 b/tools/per= f/tests/shell/attr/test-record-graph-fp-aarch64 similarity index 100% rename from tools/perf/tests/attr/test-record-graph-fp-aarch64 rename to tools/perf/tests/shell/attr/test-record-graph-fp-aarch64 diff --git a/tools/perf/tests/attr/test-record-group-sampling b/tools/perf/= tests/shell/attr/test-record-group-sampling similarity index 100% rename from tools/perf/tests/attr/test-record-group-sampling rename to tools/perf/tests/shell/attr/test-record-group-sampling diff --git a/tools/perf/tests/attr/test-record-group-sampling1 b/tools/perf= /tests/shell/attr/test-record-group-sampling1 similarity index 100% rename from tools/perf/tests/attr/test-record-group-sampling1 rename to tools/perf/tests/shell/attr/test-record-group-sampling1 diff --git a/tools/perf/tests/attr/test-record-group-sampling2 b/tools/perf= /tests/shell/attr/test-record-group-sampling2 similarity index 100% rename from tools/perf/tests/attr/test-record-group-sampling2 rename to tools/perf/tests/shell/attr/test-record-group-sampling2 diff --git a/tools/perf/tests/attr/test-record-group1 b/tools/perf/tests/sh= ell/attr/test-record-group1 similarity index 100% rename from tools/perf/tests/attr/test-record-group1 rename to tools/perf/tests/shell/attr/test-record-group1 diff --git a/tools/perf/tests/attr/test-record-group2 b/tools/perf/tests/sh= ell/attr/test-record-group2 similarity index 100% rename from tools/perf/tests/attr/test-record-group2 rename to tools/perf/tests/shell/attr/test-record-group2 diff --git a/tools/perf/tests/attr/test-record-group3 b/tools/perf/tests/sh= ell/attr/test-record-group3 similarity index 100% rename from tools/perf/tests/attr/test-record-group3 rename to tools/perf/tests/shell/attr/test-record-group3 diff --git a/tools/perf/tests/attr/test-record-no-buffering b/tools/perf/te= sts/shell/attr/test-record-no-buffering similarity index 100% rename from tools/perf/tests/attr/test-record-no-buffering rename to tools/perf/tests/shell/attr/test-record-no-buffering diff --git a/tools/perf/tests/attr/test-record-no-inherit b/tools/perf/test= s/shell/attr/test-record-no-inherit similarity index 100% rename from tools/perf/tests/attr/test-record-no-inherit rename to tools/perf/tests/shell/attr/test-record-no-inherit diff --git a/tools/perf/tests/attr/test-record-no-samples b/tools/perf/test= s/shell/attr/test-record-no-samples similarity index 100% rename from tools/perf/tests/attr/test-record-no-samples rename to tools/perf/tests/shell/attr/test-record-no-samples diff --git a/tools/perf/tests/attr/test-record-period b/tools/perf/tests/sh= ell/attr/test-record-period similarity index 100% rename from tools/perf/tests/attr/test-record-period rename to tools/perf/tests/shell/attr/test-record-period diff --git a/tools/perf/tests/attr/test-record-pfm-period b/tools/perf/test= s/shell/attr/test-record-pfm-period similarity index 100% rename from tools/perf/tests/attr/test-record-pfm-period rename to tools/perf/tests/shell/attr/test-record-pfm-period diff --git a/tools/perf/tests/attr/test-record-raw b/tools/perf/tests/shell= /attr/test-record-raw similarity index 100% rename from tools/perf/tests/attr/test-record-raw rename to tools/perf/tests/shell/attr/test-record-raw diff --git a/tools/perf/tests/attr/test-record-spe-period b/tools/perf/test= s/shell/attr/test-record-spe-period similarity index 100% rename from tools/perf/tests/attr/test-record-spe-period rename to tools/perf/tests/shell/attr/test-record-spe-period diff --git a/tools/perf/tests/attr/test-record-spe-period-term b/tools/perf= /tests/shell/attr/test-record-spe-period-term similarity index 100% rename from tools/perf/tests/attr/test-record-spe-period-term rename to tools/perf/tests/shell/attr/test-record-spe-period-term diff --git a/tools/perf/tests/attr/test-record-spe-physical-address b/tools= /perf/tests/shell/attr/test-record-spe-physical-address similarity index 100% rename from tools/perf/tests/attr/test-record-spe-physical-address rename to tools/perf/tests/shell/attr/test-record-spe-physical-address diff --git a/tools/perf/tests/attr/test-record-user-regs-no-sve-aarch64 b/t= ools/perf/tests/shell/attr/test-record-user-regs-no-sve-aarch64 similarity index 100% rename from tools/perf/tests/attr/test-record-user-regs-no-sve-aarch64 rename to tools/perf/tests/shell/attr/test-record-user-regs-no-sve-aarch64 diff --git a/tools/perf/tests/attr/test-record-user-regs-old-sve-aarch64 b/= tools/perf/tests/shell/attr/test-record-user-regs-old-sve-aarch64 similarity index 100% rename from tools/perf/tests/attr/test-record-user-regs-old-sve-aarch64 rename to tools/perf/tests/shell/attr/test-record-user-regs-old-sve-aarch64 diff --git a/tools/perf/tests/attr/test-record-user-regs-sve-aarch64 b/tool= s/perf/tests/shell/attr/test-record-user-regs-sve-aarch64 similarity index 100% rename from tools/perf/tests/attr/test-record-user-regs-sve-aarch64 rename to tools/perf/tests/shell/attr/test-record-user-regs-sve-aarch64 diff --git a/tools/perf/tests/attr/test-stat-C0 b/tools/perf/tests/shell/at= tr/test-stat-C0 similarity index 100% rename from tools/perf/tests/attr/test-stat-C0 rename to tools/perf/tests/shell/attr/test-stat-C0 diff --git a/tools/perf/tests/attr/test-stat-basic b/tools/perf/tests/shell= /attr/test-stat-basic similarity index 100% rename from tools/perf/tests/attr/test-stat-basic rename to tools/perf/tests/shell/attr/test-stat-basic diff --git a/tools/perf/tests/attr/test-stat-default b/tools/perf/tests/she= ll/attr/test-stat-default similarity index 100% rename from tools/perf/tests/attr/test-stat-default rename to tools/perf/tests/shell/attr/test-stat-default diff --git a/tools/perf/tests/attr/test-stat-detailed-1 b/tools/perf/tests/= shell/attr/test-stat-detailed-1 similarity index 100% rename from tools/perf/tests/attr/test-stat-detailed-1 rename to tools/perf/tests/shell/attr/test-stat-detailed-1 diff --git a/tools/perf/tests/attr/test-stat-detailed-2 b/tools/perf/tests/= shell/attr/test-stat-detailed-2 similarity index 100% rename from tools/perf/tests/attr/test-stat-detailed-2 rename to tools/perf/tests/shell/attr/test-stat-detailed-2 diff --git a/tools/perf/tests/attr/test-stat-detailed-3 b/tools/perf/tests/= shell/attr/test-stat-detailed-3 similarity index 100% rename from tools/perf/tests/attr/test-stat-detailed-3 rename to tools/perf/tests/shell/attr/test-stat-detailed-3 diff --git a/tools/perf/tests/attr/test-stat-group1 b/tools/perf/tests/shel= l/attr/test-stat-group1 similarity index 100% rename from tools/perf/tests/attr/test-stat-group1 rename to tools/perf/tests/shell/attr/test-stat-group1 diff --git a/tools/perf/tests/attr/test-stat-no-inherit b/tools/perf/tests/= shell/attr/test-stat-no-inherit similarity index 100% rename from tools/perf/tests/attr/test-stat-no-inherit rename to tools/perf/tests/shell/attr/test-stat-no-inherit diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/shell/lib/attr.py similarity index 100% rename from tools/perf/tests/attr.py rename to tools/perf/tests/shell/lib/attr.py --=20 2.47.0.rc1.288.g06298d1525-goog