From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 E090327FD6D for ; Sat, 22 Nov 2025 08:19:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799579; cv=none; b=I2Qb5Yqr6BTNeE0lvK1YPa5wTJx1uEmI78wQRFWRBoPUfLKyZMSCttEC4QyI6z5D7EX1nTFqPgiMqYZJWAKonfownaRVZFCT1PzthhjkA8GAlYLti5q+vYcbkBAIYQeMwO1lB80htWD1qBhMXYnxGLH3uu7QcwwlG+j9qbbdKDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799579; c=relaxed/simple; bh=66zSOIq74hxYCETHRFMWlx/lP7j6PkMIhGgMOekkt40=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=PNNXvjP9juKnxrJ/GS366DRGy+uvjGCEWRdVcqfQm24CBVqEeHNbVcKibuFm00KBvXFxHEEKGVCaS8zVNsHJa0Jze1PrparQt9UhUDyDAa4a4gu7vTu/uUtlgY63E/ViXoLCH/hc7ca65oydhGenLEgcfNm3ObHysxUixnFih4E= 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=yF4I6ed9; arc=none smtp.client-ip=209.85.215.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="yF4I6ed9" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-ba4c6ac8406so2235900a12.0 for ; Sat, 22 Nov 2025 00:19:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799577; x=1764404377; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=qGjBuL6hpWHuvMAblul9npGpWy029ZKQRp7hNfKA50A=; b=yF4I6ed9JfX/3KBNkhFdR6jPc818rmrGQulpu4Ox29URE6GRDKjL5xRdqLqxIxrG3v L3cvtVzMkmzsxPMoyvpOaMU28yAMmDzFtf+Ll+m5SyFSQd/oNbMR2MXxLU6ObQxh47ie 3LS/8Dqw/iVRpM84g5r6uqhrj0r82rg5A6WsY9Q7e//lJdVkjc3gNQC7NGIXo2NWBbTd r73TMKdnYK6XbcjTZsyLEIRMDSjVvYCastG/VGwUfe1B5kBWgzt8/0tuOQL+I/uCBcVJ rZr3+hYz2Us8BRFWQLYyUF9cy2NU7c8Y4dhfRPCoIVuJG0RIzKmI5/Huge13oQMW3re5 Afvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799577; x=1764404377; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qGjBuL6hpWHuvMAblul9npGpWy029ZKQRp7hNfKA50A=; b=qoeX0sO5d7/swV2GW0w+OLMhye0hBANcKyXjnzXxkcC7tpldwwTQQmqmAjYER6gVPo GqkCNLmnCiSmXAPzU5ucIfhbpPMYVww8S8f5JXcKMjcg8unDQ5AbpLEp40bXTrY/jkOZ 0qK3AgGfSyB77R84oqfeidSU9jikudeH8Ad3IlzcsQwzLmlaBPc1SeiS3mI60Eg+bnq9 LXJd8MMM3Y+PDUM6Yx8fPIT9wkO1quUUMDCZfjm/c0Id5H0J+mmTvjtsTkyHXBspsCnQ j2k0OGU3dQzR4ZZIiVth+HfRIOHILOPRL7MMPu3FTSTRfv1zgT0ULltnPKdm/G2hCD2T 2Yug== X-Forwarded-Encrypted: i=1; AJvYcCXKTsiNL79Pdzf0yfE6+ldKpFn+dH5fqjr6uXpD7BedR2/vG26ZFmqQgtxbMGf3T9ukuqvmMr6mMBX9W0M=@vger.kernel.org X-Gm-Message-State: AOJu0Yzw2Gfqt6/QFhoaaMVjFix6QI5pqqc4nt1Kxad1Fv8gT6G+D7m4 hDRsY6CDRuc0Sx71Ue8ktquhwFNYQJXZWUl66BwgrM8JE17jkvXB7ra7OWpohjX9Le3+xWYVnLz L/9z7CkTleQ== X-Google-Smtp-Source: AGHT+IFk8hIvCd98IgS3hAB8UgO1KPRZquX8qEJmEtwOJnrLusPChQDQA1oynuDhD//Rh1OjHAscFPAszRhJ X-Received: from dybma12.prod.google.com ([2002:a05:7301:168c:b0:2a2:53a5:570f]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:f148:b0:2a4:3593:ddf5 with SMTP id 5a478bee46e88-2a71a0015ebmr1591424eec.34.1763799577130; Sat, 22 Nov 2025 00:19:37 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:13 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-2-irogers@google.com> Subject: [PATCH v1 01/17] perf kvm: Fix debug assertion From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There are 2 slots left for kvm_add_default_arch_event, fix the assertion so that debug builds don't fail the assert and to agree with the comment. Signed-off-by: Ian Rogers --- tools/perf/builtin-kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index f0f285763f19..c61369d54dd9 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -2014,7 +2014,7 @@ static int __cmd_record(const char *file_name, int ar= gc, const char **argv) for (j =3D 1; j < argc; j++, i++) rec_argv[i] =3D STRDUP_FAIL_EXIT(argv[j]); =20 - BUG_ON(i !=3D rec_argc); + BUG_ON(i + 2 !=3D rec_argc); =20 ret =3D kvm_add_default_arch_event(&i, rec_argv); if (ret) --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.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 CA2062D8DAF for ; Sat, 22 Nov 2025 08:19:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799581; cv=none; b=kSpfRPlv4moFV3dALVqzrzTk0ARm+YcpucBL9bGpwAwKrDjR92JdSqnRVpASbNM6Gr48qxq6dTMiVoeXgpm98kmzjSd0k3KfjSRqHWWTXZE6999OSnxmg/8m/9MkyMuVOQfmAVwpGb2b/TJXGyJ6lK/nddffV4MMbHZgHBtrxMQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799581; c=relaxed/simple; bh=lcitgjEQcXl1ueB+btDph/z9Qk2ubVjcj5n/+Z1wp9U=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=nN0lIAMjT2kaZnLNlpHACvfmO4TQ++SaiK8YrSTQri78VXJxP/f1d1tf25jooCID0uqDp/MhD4IUh6xNh1N2d5lr0rLXONK4WEr17IZVUE37YgnZDAC1De8GTvultjww/E+1/xwa3Fc+vG8G/eomYROezz7VmMvI5ygiXNqV+KU= 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=LHOIFRai; arc=none smtp.client-ip=209.85.214.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="LHOIFRai" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-297dfae179bso81304005ad.1 for ; Sat, 22 Nov 2025 00:19:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799579; x=1764404379; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=olDcTWaXoeAAZhaDM2EEwFLEFX4r4XtX7pbuTmW4sUE=; b=LHOIFRaiztihTktBVsUZdTuoAT/BrzAewNIh1SG0Tby58D3i7461k1VqIpobLGabGl 6Tai++nW7nXnChlS6IohMjAwPfXARA6DRY3xhVNOEfeBZramj901CSeZahKsL4EFdZZG uZ9cWOuPcOAtCrht+uuEt4+gQ+jqcpoXPY4vdrPR/XAEaKINgpxqJqYogUKRFd5/bdGa 0ohsCNImSASLqi/Gupsd2IP1uQzwajxgVHHCx8uBAiE/guyf+S9zAAXVyxJh7IYxsiBi MTsOEo/B8+tRYhOVtZPQAeMSoKvNaF+mj0UHDA62Fa/Uvf7Fq/gotoaunkMb7ZQO+fdc OR1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799579; x=1764404379; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=olDcTWaXoeAAZhaDM2EEwFLEFX4r4XtX7pbuTmW4sUE=; b=Gnek6ithGTJYIs1SKtHufFswKvq9cq1iygzuEMbgzFvpg2mxHAH955EeHGloZVyiyL bO0KnH3XBDIyiYbwe8EkRDbjxwlUzQQvzK25IsIFNqActevBjlr+bEMvD7XF/8GI6QRA KWFz3FstdtLn2u+o/Fn963vILt7lf4CKcrkw1zsE1r8gnf/81yob79dG/vL1sNayIaNH U/5zWEDK4wNzLS2ZPGZwDRJY2RF3Jcvj53I9gMjeYNVJ8WZgJkHgcABgMUbr3MFpH2Ne DAAfR3cz74S8uWiDptekOxF+dwXxj/ecg+6SGGVUtVV++m9Ckp9fU8+pnLenltcGVsy6 mwwg== X-Forwarded-Encrypted: i=1; AJvYcCXFsv1qOqDJsqJe0gee0/Vgmbb5D95n+IIHeTHCuN1i00WErfJzjea5/qNJu+jqdlN9i12devS0LCLnkng=@vger.kernel.org X-Gm-Message-State: AOJu0YxKKqMM4iCzNagAfa+PPC/+5h14g90deVS8cXDV14FVM35v2g4I dF58piDLaMldMZXNL4pKW8R5ytIFdQWtkG2ef9MqWxNMx35u1j44w1S8zyA1jjFkAd+bJ0M7YBa L1eUIIF6pRQ== X-Google-Smtp-Source: AGHT+IFg6Ktrj2zIwJbXlbe5LDlc+MS/s38n577fvz01e7jf8fE8U5cwWbIJlEx4XNUPC4DWxaE7w06J0Wjy X-Received: from dlbqy19.prod.google.com ([2002:a05:7022:ef13:b0:11b:c1ab:bdb1]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:ec88:b0:11a:4b72:35e8 with SMTP id a92af1059eb24-11c9d7092b7mr2588098c88.6.1763799579085; Sat, 22 Nov 2025 00:19:39 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:14 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-3-irogers@google.com> Subject: [PATCH v1 02/17] perf timechart: Add record support for output perf.data path From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The '-o' option exists for the SVG creation but not for `perf timechart record`. Add to better allow testing. Signed-off-by: Ian Rogers --- tools/perf/builtin-timechart.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index 22050c640dfa..f8b49d69e9a5 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c @@ -1651,7 +1651,7 @@ static int __cmd_timechart(struct timechart *tchart, = const char *output_name) return ret; } =20 -static int timechart__io_record(int argc, const char **argv) +static int timechart__io_record(int argc, const char **argv, const char *o= utput_data) { unsigned int rec_argc, i; const char **rec_argv; @@ -1659,7 +1659,7 @@ static int timechart__io_record(int argc, const char = **argv) char *filter =3D NULL; =20 const char * const common_args[] =3D { - "record", "-a", "-R", "-c", "1", + "record", "-a", "-R", "-c", "1", "-o", output_data, }; unsigned int common_args_nr =3D ARRAY_SIZE(common_args); =20 @@ -1786,7 +1786,8 @@ static int timechart__io_record(int argc, const char = **argv) } =20 =20 -static int timechart__record(struct timechart *tchart, int argc, const cha= r **argv) +static int timechart__record(struct timechart *tchart, int argc, const cha= r **argv, + const char *output_data) { unsigned int rec_argc, i, j; const char **rec_argv; @@ -1794,7 +1795,7 @@ static int timechart__record(struct timechart *tchart= , int argc, const char **ar unsigned int record_elems; =20 const char * const common_args[] =3D { - "record", "-a", "-R", "-c", "1", + "record", "-a", "-R", "-c", "1", "-o", output_data, }; unsigned int common_args_nr =3D ARRAY_SIZE(common_args); =20 @@ -1934,6 +1935,7 @@ int cmd_timechart(int argc, const char **argv) .merge_dist =3D 1000, }; const char *output_name =3D "output.svg"; + const char *output_record_data =3D "perf.data"; const struct option timechart_common_options[] =3D { OPT_BOOLEAN('P', "power-only", &tchart.power_only, "output power data onl= y"), OPT_BOOLEAN('T', "tasks-only", &tchart.tasks_only, "output processes data= only"), @@ -1976,6 +1978,7 @@ int cmd_timechart(int argc, const char **argv) OPT_BOOLEAN('I', "io-only", &tchart.io_only, "record only IO data"), OPT_BOOLEAN('g', "callchain", &tchart.with_backtrace, "record callchain"), + OPT_STRING('o', "output", &output_record_data, "file", "output data file = name"), OPT_PARENT(timechart_common_options), }; const char * const timechart_record_usage[] =3D { @@ -2024,9 +2027,9 @@ int cmd_timechart(int argc, const char **argv) } =20 if (tchart.io_only) - ret =3D timechart__io_record(argc, argv); + ret =3D timechart__io_record(argc, argv, output_record_data); else - ret =3D timechart__record(&tchart, argc, argv); + ret =3D timechart__record(&tchart, argc, argv, output_record_data); goto out; } else if (argc) usage_with_options(timechart_usage, timechart_options); --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.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 E3F792E2852 for ; Sat, 22 Nov 2025 08:19:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799584; cv=none; b=GHGLhn1ojGmGHFl4r82/eeALyEeuSwTcZO1xd1G0AZN4krK5wWtlUWeMwn93rp/g9TIyNvVhXItGQSwn65zieZLIy6rfa6oZ2rvjZTzo+KXGzqvycVYxk9L+PURGZDj6Vtt1EaYJT9DJQrzzpgCfzexPim4beWcqyfYHkP8p67w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799584; c=relaxed/simple; bh=sx7HYHks3ytj7Jes2KeHQ4gHIyvcIcsZS20MoUx3Rf0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=Af80X0i3FI2fvnRNcKqCQqFTFLrqm/m9U/5GOVKrhoFG1aOYE0nVH94mchu9hbKqOwkxEqU/57U89vbxcO8994vhbTzzDmRjjxtzq0/LPd95jqZEyrw5Vn4JL79UDweyMxxKEVThsWS5IAI+/1e6QZe3GIAbZSPUE/xahPoZFRc= 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=E/hSQFwa; arc=none smtp.client-ip=209.85.210.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="E/hSQFwa" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-7b9c91b814cso8781328b3a.2 for ; Sat, 22 Nov 2025 00:19:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799581; x=1764404381; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=PfPxaYlK1t4toeHzJ2SOIsfB7c+WhL2RCiW1BSoMqL4=; b=E/hSQFwaGPK27GWjYueiFil4TFWSv+2NngqQk4L1KnmqSYgl08DHa0B/9xPUGn6a02 7vUVhu2aSZJYuKSRi7XJ7dl15MPWmQ3Uar7UwkTApSntlUqWWpDXZLgpo8bxCi7koXuO 8TkAdyDMdBHlDtbUrLWArodUhhlvUC2fK/z3dTrfDkcnSFF8mNcqYu29NyOKfu49C9gJ gu5GcMqk9IlavMqT3XUd4nIkx7Mn4NdFXYV1ayHc8Okg3P3EanEtWebt7Sp0vTeKqTmw x2IdtcRacR4dJ6G1IgzyHhPEWtC5nAHIHqQ2HkRBso5viPhXmUGuwd70MhdRDKHrhcv5 i2Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799581; x=1764404381; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PfPxaYlK1t4toeHzJ2SOIsfB7c+WhL2RCiW1BSoMqL4=; b=bLqIspBWk1mzxj8IMwZ57Qg237oAE6AuCbMlig/8dv1+HUVSDIz484i3M1Yv1yybY8 Zc08+r4pP6VOAxdsHvt5OUnJTJMRs2wmAxlCpZrQXWzyylXnEMkb7v6VsIOH2shyWp8b dJx5AM3PFXw4e5Ekc7qLfWzLvQ8AZ4QU3n844ouombTu2hgg+J0dGGPoD9gDuv4/Q8bV wTMmWKrzRp3wLdzKkSKH9C+RBVcAgR6p5NmFMOKYt1QLbMNoBByAoOpuQFQWZNTHkkxS Vtc7x0DUx03AiXnNgXyy4cZbjHChNxjOKxZdYxAEYPW3Jwmfv64rFooTjYHMTjWqFlti OFgA== X-Forwarded-Encrypted: i=1; AJvYcCXvc6qYWxL+qeDffFMnMU7dR3BceY4YV6A9f0P9kXX9yDjlakpNmZFUIRiDmdLelDKzMRTzXMLVClLnLjk=@vger.kernel.org X-Gm-Message-State: AOJu0YynVSF+nyZeU26Bw/2s9mKQBfhDCsLCvIKdrx6iLS2YTh6udILi 9fxUIV30kftu501WLYhkBY2gKEIZUkWRkjI2bCJGgY9iDnmLas+5D0eulOigpf1LBZYJxz2ziel noA+ODubPww== X-Google-Smtp-Source: AGHT+IG0rfZfyZv/KsW4SMkzha2L2s97MUZn6ZWmw1Xt/qrPrIa8qfuUMlZTN5DccGBLCB/Kg+hUvS2kXAQC X-Received: from pgmj1.prod.google.com ([2002:a63:5941:0:b0:bd9:a349:94b1]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:938c:b0:350:9b6b:8ea8 with SMTP id adf61e73a8af0-3614ee6bb4cmr7151492637.51.1763799581068; Sat, 22 Nov 2025 00:19:41 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:15 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-4-irogers@google.com> Subject: [PATCH v1 03/17] perf symbol-elf: Add missing puts on error path From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In dso__process_kernel_symbol if inserting a map fails, probably ENOMEM, then the reference count puts were missing on the dso and map. Signed-off-by: Ian Rogers Reviewed-by: Arnaldo Carvalho de Melo --- tools/perf/util/symbol-elf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 9e820599bab3..4c76e680b13d 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1446,8 +1446,11 @@ static int dso__process_kernel_symbol(struct dso *ds= o, struct map *map, map__set_mapping_type(curr_map, MAPPING_TYPE__IDENTITY); } dso__set_symtab_type(curr_dso, dso__symtab_type(dso)); - if (maps__insert(kmaps, curr_map)) + if (maps__insert(kmaps, curr_map)) { + dso__put(curr_dso); + map__put(curr_map); return -1; + } dsos__add(&maps__machine(kmaps)->dsos, curr_dso); dso__set_loaded(curr_dso); dso__put(*curr_dsop); --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.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 7368A2EA16A for ; Sat, 22 Nov 2025 08:19:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799586; cv=none; b=C8BBv4EW+c6A67cML9Eb9A/dEbRL4UjwY0m9ylbEqqWjpyMRDfrNbctjQRKOW7PkaHnAK0ONMvwtMcJ4nKgzWffwan1Sujt4gWjdg8pFjmaG85yknyL+zYDlZWgMP7y/kJv3jelNhQO6GPVzUEBie8yNnnReMG3QLstVr4cjhd4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799586; c=relaxed/simple; bh=IF7kiGMXT3GWUUAyL/cSBuIOkjSMd8QXGdU4ipFZplA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=H4E02xCBJCPFfzbhmZ4Eohj9Rff1S7O3Y52ySfNeg6xoRwnX2OUche37Qghs0DdhgLPua07AiztmktPlCjWfsWJIdSAa4k2iRGtVPXUDRUAJJK0jMMBnwUlPhoTLRSaCA6+7gLTZr19HUmG17QK4IHK54mb+Jgvbgou20DiEbVA= 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=nxQRQ1Cw; arc=none smtp.client-ip=209.85.210.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="nxQRQ1Cw" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-7bf5cdef41dso6597415b3a.0 for ; Sat, 22 Nov 2025 00:19:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799583; x=1764404383; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=GvMe0/1/vRKq5bNJV10II46vCbhKGM1y7dlTeIbVfZk=; b=nxQRQ1CwsIEpxU3NS+uMMYeXEURIxJWVU52g08jqhB1eqC7cLcAzKAylQ19GIhljRC oU0jeAOzttD8UShWvrbYTfn+k2XjTP9lQdSGfuxS7fYSCqNW6QOwkLtcbRTdYB4AHKx+ UlpsPTMLNhSQYuJkoZbsnFbR4Ct4SMSadH0dTKMxRk4b3WCbL3cZJ005Dh9s2L4NAj2h vAjrOjKn92qxVj1uWUcirmY00MtV+qXOXF4gJCrml/sl8mGeTkz7lEDsFaDtqxbUvRJq jSI0HuUIjEJDLtLi0wqz8naZbKXpOAz9AYMwR9OvLZkIwqNexqNn1FIijDy2GJkjmaE2 KCtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799583; x=1764404383; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GvMe0/1/vRKq5bNJV10II46vCbhKGM1y7dlTeIbVfZk=; b=mzE9YU2dkOXPxuHmmelJe7UhbyS7kTmFU/nPjAGDcFMnTbg4AiLRiXfYC4qgs1Jq7U uZ5E1hQWsDqrKgSSvJOhgikOJT8RkOlpYobxSwOkpfqgvn/md8ct01/J1+Ptr9r2DeXX H2jFDBwxo64wt3vPAeZApRDhdr97PFPZ0s32SBt2vT17cp7WWBzb3KPLrmSjg4+w3b8l +Oy9mTuBwzT5AqUUQbsA3jRAOwhrGuFrPch6329JJ/THm3RvZnGGcyoIQTbWSMrQ8DOt B9egDOaR/KDUjHerEO2JV1QQvhEm0xM0tU1sQ2Kk5/DbGCYwLSY83KyIwfKWtGe8mHC8 rNjw== X-Forwarded-Encrypted: i=1; AJvYcCX/Rqvll8HosyGqrY081R7GoQBDQIhp5XbTU8m2H+jUAxmhdbjB9F0ZWkAQmd+z7leDmiUy1yiwn40Gyqg=@vger.kernel.org X-Gm-Message-State: AOJu0Yym/1N7u7Vcd4XgXyaULnEGT0TerwI4/JYMOk8QLv6SxZb9dUEd D26EQ9a6MGCn7Pur921Rlj8dYg/XDMzjdffi6T/0++8TiV8mkbZNYInzfVcovE4NnDePyJt6Cbh ka26GZ7C+Rw== X-Google-Smtp-Source: AGHT+IHIAAPP9U27w/gI9cni5l2P+pE2XAzE/K8cjLvVURUpB29gfEdcfXPra/Jl6XclLzvz/p2lYfJcv96N X-Received: from dlbdm40.prod.google.com ([2002:a05:7022:6ba8:b0:119:78ff:fe1c]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:701b:251b:b0:119:e569:f278 with SMTP id a92af1059eb24-11c9d865804mr2152423c88.33.1763799583198; Sat, 22 Nov 2025 00:19:43 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:16 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-5-irogers@google.com> Subject: [PATCH v1 04/17] perf symbol: Add missed dso__put From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add missing dso__put for the dso created in maps__split_kallsyms. Signed-off-by: Ian Rogers --- tools/perf/util/symbol.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index cc26b7bf302b..067754b5b667 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -985,6 +985,7 @@ static int maps__split_kallsyms(struct maps *kmaps, str= uct dso *dso, u64 delta, dso__put(ndso); return -1; } + dso__put(ndso); ++kernel_range; } else if (delta) { /* Kernel was relocated at boot time */ --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 55EAB2E9729 for ; Sat, 22 Nov 2025 08:19:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799587; cv=none; b=ECyC5iVGD5PM/q9NV9VVeo5Dxtp5UP8f3rEQB2cAWg9omw0F3FIyP/JLLG3Gl0KFbgHK78Jk1TK2ged7aE3CuQdNUUr5bqBYEr3482h80W8djZmepp6bnqGvFlEU+NoB9jpn42kfj6zvdEUIQIJBqOSknqWUfn+i6f9ZiK2DpH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799587; c=relaxed/simple; bh=G/aW5peChO+UAsXLrxbnBK/C5iyGmYE1p5zjBCdvV8Y=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=ngyWW4fNn0giqLdx69xxQvcGVJ+UOWw4o5ZGUo86MK6pSixz0Mqid8vwYcICeaJhcaD4eL4dpReKieniy2UIaLeTfSvrrMd3hmyIhVe42X6fi0xNVHQFPRggl0zts2DkLBCITEl3AL7HKgRmzg2qGePJwIF/jclT7ahhlJJygbY= 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=EO1R9uah; arc=none smtp.client-ip=209.85.216.74 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="EO1R9uah" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-34378c914b4so9225740a91.1 for ; Sat, 22 Nov 2025 00:19:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799586; x=1764404386; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=iWcorUar4Czscwonf/eqS0QDW5x4dx/5VrikSBKo6nY=; b=EO1R9uah7udnh9cT5J0iXRdleIurZXLjZ2KWaeVRKCxelgRE9ZI/s/m06yji48Rgf4 vomEufMNMorNcJbhvFfH1pIhZ+Sgf3RwK7CgjmkQjXaHW8PZLrKKQOpP64KNzP7OO1iD iht50Vlxar5FaTUHuhCQV+YA5dIQ247wPT1Be4nk8T5n9UhRJulqwhP6+Zn8TDI+0v6M BwO1ABck4i9oFHvP9iEV6HWs56kOmVqdqsLJ+iJuixf1DBT9p/Xea19ey5Ljo0Xt9hDE hoIyTPB+uxeOrneOzZlzB5ODfwLk8Z1d+JpNErjMaSd4c+pxoI5fOTC1me5Dkpwnz/uJ lLKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799586; x=1764404386; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iWcorUar4Czscwonf/eqS0QDW5x4dx/5VrikSBKo6nY=; b=qgMSMXocjRVLAljalJKVZ7SLf5rjngFQ0KmN55Hexk1aZdhYTZiuwrkh7LKbngkrMX VdNFse5HVDWg6fmclLfBQ5uZ3oLSiqFdQQ1LU8MLFKQ+kbuf8n99bfcZJkR3mnO8sOwv 7TL48d46Y3i+pQAQKb6uinMGU1eCGloNKwNvVTZubqryMGLZgJVKs1maBe47LW446W8b CnyokQ+nPmqo16KWKyI4+/wSY83Gtm+L6kQA6LvLNG8tdX1ovjQbhQ3XjcEvU+bct6RF 4A2fuKZ0TDLOqjQcJfFTn5ac93CdOjab8vpFE++wTq9d5PvO95Vdy6E58sajI5cZB4PT B+Ow== X-Forwarded-Encrypted: i=1; AJvYcCV9rb+1VovWjHJmTkcvnghmUktFy3c/fTS4AbwR6gjnA9aYTHErKGI7mpVFofKjPYm1XmRtDA+EOjoqVZc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2lYxZP0smSUbekLQkWgok6In7Ntcv5une/eEb7rsXBTjBZ2Co d0j8s28Hew6EpxYG5It0K93MtfPIRPAyYwMD80KjcNZ0wr5wtWFeArEOMPz2S3BzhMb9C+6R2S8 osRMTULR1nw== X-Google-Smtp-Source: AGHT+IHtFZ48zbqnStwMter9nR/gui+D0e/YIdH9vXlc1sswh3DJ/fx4gr5TrWgH+4pagfpfcsKp5FEX7tRr X-Received: from dlyy12.prod.google.com ([2002:a05:7022:68c:b0:119:78ff:fe1d]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:69a8:b0:11b:65e:f40 with SMTP id a92af1059eb24-11c9d709f69mr2441455c88.5.1763799585482; Sat, 22 Nov 2025 00:19:45 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:17 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-6-irogers@google.com> Subject: [PATCH v1 05/17] perf probe-event: Ensure probe event nsinfo is always cleared From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move nsinfo__zput from cleanup_perf_probe_events to clear_perf_probe_event so it is always executed. Clean up clear_perf_probe_event to not call nsinfo__zput and use the pev variable to avoid repeated array accesses. Signed-off-by: Ian Rogers --- tools/perf/util/probe-event.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 6ab2eb551b6c..710e4620923e 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -2419,6 +2419,7 @@ void clear_perf_probe_event(struct perf_probe_event *= pev) } pev->nargs =3D 0; zfree(&pev->args); + nsinfo__zput(pev->nsi); } =20 #define strdup_or_goto(str, label) \ @@ -3767,12 +3768,11 @@ void cleanup_perf_probe_events(struct perf_probe_ev= ent *pevs, int npevs) /* Loop 3: cleanup and free trace events */ for (i =3D 0; i < npevs; i++) { pev =3D &pevs[i]; - for (j =3D 0; j < pevs[i].ntevs; j++) - clear_probe_trace_event(&pevs[i].tevs[j]); - zfree(&pevs[i].tevs); - pevs[i].ntevs =3D 0; - nsinfo__zput(pev->nsi); - clear_perf_probe_event(&pevs[i]); + for (j =3D 0; j < pev->ntevs; j++) + clear_probe_trace_event(&pev->tevs[j]); + zfree(&pev->tevs); + pev->ntevs =3D 0; + clear_perf_probe_event(pev); } } =20 --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 47B222F3617 for ; Sat, 22 Nov 2025 08:19:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799589; cv=none; b=E8/3ajnbEZOBN3STn+hbtxzAAVlXmqzEk3RejkVsIk/Dy2eA9ewq/RqFwBArhO2FWe0FnpjS6lUc/T/+p9seSRd+T7Ghf6PbLiKr8VN51bOoDB+z99qROfaHn6FoVdfKgVuWqDkzzRg3oMRiNjtbCCJjNwlHOT6qZdijvbfFj2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799589; c=relaxed/simple; bh=sHKG3KyTM2rdRuv8FSfOH5UBdv+1780KO0TZqhE2tcg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=YHTvwQSTPuifgFH3yccPCRK5KJ8N4i0zAHYnZuZ1mt46TUo2voeQ/2nsk/zCp1bnc+uuyNLTlCwh3vt2FLL5YPK3PKK0FYLcrVgCz+pzkXM7HXcXog1loYzZe/SWmPYoPUR+hoPFyfFGdQphHyh7GJIB2HAlT958e/DOEmcZ7GM= 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=xG022jIr; arc=none smtp.client-ip=209.85.216.74 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="xG022jIr" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-34378c914b4so9225765a91.1 for ; Sat, 22 Nov 2025 00:19:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799588; x=1764404388; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=pU7jorvKH/B/DumRMaJiv0i3+cPKkaeMOA/l8hLedSQ=; b=xG022jIrhO/cbKl70aZ3klihLQJB68CKu+WDSXrBLOlrwAOa5gPlRcLh7xRd9/s9nm +XCI7/47T1keznYUJ5p+dN42/cj7vjunOTksoepIjwZ857oTJQps4ABxG4TZ+01QB5PJ cZ6aVu1CmrJ3N9XKcibOuld8IQ0aneYThJTDdduBYmH7RYLBuB/2E567d9tJlcGN304T eQ9i5pS5z6L10VKT72jzJmR9tij+4EDINU0DwybCCZeqI2ElDs76zlXG0TRcXc5aCnC2 rZzwLLZTEvpiDcmeSKKa+iFFDJ59jwg1ABTxJHCK7t3x8oc630LwVSO3wUzonEExNY/o lYrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799588; x=1764404388; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pU7jorvKH/B/DumRMaJiv0i3+cPKkaeMOA/l8hLedSQ=; b=AYqft6PpFbi1d8Agvb5n7WOk4Kc30AMXMu7mAciEP5gmFqquMJmenAq2cB997AvaMQ M7VPusFVhpHwdL8j+1IT3kl/GVpPGBvtfvWvxRxqbOy3kz7G8EvHUPnAhWcd0OC4XRta JJsGeFZpKjZBeMNvIs47/o+BREm7fZVOUyK1PhDa08KlM9ZNLNAauR2+cvLSDmjW2f1l +jvyhWTS+DAliInMrEkQIX2+eIP4GIOe1rM8zKBV6Zcin9Mf0qwiG2Hpav2NwdHRkWpL +Dg6WLwiKYD4ceW2AgEfDMZz3XjdF+/euqMKVHv37uwW4Zg/GDxUPKOtl7xX1N1lVWN8 SRDA== X-Forwarded-Encrypted: i=1; AJvYcCXzXmJBRXhx2M2A7wfyWXLCO3UUi7xEarWk5dBui2LfSX0ATTWvBjZczeuwE3+8ESjQ2JNucrH6FCEmQnM=@vger.kernel.org X-Gm-Message-State: AOJu0YwCBTKMfBJpZX0tNd29a/BKAdldnjo2F1ixdF791ySH9VJifr5W q0kuQa2En0DuzOcifljZYXee7eL6CxVsHfa5IF7aXOxkyZgdyix7EcI/B90TlLoIEMgPF3EGR2r Zy2VPTyiFLQ== X-Google-Smtp-Source: AGHT+IFjO96/R4U6ugHv+3ezv1kQspZfyJ5b/DhvvEcqfJL+zGtCjF4A9hxjRkofq7lWxpbDhpWovcfXgkbP X-Received: from dlbqy6.prod.google.com ([2002:a05:7022:ef06:b0:11b:65e:f6a]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:2393:b0:119:e569:f279 with SMTP id a92af1059eb24-11c9d865659mr2657208c88.34.1763799587506; Sat, 22 Nov 2025 00:19:47 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:18 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-7-irogers@google.com> Subject: [PATCH v1 06/17] perf hist: In init, ensure mem_info is put on error paths From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than exit the internal map_symbols directly, put the mem-info that does this and also lowers the reference count on the mem-info itself otherwise the mem-info is being leaked. Signed-off-by: Ian Rogers Reviewed-by: Arnaldo Carvalho de Melo --- tools/perf/util/hist.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index 64ff427040c3..ef4b569f7df4 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -608,10 +608,8 @@ static int hist_entry__init(struct hist_entry *he, map_symbol__exit(&he->branch_info->to.ms); zfree(&he->branch_info); } - if (he->mem_info) { - map_symbol__exit(&mem_info__iaddr(he->mem_info)->ms); - map_symbol__exit(&mem_info__daddr(he->mem_info)->ms); - } + if (he->mem_info) + mem_info__zput(he->mem_info); err: map_symbol__exit(&he->ms); zfree(&he->stat_acc); --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 308BA2F5A19 for ; Sat, 22 Nov 2025 08:19:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799591; cv=none; b=Qb9NLcd7PJRHkKLGwmQRd4yKYccPzpelslhZSt1SjwhilHiwy4Rr34nGdQGdFv4r/DZxHRrOUhme/YukXn3fms8B/w1ttTYSnW1vSH0h1JnYbYAYR+QKMJjeU5Vu7Cua5LIjNu80n4qqU+qGB4W5C/QPGRj/dm58UELGiuE+xWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799591; c=relaxed/simple; bh=hLrbAHW/IK6axQB9NY9RWrNAve1SBIexdAJ/QY9OtJE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=vEG8pALkVtYYPPPkkY35/4exqBpGBYBWCqrg14GiV//4DI5BEP45IWlsuLG4A/hJEI4ljnP9GX7XP3ITGpq1JHv59Oci8y10jU9CVR2+40jrbJl0OSiv+7pL9lGPQ23zu0AsKK9pl5QJydVH+iVzkECcswb26tEW1FQbKn/TGZI= 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=sL9YLiW3; arc=none smtp.client-ip=209.85.215.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="sL9YLiW3" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b62da7602a0so2651073a12.2 for ; Sat, 22 Nov 2025 00:19:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799589; x=1764404389; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=s4FKXjQbv8ClBiFRqeWBB89RpgtzwCj69Ux7R6g8Glw=; b=sL9YLiW3IgJE71wEXWnWWKmq2yq5mpHofvwjgvmQR/uobHFVs95bYGzgtMURHWPNhA F80VbQx7z7PJYbUDQlCk/JUmVwYhKwFUeRgGjbag0jx6OFGaVMQRsbIQZzKJxEBbdhOV 0GQokbZ/Q5VOZppLSFkAVaQHnO9U1qwiOrW7r5b9kqTpANK6qPR2Olj7SUV6l+WJAwA7 YH9r3qSZlkLYWfzrswHH0zMDNse4sPOFIPLT/y3XWCs3vl7GxeV864iOcTWuEZH/rwx5 v1GtZW+GwQY0161hyrqNfKvuL3QE9u5RPYEoh/7Uyo30xfdMvyya0DgAxaNPT1NTmIT9 pDAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799589; x=1764404389; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=s4FKXjQbv8ClBiFRqeWBB89RpgtzwCj69Ux7R6g8Glw=; b=wCG8oY0ghdjaocIBzX1rGqFUkdJMTw8QjwB9iliT4p6bVrOfAY0Ik2f2h5G9g2pFao CU7cC3NR9x0l8/nIIy54CBHX11YffGCMiiaFqDgCL8Iqvjz+201pbmis13JLzeWAlQfT HUIZfCWcTx7B9+ZJaQR/nls55DMMemqAJztA0IKeglrqs49akpqA82m9JNk9Nocwio1c nTaanjwhnx5Md268ED1t58lcqA5Q3J/8jy8H2uxRH3SGp4W0QOLWD9fSavJRn1bZsXGt nabOHgvGNyai6JFuTBJLgfL9+Q5sW3SjT8fHLnvVGjWG1BPPx9j5CzDAZHSYMkrNqkJ4 5kIQ== X-Forwarded-Encrypted: i=1; AJvYcCVNzlhiXNJvbMPu2B8Es97bCcVmUoJQhHebEcAqnLjC+4XiylYf6gofMibmo97Bm0haVLE+mKAOWqbLwRI=@vger.kernel.org X-Gm-Message-State: AOJu0YwQeTLmCmu/k7xhdGX+jx8Hn/1SXhC6qTkN86K7nQ/9U5YAtX89 i3tOK6QHmXkAX5+CNWJtUnurrkOAj9lFuhFSG+pLT1+HoLbPaOa65xcwYZ7FClNAgaYqcpXM0ia Yl5RuX+q/OQ== X-Google-Smtp-Source: AGHT+IGtWQaAkXGZEUVwfz7nHRHgGzDNhILsM3LsP4ku4cyiAVZ7R9MPKydE9QotJ2rlK4rsdSHhTPzqr2ry X-Received: from dyb14.prod.google.com ([2002:a05:693c:630e:b0:2a2:367e:4efc]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:7009:b0:2a4:6a87:7285 with SMTP id 5a478bee46e88-2a71a132a83mr1852426eec.39.1763799589451; Sat, 22 Nov 2025 00:19:49 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:19 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-8-irogers@google.com> Subject: [PATCH v1 07/17] perf mem-events: Don't leak online CPU map From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reference count checking found the online CPU map was being gotten but not put. Add in the missing put. Signed-off-by: Ian Rogers Reviewed-by: Arnaldo Carvalho de Melo --- tools/perf/util/mem-events.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c index 80b3069427bc..0b49fce251fc 100644 --- a/tools/perf/util/mem-events.c +++ b/tools/perf/util/mem-events.c @@ -303,12 +303,15 @@ int perf_mem_events__record_args(const char **rec_arg= v, int *argv_nr, char **eve } =20 if (cpu_map) { - if (!perf_cpu_map__equal(cpu_map, cpu_map__online())) { + struct perf_cpu_map *online =3D cpu_map__online(); + + if (!perf_cpu_map__equal(cpu_map, online)) { char buf[200]; =20 cpu_map__snprint(cpu_map, buf, sizeof(buf)); pr_warning("Memory events are enabled on a subset of CPUs: %s\n", buf); } + perf_cpu_map__put(online); perf_cpu_map__put(cpu_map); } =20 --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-dy1-f201.google.com (mail-dy1-f201.google.com [74.125.82.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 182992F5A2B for ; Sat, 22 Nov 2025 08:19:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799593; cv=none; b=lVh6B8b4qn8p2jUob+2OhtmGcqv/3YV/RoW2hIYqH4GPJldKCHS87grC8oeqUzPKwVKLW5dM0d51ldlmwAv2Y69S7oF42iTQBttT58W4xhqyls23TGJMF5TaOt7sCVTQfVfGjs21HJj/ohb1ZGRAd5mQUreP2cIZwFcv1EF0Qb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799593; c=relaxed/simple; bh=mA2MV5rABJcjF/Lb3elai2grZOHKvTen6356CVQDrh0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=j8ulNxz9qFubNbn/g6sxvu96+wiKLEzaiyRMMOuwSUfGhjBGoCVRQtL3Ct2lSN8UsXj0PHW542O17cOMsgAwpUJeAzFJ91VodSmD0IiOzVSD3muZ1oS2LpWqxyvQd7y6Ukz/kzFA1tu/pcxqHDHeQML3MQXCynz7R9Zq0vFlkYU= 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=BlKDkXsL; arc=none smtp.client-ip=74.125.82.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="BlKDkXsL" Received: by mail-dy1-f201.google.com with SMTP id 5a478bee46e88-2a45fea6efbso2536115eec.0 for ; Sat, 22 Nov 2025 00:19:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799591; x=1764404391; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=GsSDzsXsk7nkJCCyX2QLE9nfb83/Aje7A45oAxCcY8g=; b=BlKDkXsL8NajDh8vzCQlsZICTM6YBc+uwOhq5S8J1pTJ09pF7Fzt6mcbnxPDOsQub5 wcXCZ7zM/CmC5a7miuPoXnNMUzdeC/8qKi14GJYrFAPxpGkkn3OilOSrdikN+W1pfEz7 4983iBtp9qknTxc/YxKWBGSgQfIXCYMGFNuiWnOHkk5OHJCgb+TZ9gAE5qEx9+cexDWa 0XPVSJR5SmLiwbB4tfYvjX9nG9Pqipk3v0PHX812nF1PJZJ+cfyKX4L2G6vRP+WN+XTw OkwjUEj70MGgTEIZPsN0BVC4++4QwQuxrhQmottPi/pU5TPR6NLjFdEcwLGtaEo4MbaH oKaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799591; x=1764404391; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GsSDzsXsk7nkJCCyX2QLE9nfb83/Aje7A45oAxCcY8g=; b=MRNmPliJxAgwzxyCF6hxsBNqrJvvrPRK6qJzpvvE2TygijYtbhyL5h9zqA2u26DJ1A pY/JX82TQqqFT5kuewUG0aM1+pPf3/ir+iBk2f1cV7Gkr05erUrBzpZnJvMcIHHt3ONO vz6Ah18TYLVTnOWCJ7YBrpBXly+KGcPHoSswx7XH+lANnWQZhF7eFVPtGwFAC0u9YjVx q+4fDzg48/Kwg/y2+0bCm36XkaDtrS9jt4j26qWYEr//MbbXy8FIsVsrjqbW04P1u28c hzJdnKNbiXvF+hinDbt5jr0DBkKiX8SSyUuSGe+LCwJErmQHUfi4fkJDX7ZNtp7UoDlz /Mfg== X-Forwarded-Encrypted: i=1; AJvYcCXH6zbLGZ0SEPCpqtrCtPoet1nkSI9nUEfNhhtve37CY4RfovfvzsO9G1YXFeXjtk9X9SUdnWytRaHj3lU=@vger.kernel.org X-Gm-Message-State: AOJu0YxPmaA3nvEqU00pWH3yCwOSF3w7lZGuvUmdFzcNwD5rnd/6VytZ MfGh5ArSsC5oHv8P8I6QzXpOizNxufcheAhT7rZie6/Q1d/s/OxduVwrq1ZeJp3Em9WRCF8cTZa rmvUGo+x2TQ== X-Google-Smtp-Source: AGHT+IGvRNnYPnvu9nAfMweclq/awekQFDS+3hr5JAVyvkLJ4/DHctkejCiJNKtlY1+ut608pSd8vDTDbLdI X-Received: from dlbdx35.prod.google.com ([2002:a05:7022:e23:b0:11b:d561:bbfa]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:fc83:b0:2a7:721:f615 with SMTP id 5a478bee46e88-2a707220f28mr2252054eec.12.1763799591182; Sat, 22 Nov 2025 00:19:51 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:20 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-9-irogers@google.com> Subject: [PATCH v1 08/17] perf jitdump: Fix missed dso__put From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reference count checking caught a missing dso__put following a machine__findnew_dso_id. Signed-off-by: Ian Rogers Reviewed-by: Arnaldo Carvalho de Melo --- tools/perf/util/jitdump.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c index b062b1f234b6..27a2ea1b000b 100644 --- a/tools/perf/util/jitdump.c +++ b/tools/perf/util/jitdump.c @@ -546,6 +546,8 @@ static int jit_repipe_code_load(struct jit_buf_desc *jd= , union jr_entry *jr) =20 if (dso) dso__set_hit(dso); + + dso__put(dso); } out: perf_sample__exit(&sample); --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.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 0B5F12F6919 for ; Sat, 22 Nov 2025 08:19:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799595; cv=none; b=H53H94lMlK5RLgXxW+7F93wzXnM5MGl9JWpZ4nOj2Zpx994dg6qQ1O0rFqSwvuOvmL8rfXzXk5kjr/p4q/xJqW2vn+jJ4/ed/GzjkAiLBk5A10QhMHfRR8x+h97UBPgxvkprUCGfj5uKIj6yhpwpx/b7yCkn/j0KvyYohI/CSew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799595; c=relaxed/simple; bh=hokyhNCY+MHNMohzynNm3sybgVsho518d99UEKSGFb8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=k5BbGudZA4MaZI1dChla1bk1vIwm1Zkgd7n1vGqRafWff2K1QEI2xhRSjQjmY9E0/foESK+TUJIN/U8OdokW+bbf107qnqIG0I8NQyj+zK724eWIoBQ6V5iZOR9oD83qoBc2mqz1V0vfmbo8jvVGtCm1K96Tnjdrzi+NpH9GIcc= 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=4bzLQWK9; arc=none smtp.client-ip=209.85.210.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="4bzLQWK9" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-7b80de683efso5255086b3a.3 for ; Sat, 22 Nov 2025 00:19:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799593; x=1764404393; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=26FhnXWE4Dsn0zAV9ZwtQIoSpCE1XR4rqqIzFCKLx+o=; b=4bzLQWK9V1y3LL6p/vsbw1TuSha2y/QHPJr1spge2EKXv5wxXQnZ4LHd9tMuDb862v gId/QVHOawkCNE81WZ0zWUBokBNsN6LWT9+zKfwk1hC12Nm8lm8fB5dQ5vUbuLX1m+fL pbAN31xm8kW4CshkNPRIZQ8+b83IQ4Vlw+OAFh7RK1efCzQkdarAikGtizv+vsGmSOc8 3c+BoxIltvlK4dYtxz9+LjR0jxBgAt5iRyndRjhajYUbkPCJZzSCwOFBWySiiw+V8/dW rOTxTu1hWA9JzuVt80J2AkRatAvOsyNtuSxLww2cTBpR9LMwEL5fqKJ6VvsZBm0HbDxI 0QUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799593; x=1764404393; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=26FhnXWE4Dsn0zAV9ZwtQIoSpCE1XR4rqqIzFCKLx+o=; b=C/6/k6UySS8Txu6j265f1HuG8NrIClQkkZyG2KxyaRLi/xV6UOdljNUGvHn9hDEAMB NLTvxzHRGgaxTqUm/UELxL5iPJt4n4uy16ffrOUG4qfplLwim1gEyHPZRa0aRVAc1xbX 1Y6sEHhICbr1LKxoFEtye2gyurfU1qqe362PoRoVwydNttZnbwwzCZCwFQCaS3Mgt/1R +pLXNTz3gswKikBDUQz4vYvJIzKNIYLba4B/8ppDLvol71eAH2fDaumauTV2bfM+P5/Z nbVSlEvUBmeQf1bnmN3UWQPVqddlxHN/JTHnaOKGJRxEtaORLoGFUDa0+Jb1w5iqGDAB CH8Q== X-Forwarded-Encrypted: i=1; AJvYcCWjSoLVdIoQKQPOQ5eSdQKJu3ogE8P+V7XTXAFr4yifNKyo0S0WIf1rQZ6TUtDPbF8U4MZvQVsQwBFn/DI=@vger.kernel.org X-Gm-Message-State: AOJu0YwBLed3OT/TfYaluux9wiY/kDTiJkQaEOmSINpAU5k3XNkuiInQ Zy9gVd9N4RXK/6DmiNaEn9jKz674Vlr7tvsCrTcaVaPim/Zbs7rDIwDNMoLnaZJhmuu8yklzxHq WbkPQL1kbwQ== X-Google-Smtp-Source: AGHT+IF30nRtHoEub+YkqFq2fygrJaHFjXNsptZmI4tghtBxkzV5nNyD0cEO4D+YMpyWWt86zI9LwysnHYJE X-Received: from dlbvt2.prod.google.com ([2002:a05:7022:3f82:b0:119:49ca:6b8c]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:b903:b0:11b:d990:1de1 with SMTP id a92af1059eb24-11c9d865e98mr2048215c88.39.1763799593123; Sat, 22 Nov 2025 00:19:53 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:21 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-10-irogers@google.com> Subject: [PATCH v1 09/17] perf c2c: Clean up some defensive gets and make asan clean From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To deal with histogram code that had missing gets the c2c code had some defensive gets. Those other issues were cleaned up by the reference count checker, clean them up for the c2c command here. Signed-off-by: Ian Rogers Reviewed-by: Arnaldo Carvalho de Melo --- tools/perf/builtin-c2c.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index 14c3823f8fed..d390ae4e3ec8 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -322,7 +322,7 @@ static int process_sample_event(const struct perf_tool = *tool __maybe_unused, struct c2c_stats stats =3D { .nr_entries =3D 0, }; struct hist_entry *he; struct addr_location al; - struct mem_info *mi, *mi_dup; + struct mem_info *mi =3D NULL; struct callchain_cursor *cursor; int ret; =20 @@ -349,20 +349,15 @@ static int process_sample_event(const struct perf_too= l *tool __maybe_unused, goto out; } =20 - /* - * The mi object is released in hists__add_entry_ops, - * if it gets sorted out into existing data, so we need - * to take the copy now. - */ - mi_dup =3D mem_info__get(mi); - c2c_decode_stats(&stats, mi); =20 he =3D hists__add_entry_ops(&c2c_hists->hists, &c2c_entry_ops, &al, NULL, NULL, mi, NULL, sample, true); - if (he =3D=3D NULL) - goto free_mi; + if (he =3D=3D NULL) { + ret =3D -ENOMEM; + goto out; + } =20 c2c_he =3D container_of(he, struct c2c_hist_entry, he); c2c_add_stats(&c2c_he->stats, &stats); @@ -393,17 +388,19 @@ static int process_sample_event(const struct perf_too= l *tool __maybe_unused, int cpu =3D sample->cpu =3D=3D (unsigned int) -1 ? 0 : sample->cpu; int node =3D c2c.cpu2node[cpu]; =20 - mi =3D mi_dup; - c2c_hists =3D he__get_c2c_hists(he, c2c.cl_sort, 2, machine->env); - if (!c2c_hists) - goto free_mi; + if (!c2c_hists) { + ret =3D -ENOMEM; + goto out; + } =20 he =3D hists__add_entry_ops(&c2c_hists->hists, &c2c_entry_ops, &al, NULL, NULL, mi, NULL, sample, true); - if (he =3D=3D NULL) - goto free_mi; + if (he =3D=3D NULL) { + ret =3D -ENOMEM; + goto out; + } =20 c2c_he =3D container_of(he, struct c2c_hist_entry, he); c2c_add_stats(&c2c_he->stats, &stats); @@ -421,14 +418,9 @@ static int process_sample_event(const struct perf_tool= *tool __maybe_unused, } =20 out: + mem_info__put(mi); addr_location__exit(&al); return ret; - -free_mi: - mem_info__put(mi_dup); - mem_info__put(mi); - ret =3D -ENOMEM; - goto out; } =20 static const char * const c2c_usage[] =3D { --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.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 A29042F83B0 for ; Sat, 22 Nov 2025 08:19:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799597; cv=none; b=RXau7nDa75/b0r+6Mkm1WiCQMRHA/ZAi2Tgbxm6kTCyUxmGHjRL/JaaIlxLYPTgVVyXqGHtSXHDKvsNMsiLWm+tq6b4R0EAe78Fay/6AJ/kY6kc4G+oh81me6PfRr0k9nsINaezNUcFzzyhcdlpWc2/xdrL6GoWb/vFxfYb4Wgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799597; c=relaxed/simple; bh=NXklLjTXEI509or4UVobymvmC5qBq3+kL+fp7XxCaPE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=R8ifCNDl3NbZxsESviSlMLHPHKXh9Hm+I7MqzAdGHujZYyZFb/G3Yszx/infHPz22zDN4IBVm9g3/XF8icK8eEgLap4jX7VH7jifi1ngI8rlLreGhK4nIuyQ3xz41NVHQS83bgZe7uufu0l6T41ycG4eGWle0WkmRHWBxRgSHBM= 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=rHyEshvt; arc=none smtp.client-ip=209.85.214.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="rHyEshvt" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-29806c42760so111956875ad.2 for ; Sat, 22 Nov 2025 00:19:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799595; x=1764404395; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=bEy0JIyorfG9miNyUuHx8ttwB5wA6SqJTKfXTXr6auo=; b=rHyEshvtvo1IRRcm1pdHYa+ox1oHfJYaZgjgnpQHAXnI8du1xUnMzlzxOyMJlQBRYQ d0OEbek9KZ7LjO0h55KNxG23shbyCuaAt1yqLVGxp0RlldFLtyBYGwhfrjSz6VDuReFa /dn2G0/FZc6QRW5i1OjPBPXimWZbEQ+WcdzZ4SDC2ExBQMVlOQlOXCL30AgB/zQ1W0oZ PLIVNxSqxim6iKjbv3uK1bGNdu6Q0BX0DWhWjsIw5MNlzDgbZxXSaw84in2j5Xn8q32r jW3BRxvtVk3dshPv65HoEzlDd1Y7jvObHPBtg5W2CQ3XQhniqyVgi8aaTVx6hxl1voDn 189g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799595; x=1764404395; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bEy0JIyorfG9miNyUuHx8ttwB5wA6SqJTKfXTXr6auo=; b=M2+2AbsWDelkbLltUI3tyYcw0XFa0RbpZOuexk2BfRrTu47hKKbgN7cXfTETXzk4H4 v0hE23JlEjz+uHh5F9mIbaYjoeHxSQiamHmaHYFoBEBLaY/oCXeWpmsIiJuYmioxSStD C7ARzDHSF3WfZ9MKPxRva6DiTRw1fRo6xwEWDEbAObPmTV7PGCSijqBbrY1VjcPILpIX fu9++MRJjc6qju3BGRQkUiGvDC89hKkOQck4RbrCUhu7zUfriffuZeRdUhaMq6EfvPK/ IKp4uQx4K6ODf3ZjZ067IExexCNQFsfegR1h3wiv2OwGVOv0wB0XJE/7hHOxWBLZxJ7y tdJw== X-Forwarded-Encrypted: i=1; AJvYcCXlEk8eeX689FE+U80/yp63Ic2HeQ3ThSW0r4+Fqhz1lHmm4nWrzbbThdtSDnksA9p2/CfXWQfNDmve4oU=@vger.kernel.org X-Gm-Message-State: AOJu0YyzCPj8X+b/d1I/JniqyjD1Q+OPx+q7QPBboJOTMCLFiPLBnn8Y OsVJkq+Zffy/zoln5zryleeJXX0u7WPIVIoU/ZVJup5WLRbWHZ39OEb3XDfJqZBj2m9eUEt+TUu BrEq9TXkb4g== X-Google-Smtp-Source: AGHT+IG/iVOBwJcUhYY5gewvM0FkraVbyCe1YZERZFS8zE13uEGJCuQzjdeULg/ddoRJfS5HER8y8zI4+hgf X-Received: from dlbcq24.prod.google.com ([2002:a05:7022:2498:b0:119:49ca:6ba6]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:2214:b0:119:e56b:c751 with SMTP id a92af1059eb24-11c9d84e082mr2733031c88.22.1763799594840; Sat, 22 Nov 2025 00:19:54 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:22 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-11-irogers@google.com> Subject: [PATCH v1 10/17] perf tests c2c: Add a basic c2c From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add basic c2c record and report testing to gain some coverage. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/c2c.sh | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 tools/perf/tests/shell/c2c.sh diff --git a/tools/perf/tests/shell/c2c.sh b/tools/perf/tests/shell/c2c.sh new file mode 100755 index 000000000000..2471d44595c3 --- /dev/null +++ b/tools/perf/tests/shell/c2c.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# perf c2c tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=3D0 +perfdata=3D$(mktemp /tmp/__perf_c2c_test.perf.data.XXXXX) + +cleanup() { + rm -f "${perfdata}" + rm -f "${perfdata}".old + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +check_c2c_support() { + # Check if perf c2c record works. + if ! perf c2c record -o "${perfdata}" -- true > /dev/null 2>&1 ; then + return 1 + fi + return 0 +} + +test_c2c_record_report() { + echo "c2c record and report test" + if ! check_c2c_support ; then + echo "c2c record and report test [Skipped: perf c2c record failed (possi= bly missing hardware support)]" + err=3D2 + return + fi + + # Run a workload that does some memory operations. + if ! perf c2c record -o "${perfdata}" -- perf test -w datasym 1 > /dev/nu= ll 2>&1 ; then + echo "c2c record and report test [Skipped: perf c2c record failed during= workload]" + return + fi + + if ! perf c2c report -i "${perfdata}" --stdio > /dev/null 2>&1 ; then + echo "c2c record and report test [Failed: report failed]" + err=3D1 + return + fi + + if ! perf c2c report -i "${perfdata}" -N > /dev/null 2>&1 ; then + echo "c2c record and report test [Failed: report -N failed]" + err=3D1 + return + fi + + echo "c2c record and report test [Success]" +} + +test_c2c_record_report +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 979302F99A3 for ; Sat, 22 Nov 2025 08:19:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799599; cv=none; b=bIs4OsuDOIVncQghs/KdaMv9KHCALw0DTXkXt6zampFjj1Pr/1oNhLeKSpjL6tdYFpetK26Xjr1JY3HATQFTEwPvKBrrkwhnTEM/MsPLPMlfe82W0ufIsj02sllwl/z/mvF57HFWtl5vNwJGv92IMU67CqBkW7DxTRnLmYuB3XE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799599; c=relaxed/simple; bh=3qBlJKk1kVkHDxdezjAgYYdWUiOjKjzmMQFfmn1yqOY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=gfq7oAsqoUhwb62hHmg0wPeIYY9cG/G6+WJVeHWW19gJC5EZ3OrpfDQcb/gI+R3+sQCHU3s/vNKFAWnlo6mNqVgwzvIoyZG6jlY58AogwAxChDiL7A3SzW5IoT9VfBDXe3Hj7x44Ra2oQ5hzrQccU0HVBjmQwrEl0OgvhcMvfcc= 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=OBhg+LWH; arc=none smtp.client-ip=209.85.215.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="OBhg+LWH" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b5edecdf94eso5240171a12.2 for ; Sat, 22 Nov 2025 00:19:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799597; x=1764404397; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=kTgSld+zWldBlIj9iQhUFIRYK7znK8Muttybqj8QK0I=; b=OBhg+LWHMe5qgXbtiPl84PR5Qm9nLEkw/mEW5zbaJh0cxNDKuZ2D1bIflQmoqweMm+ 5mRD4NiFE9gZgmuljfwGd6dODioAtS+POKWZV1f320dNnfFhAo913IjIfl41ZjjRJXvw s+aramDbabMdXw3HPiV8TNv1RifKdazaI+KozrRNv8To07AjS3Mf/hqn1c8zenpIF3x9 uWq7Nh3YHmcqyfLN5SJrTKBf7GxmshOiQdXArDRBNb3mdGgx7hC67KaIgWb7MoFYNLsj 1XTMHDLPwL4Igm51t5OCuqy5GAKvTg9+3ClTFA7uzR3YxjDPzPgM4/ObxMR/bTOASTQe vYzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799597; x=1764404397; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kTgSld+zWldBlIj9iQhUFIRYK7znK8Muttybqj8QK0I=; b=U9i3kjQoPxNP8rjqefSk0oFk3kUYPpZDMB7duo1j0aV+A9YuWkKhjdbs8HMiAVTFWS 23dtV9mywBxopKVHUH3wHNPgXYtvPbggWx4DK9pb82PevHM3Yw1Qh04wWCaaKP6zJzrq 43gdVlQSZ2XqkAq4eqycxTM3NKsYQF3AD7h9MrLEvDyPdlBq2cxy60IqOxlXeyJdPuiA KsjDuLaGtvYE7T7ACOOZ3MkLDkx5mdabSx+RVHiRNzi5kUM8Jxi+Uz2D1vOZfIOOj/20 PdSboPtBpjvC9QTCGXp999USwtdGA9dkhbAfs4lBg9m4cxvmSvn85UhXeB1x3qbfFzLu 29Fw== X-Forwarded-Encrypted: i=1; AJvYcCX2E3sGEyz9fnA062bc66vDtFWDPRjBhYnfmUp7lJZrt5lmYqEA3qDKLXzev4q7E8V7W68B7BtCF1jKoOI=@vger.kernel.org X-Gm-Message-State: AOJu0YwPkB3wkshUV+yYpLVzQ2N0A8NUrrpPE8AjhA3hn406NQRy7Gug Yj6k+97VKkG9jiV0gBIz6LHisxzmdh7uBeKdsdDmLZHBmLU6tA3PVPefHa/o/0/8+4y1FYeR5vf no8faLyfJaw== X-Google-Smtp-Source: AGHT+IEGZTx82yh6ivSmLyr5eVGFroWnq6Ir7ehD9mrmhm4DljU3Ki7EE9oibo+Jz1VZpx2AIRZHFRGUQN6s X-Received: from dyaa12.prod.google.com ([2002:a05:693c:40cc:b0:2a2:4eb1:3771]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:5502:b0:2a4:7f22:cc0d with SMTP id 5a478bee46e88-2a7192ce4b1mr2237806eec.32.1763799596840; Sat, 22 Nov 2025 00:19:56 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:23 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-12-irogers@google.com> Subject: [PATCH v1 11/17] perf tests buildid: Add purge and remove testing From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add testing for the purge and remove commands. Use the noploop workload rather than just a return to avoid missing samples in the workload in perf record. Tidy up the cleanup code to cleanup when signals happen. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/buildid.sh | 203 ++++++++++++++++++++++++++---- 1 file changed, 177 insertions(+), 26 deletions(-) diff --git a/tools/perf/tests/shell/buildid.sh b/tools/perf/tests/shell/bui= ldid.sh index d2eb213da01d..102808cca9db 100755 --- a/tools/perf/tests/shell/buildid.sh +++ b/tools/perf/tests/shell/buildid.sh @@ -36,16 +36,69 @@ if [ ${run_pe} -eq 1 ]; then unset WAYLAND_DISPLAY fi =20 -ex_md5=3D$(mktemp /tmp/perf.ex.MD5.XXX) -ex_sha1=3D$(mktemp /tmp/perf.ex.SHA1.XXX) +build_id_dir=3D +ex_source=3D$(mktemp /tmp/perf_buildid_test.ex.XXX.c) +ex_md5=3D$(mktemp /tmp/perf_buildid_test.ex.MD5.XXX) +ex_sha1=3D$(mktemp /tmp/perf_buildid_test.ex.SHA1.XXX) ex_pe=3D$(dirname $0)/../pe-file.exe +data=3D$(mktemp /tmp/perf_buildid_test.data.XXX) +log_out=3D$(mktemp /tmp/perf_buildid_test.log.out.XXX) +log_err=3D$(mktemp /tmp/perf_buildid_test.log.err.XXX) =20 -echo 'int main(void) { return 0; }' | cc -Wl,--build-id=3Dsha1 -o ${ex_sha= 1} -x c - -echo 'int main(void) { return 0; }' | cc -Wl,--build-id=3Dmd5 -o ${ex_md5}= -x c - +cleanup() { + rm -f ${ex_source} ${ex_md5} ${ex_sha1} ${data} ${log_out} ${log_err} + if [ ${run_pe} -eq 1 ]; then + rm -r ${wineprefix} + fi + if [ -d ${build_id_dir} ]; then + rm -rf ${build_id_dir} + fi + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +# Test program based on the noploop workload. +cat < ${ex_source} +#include +#include +#include =20 +static volatile sig_atomic_t done; + +static void sighandler(int sig) +{ + (void)sig; + done =3D 1; +} + +int main(int argc, const char **argv) +{ + int sec =3D 1; + + if (argc > 1) + sec =3D atoi(argv[1]); + + signal(SIGINT, sighandler); + signal(SIGALRM, sighandler); + alarm(sec); + + while (!done) + continue; + + return 0; +} +EOF +cc -Wl,--build-id=3Dsha1 ${ex_source} -o ${ex_sha1} -x c - +cc -Wl,--build-id=3Dmd5 ${ex_source} -o ${ex_md5} -x c - echo "test binaries: ${ex_sha1} ${ex_md5} ${ex_pe}" =20 -check() +get_build_id() { case $1 in *.exe) @@ -64,6 +117,15 @@ check() id=3D`readelf -n ${1} 2>/dev/null | grep 'Build ID' | awk '{print $3}'` ;; esac + echo ${id} +} + +check() +{ + file=3D$1 + perf_data=3D$2 + + id=3D$(get_build_id $file) echo "build id: ${id}" =20 id_file=3D${id#??} @@ -76,45 +138,53 @@ check() exit 1 fi =20 - file=3D${build_id_dir}/.build-id/$id_dir/`readlink ${link}`/elf - echo "file: ${file}" + cached_file=3D${build_id_dir}/.build-id/$id_dir/`readlink ${link}`/elf + echo "file: ${cached_file}" =20 # Check for file permission of original file # in case of pe-file.exe file echo $1 | grep ".exe" if [ $? -eq 0 ]; then - if [ -x $1 ] && [ ! -x $file ]; then - echo "failed: file ${file} executable does not exist" + if [ -x $1 ] && [ ! -x $cached_file ]; then + echo "failed: file ${cached_file} executable does not exist" exit 1 fi =20 - if [ ! -x $file ] && [ ! -e $file ]; then - echo "failed: file ${file} does not exist" + if [ ! -x $cached_file ] && [ ! -e $cached_file ]; then + echo "failed: file ${cached_file} does not exist" exit 1 fi - elif [ ! -x $file ]; then - echo "failed: file ${file} does not exist" + elif [ ! -x $cached_file ]; then + echo "failed: file ${cached_file} does not exist" exit 1 fi =20 - diff ${file} ${1} + diff ${cached_file} ${1} if [ $? -ne 0 ]; then - echo "failed: ${file} do not match" + echo "failed: ${cached_file} do not match" exit 1 fi =20 - ${perf} buildid-cache -l | grep ${id} + ${perf} buildid-cache -l | grep -q ${id} if [ $? -ne 0 ]; then echo "failed: ${id} is not reported by \"perf buildid-cache -l\"" exit 1 fi =20 + if [ -n "${perf_data}" ]; then + ${perf} buildid-list -i ${perf_data} | grep -q ${id} + if [ $? -ne 0 ]; then + echo "failed: ${id} is not reported by \"perf buildid-list -i ${perf_da= ta}\"" + exit 1 + fi + fi + echo "OK for ${1}" } =20 test_add() { - build_id_dir=3D$(mktemp -d /tmp/perf.debug.XXX) + build_id_dir=3D$(mktemp -d /tmp/perf_buildid_test.debug.XXX) perf=3D"perf --buildid-dir ${build_id_dir}" =20 ${perf} buildid-cache -v -a ${1} @@ -128,12 +198,88 @@ test_add() rm -rf ${build_id_dir} } =20 +test_remove() +{ + build_id_dir=3D$(mktemp -d /tmp/perf_buildid_test.debug.XXX) + perf=3D"perf --buildid-dir ${build_id_dir}" + + ${perf} buildid-cache -v -a ${1} + if [ $? -ne 0 ]; then + echo "failed: add ${1} to build id cache" + exit 1 + fi + + id=3D$(get_build_id ${1}) + if ! ${perf} buildid-cache -l | grep -q ${id}; then + echo "failed: ${id} not in cache" + exit 1 + fi + + ${perf} buildid-cache -v -r ${1} + if [ $? -ne 0 ]; then + echo "failed: remove ${id} from build id cache" + exit 1 + fi + + if ${perf} buildid-cache -l | grep -q ${id}; then + echo "failed: ${id} still in cache after remove" + exit 1 + fi + + echo "remove: OK" + rm -rf ${build_id_dir} +} + +test_purge() +{ + build_id_dir=3D$(mktemp -d /tmp/perf_buildid_test.debug.XXX) + perf=3D"perf --buildid-dir ${build_id_dir}" + + id1=3D$(get_build_id ${ex_sha1}) + ${perf} buildid-cache -v -a ${ex_sha1} + if ! ${perf} buildid-cache -l | grep -q ${id1}; then + echo "failed: ${id1} not in cache" + exit 1 + fi + + id2=3D$(get_build_id ${ex_md5}) + ${perf} buildid-cache -v -a ${ex_md5} + if ! ${perf} buildid-cache -l | grep -q ${id2}; then + echo "failed: ${id2} not in cache" + exit 1 + fi + + # Purge by path + ${perf} buildid-cache -v -p ${ex_sha1} + if [ $? -ne 0 ]; then + echo "failed: purge build id cache of ${ex_sha1}" + exit 1 + fi + + ${perf} buildid-cache -v -p ${ex_md5} + if [ $? -ne 0 ]; then + echo "failed: purge build id cache of ${ex_md5}" + exit 1 + fi + + # Verify both are gone + if ${perf} buildid-cache -l | grep -q ${id1}; then + echo "failed: ${id1} still in cache after purge" + exit 1 + fi + + if ${perf} buildid-cache -l | grep -q ${id2}; then + echo "failed: ${id2} still in cache after purge" + exit 1 + fi + + echo "purge: OK" + rm -rf ${build_id_dir} +} + test_record() { - data=3D$(mktemp /tmp/perf.data.XXX) - build_id_dir=3D$(mktemp -d /tmp/perf.debug.XXX) - log_out=3D$(mktemp /tmp/perf.log.out.XXX) - log_err=3D$(mktemp /tmp/perf.log.err.XXX) + build_id_dir=3D$(mktemp -d /tmp/perf_buildid_test.debug.XXX) perf=3D"perf --buildid-dir ${build_id_dir}" =20 echo "running: perf record $*" @@ -145,7 +291,7 @@ test_record() fi =20 args=3D"$*" - check ${args##* } + check ${args##* } ${data} =20 rm -f ${log_out} ${log_err} rm -rf ${build_id_dir} @@ -166,10 +312,15 @@ if [ ${run_pe} -eq 1 ]; then test_record wine ${ex_pe} fi =20 -# cleanup -rm ${ex_sha1} ${ex_md5} -if [ ${run_pe} -eq 1 ]; then - rm -r ${wineprefix} +# remove binaries manually via perf buildid-cache -r +test_remove ${ex_sha1} +test_remove ${ex_md5} +if [ ${add_pe} -eq 1 ]; then + test_remove ${ex_pe} fi =20 +# purge binaries manually via perf buildid-cache -p +test_purge + +cleanup exit 0 --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 53C292F998A for ; Sat, 22 Nov 2025 08:19:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799600; cv=none; b=lbuIA6M1A7Gm9QUDgdQaXO9BI9KL8FD8xRrVGtAe8b6/ExhrI/2HGZud8kwrimh6wbF0pkao8TFGvJZNT8QY9Zdv6ApGRsdbV5vlT6Zv43bhphAVcaPfdCzJSPuoyFH8JD2uRf7Ml7fPLJY811NgYF5lwNGSRFSl5v7Qt5i2tZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799600; c=relaxed/simple; bh=JBjw+PRUV6q2F47suf3ArJnOY2FDBb1CgT20m/seTTQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=A6YiQfTdS0x5ZjZ0oygg6Xq/2aGNaVXKiLIDvyrWf+VuOR1nmSJb79bnVlqEE4alMAnUNEooJbOUyoVmBLK7+46RjuHsVm8J+WmVOCetXIVlikd7Q7dKMmBevvfHViXGAdi3y1H+obHzJiAgxu55zUCClnM7wHtAHY33KQKxIZU= 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=1W0Lgzf4; arc=none smtp.client-ip=209.85.215.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="1W0Lgzf4" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b609c0f6522so5289600a12.3 for ; Sat, 22 Nov 2025 00:19:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799598; x=1764404398; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=M0dWtJ5ucKyEr5mZsYIfxNtzj/9j9IGrRpIHX7GVPKo=; b=1W0Lgzf4b8Il8b3nzf6P/AZNEquAGbKPwJN+eK3uLFEtZc9qKqabCjvB+9K0In1Zy1 Figva2y24bjUZCJ1B2aRz+XFytmm0jWQankZs53mP/3/1nClewtGKhB51qjbsBtHBfRZ h3BZI1+DF503v82ptveRq54L5ct0+3UYGk+tQ1DyK+0B0HedETvZsXmsoPsjgDf7v0jl ye49d9WgK7rsyEqoUgRVtgeVYBKn6G8Qu4Aak2GnfkwOXroTxpAyUT99uU1096NGsKeE eKVZfZ+UcjYU1Q1rmyn8dV68oOhqPpiNuW4ZUYUEFe1pNdFi0xXTR/s+iKwLshFab1ww fb5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799598; x=1764404398; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M0dWtJ5ucKyEr5mZsYIfxNtzj/9j9IGrRpIHX7GVPKo=; b=loHIFb65N99i2/JIr0aesOLehqAhEEM0fo9tfhK4yIamknKNi5x3fRkdQX5QGJYYwt QV6Q9xIuATvhVtWuu92n9u/GDU5JDom/96P1UudB04/SatphcgdmsA0ck+5S9/91/P4K 7Y8nUOiFUp48xcxA63TrQTHgIpjjtt4XhWFaJgyM4v2TaDJrBTOXwvKzQj9tCyoIxpi+ QoryKKni1XT6Z5idCqN9eRWXiJO+6w+o3beHdqoHt//Ow9VVgOgb1Yjds8IlZk3HHdwQ H6Smw/rSdhilD7Gjii11CdWOjzjI3UgW8IJJZZtIlAMNZhJ2FmcDvT0mv/75QmKtsrvy xcrw== X-Forwarded-Encrypted: i=1; AJvYcCU3jTpCDKt8tA3wCpm3GcruQxVagA+oBUSz29l8U2DfwcjiXwgS528K85nmErpGY4o8kDomMwwfN/R5jWY=@vger.kernel.org X-Gm-Message-State: AOJu0YySMivlUi7fc0IUrc/MDhOj5+Im1yUZkYzq1acgw51df3CEuiF+ xP2ypsy+W9LCaMs8y+mvUS5J5PQ7IqSBHtssg8PXrZsIqyqv0aoS/ChGiDNn10j3jTivX109ftV r12zt91434w== X-Google-Smtp-Source: AGHT+IFAGXYlBPql1dbEWe9YUydiaxbjL0B4NnfzOBkxsqqY08zoLFLB39IYs1W7Jzt5hllx6EUrxhkmTM6s X-Received: from dyz20.prod.google.com ([2002:a05:693c:4094:b0:2a4:6419:6f8f]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:d10d:b0:2a4:65b5:9868 with SMTP id 5a478bee46e88-2a719c2d0e7mr1509598eec.38.1763799598481; Sat, 22 Nov 2025 00:19:58 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:24 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-13-irogers@google.com> Subject: [PATCH v1 12/17] perf tests top: Add basic perf top coverage test From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The test starts a backgroup thloop workload and monitors it using cpu-clock ensuring test_loop appears in the output. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/top.sh | 74 +++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 tools/perf/tests/shell/top.sh diff --git a/tools/perf/tests/shell/top.sh b/tools/perf/tests/shell/top.sh new file mode 100755 index 000000000000..768ebcf7a89c --- /dev/null +++ b/tools/perf/tests/shell/top.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# perf top tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=3D0 +log_file=3D$(mktemp /tmp/perf.top.log.XXXXX) + +cleanup() { + rm -f "${log_file}" + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +test_basic_perf_top() { + echo "Basic perf top test" + + # Start a workload that spins to generate samples + # thloop runs for the specified number of seconds + perf test -w thloop 20 & + PID=3D$! + + # Allow it to start + sleep 0.1 + + # Run perf top for 5 seconds, monitoring that PID + # Use --stdio to avoid TUI and redirect output + # Use -d 1 to avoid flooding output + # Use -e cpu-clock to ensure we get samples + # Use sleep to keep stdin open but silent, preventing EOF loop or interac= tive spam + if ! sleep 10 | timeout 5s perf top --stdio -d 1 -e cpu-clock -p $PID > "= ${log_file}" 2>&1; then + retval=3D$? + if [ $retval -ne 124 ] && [ $retval -ne 0 ]; then + echo "Basic perf top test [Failed: perf top failed to start or run (ret= =3D$retval)]" + head -n 50 "${log_file}" + kill $PID + wait $PID 2>/dev/null || true + err=3D1 + return + fi + fi + + kill $PID + wait $PID 2>/dev/null || true + + # Check for some sample data (percentage) + if ! grep -E -q "[0-9]+\.[0-9]+%" "${log_file}"; then + echo "Basic perf top test [Failed: no sample percentage found]" + head -n 50 "${log_file}" + err=3D1 + return + fi + + # Check for the symbol + if ! grep -q "test_loop" "${log_file}"; then + echo "Basic perf top test [Failed: test_loop symbol not found]" + head -n 50 "${log_file}" + err=3D1 + return + fi + + echo "Basic perf top test [Success]" +} + +test_basic_perf_top +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 264482FB966 for ; Sat, 22 Nov 2025 08:20:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799602; cv=none; b=Lk0XJJ7vybL75Xx7b7l+PZIiRJhNN+jlb1fH54BTHYQpXGWDx87JukgmAwKWLq0hZ0ig6PR8rQ0T1MrtWMGyY7IvPDzOeyDVLMctQrfFskvEiSvzrS22HBxIomXGkr7Dnbw0ovGiQ73NQlD6XfA9gcKknzxSMcNx+SHIE568COs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799602; c=relaxed/simple; bh=rm1IqrKBPHLzJkcMCtYYI8jd1FLWutvG90VSMPspXtc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=e8RYEW0EQVsHaPPX/1WlQYzg2KgBQtMfQaNdfO7RAExarZw2i8uuNuw6GYP8MDLUK8DaKoCCox5ww+IgUC+f4vvm0aqUZ9f4chxC8C1rz/amxCt7oVtVUg/uxyOxDaGDVBkgFSaoy1z5OFquPyHru2FnRDLqWuY7ny0/Hmd8Jqg= 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=G3xk5U47; arc=none smtp.client-ip=209.85.215.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="G3xk5U47" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b9d73d57328so2952931a12.1 for ; Sat, 22 Nov 2025 00:20:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799600; x=1764404400; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=vGR4BXI5WcGpKIWk+D2mRg8n/v4+474MDwz+X0FyE40=; b=G3xk5U47A2JsIkp2AMxFOC2GRi8q2e5qRg+9Qi7DTK2w/r+XxkKk9UmzM7NSQXR+bh 5s1urlp3Bti5i9p0BIKDEcqWrwcPgE6AjnSK/4Uqvn/fWuF2XdQghcjblqWdu0wju6G9 xvsgvtlVRmJ0BQp5BDeLOvNFdp3uTIaum3UEIPCdqK4kyjR3zp8ZnM7UruvHxBkJ9z1o 8nCX5HO1eOi2sqHMs9Xm/YiQnrU4t/7CFLuayR8mRy7jPSMZaqlYddog6MqrUZt5Eg1b bvFjmNBKyDmes2yVMpe+7nBwKQoBTTwo45MJcG1ckQ7K3ppaDXuwdLXuuszEn+lfJNdW Rdbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799600; x=1764404400; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vGR4BXI5WcGpKIWk+D2mRg8n/v4+474MDwz+X0FyE40=; b=lNI1WVptLCXs0OVqYMkjje/auFVxWwkLcyuSLtil6FWJXkOq/SMfWhnWkI5y1sZhWx Rq/URmP4BrH90QAVnwWEGH8acJQKQ58teI1LFeHSbFVINjt87V4lrtNuFLgnEcPUgH9i HPO5T9sfxxVg/WbyvckEky2g7KGKYEAxxUglWrnQ7h9rOQZwze2EbdlO5+vUoZ494iOs O0IYB/5D+n1WHHIYzujKXgSuZSHV7aHGHshDDsXZD34wsr0sXdwdpZEkY7cQqdwpQY5M ZAyV6ghRerEzIVj/s1es8x9BlvObvl12K2U4EhMw2Yl0dXaaq9A1934R2PZw/p/PfEPf /q9g== X-Forwarded-Encrypted: i=1; AJvYcCXEkv/N4Ubu4qPM6uU6nXNOnZL0qawbTcNUcCqBnTqYirgK8kPkHbNfwbkV/cx7+eg3WGO8GmUP9gT7EcU=@vger.kernel.org X-Gm-Message-State: AOJu0YwQpDU8rxqsSh5OTXZIcmZAGd+KI0FtoBLpDd5WnzNJk9wuNNdq JrMOCKIeNTLQih1i1NN+sgIbFsmiFrlaVNpGG7Nq4+aPK0OYOLG7CxrIQMHbfvwGqFI8QfgKIzS hnVnJBKwydA== X-Google-Smtp-Source: AGHT+IFwXD0UPsR32BV1vhsitlbMopKgA+delZqUK7OlNd63rhYZA7+H0e0oSXCCw0pVxEMPrNNFg8+wDt/t X-Received: from dlbdx41.prod.google.com ([2002:a05:7022:e29:b0:11a:3780:4b65]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:693c:8085:b0:2a4:874c:ba92 with SMTP id 5a478bee46e88-2a7192d457bmr2103902eec.36.1763799600458; Sat, 22 Nov 2025 00:20:00 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:25 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-14-irogers@google.com> Subject: [PATCH v1 13/17] perf tests timechart: Add a perf timechart test From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Basic coverage for `perf timechart` doing a record and then a basic sanity test of the generated SVG file. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/timechart.sh | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 tools/perf/tests/shell/timechart.sh diff --git a/tools/perf/tests/shell/timechart.sh b/tools/perf/tests/shell/t= imechart.sh new file mode 100755 index 000000000000..b14b3472c284 --- /dev/null +++ b/tools/perf/tests/shell/timechart.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# perf timechart tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=3D0 +perfdata=3D$(mktemp /tmp/__perf_timechart_test.perf.data.XXXXX) +output=3D$(mktemp /tmp/__perf_timechart_test.output.XXXXX.svg) + +cleanup() { + rm -f "${perfdata}" + rm -f "${output}" + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +test_timechart() { + echo "Basic perf timechart test" + + # Try to record timechart data. + # perf timechart record uses system-wide recording and specific tracepoin= ts. + # If it fails (e.g. permissions, missing tracepoints), skip the test. + if ! perf timechart record -o "${perfdata}" true > /dev/null 2>&1; then + echo "Basic perf timechart test [Skipped: perf timechart record failed (= permissions/events?)]" + return + fi + + # Generate the timechart + if ! perf timechart -i "${perfdata}" -o "${output}" > /dev/null 2>&1; then + echo "Basic perf timechart test [Failed: perf timechart command failed]" + err=3D1 + return + fi + + # Check if output file exists and is not empty + if [ ! -s "${output}" ]; then + echo "Basic perf timechart test [Failed: output file is empty or missing= ]" + err=3D1 + return + fi + + # Check if it looks like an SVG + if ! grep -q "svg" "${output}"; then + echo "Basic perf timechart test [Failed: output doesn't look like SVG]" + err=3D1 + return + fi + + echo "Basic perf timechart test [Success]" +} + +if ! perf check feature -q libtraceevent ; then + echo "perf timechart is not supported. Skip." + cleanup + exit 2 +fi + +test_timechart +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 36D432FBDF3 for ; Sat, 22 Nov 2025 08:20:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799604; cv=none; b=XYyOGxSs7qJCWFUvJJ5bm1E1NMFskToOMAsWb5pzvEGnhAmEWvi9IE079uL10OiXof5Biw5K0BRzPAI8NmggN/4FVIHiOVEW+F5jRhgFnTNL72PSGlBX2xIfeiaL2HlRdyC1iM0lhqwMY8aH8sH4urlfXFGf4oNeFvaPlm+Dn9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799604; c=relaxed/simple; bh=+9Ty3RdjxPn1DEPcjJMI8Qwm0zSzIz5wSK2dJCAQb6U=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=mtLu0M5AwO5mj35BMtXhPpOxpwEQRONrtzndUwG7Z1VFgDNYq49FH2V3b1o7lOEZ2X+/bY/LnQdjuZ8v1p279a6ws5dDiM6AvSWlcdwpP9CPdDhUwS1Y5Pa8oNzzLyUqyyE++DB18T4np9c+ZLUoFSNS1QJGMwmLGqT/5hKeUvA= 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=YsI3G07r; arc=none smtp.client-ip=209.85.215.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="YsI3G07r" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-bb27b422cf2so5043527a12.1 for ; Sat, 22 Nov 2025 00:20:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799602; x=1764404402; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=pYEy6RfxbNCZCLMts1lJ0YqFpFYPy6p0C3XPI81AgP4=; b=YsI3G07rmFmsU3GiYg3qQoT7uPHK6LL6/KPvfBKiaYqEYnBEHy/881FCQWPYP9ZOWn ICYIkrLl/7L4kbBu645EnvVXg74L6bjx7quy3VIglQcEg96rTc44PkihLOXUq3uNQ0hJ tvx5Bg4mxHpy43/BD2Ivtyw3p+vMkTzzsbk8h8qy3KWmnQk6aKWWqQfBy1eIoU+j2v1Z HDQ98EIOdYXa3y4QSkAxMPwNi0cEf7ek12byoRLqpQ3I018MpTzzgVo5RakKd926yAWi MgzzWHrkZlmoGpo7o2Sap83yEPYLYMZ7fJy18q7ePsa/Kp/6v/CT7YXjh+Q3CAS3vMNv vq4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799602; x=1764404402; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pYEy6RfxbNCZCLMts1lJ0YqFpFYPy6p0C3XPI81AgP4=; b=Vrpem8eNTHs5VJMrcsayqTyTZ+nQBpXeumhnwjl7RPMYgt3BbRub2Ib/agJtFTtoyK pjbepPeqpQxqg+u3fMSksmWRhh5gqH/EjrhwP5tPl0SDAXhx4AyriuEVCUBcE6q1nBC4 wQH+N86PQHhlS1vHHkbNDhWH4PqSAUPxYuzyAIGhbmFWr2ah7fUPvLc84RgKdAIxbBUk doecSy/qmw0lWVQdpPC/v2OddiKvqHMkwNerQnxoSeaKcxY503veaQFFpQY0zIDQGcHt Jrev66Inn2DcG6+SdXn8d+KhvzIGmsVdAVy8Gi3hFiqHqbIk2Yzp9w2xYXZsZyhZJUyP Hdkw== X-Forwarded-Encrypted: i=1; AJvYcCWl82rBbw4Ge/TnGrBnPL4qwbtnfH5Mbe74rh0h7ZhCj0ix0QkiLJUiVxS1wUAr93kAW1dBXfpUUPcZkPw=@vger.kernel.org X-Gm-Message-State: AOJu0YwK9M0a+LMlaQONGOFpFjwcUCb9Vr+ku+Nfqfz+rP+7QCOQlXZQ R108qWd9VFVhMYWxQX2FP84pqw52My/2q/uU7zuz8msZF4+CfeoBig4p536LEvacux1+c/jZ/yy zAzD6mzn5Uw== X-Google-Smtp-Source: AGHT+IGYJzsMo6JhpnemALeHmWMVPPWcWvAmP/WHrOs4KNVqW2PSe1SU8oltPXxJZ2F7BPNPvErM3zmJVfXt X-Received: from dycmq22.prod.google.com ([2002:a05:7301:796:b0:2a2:318c:8559]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:1011:b0:2a4:64ae:e071 with SMTP id 5a478bee46e88-2a7192b4ccamr2191878eec.30.1763799602392; Sat, 22 Nov 2025 00:20:02 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:26 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-15-irogers@google.com> Subject: [PATCH v1 14/17] perf tests kallsyms: Add basic kallsyms test From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add test that kallsyms finds a well known symbol and fails for another. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/kallsyms.sh | 56 ++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 tools/perf/tests/shell/kallsyms.sh diff --git a/tools/perf/tests/shell/kallsyms.sh b/tools/perf/tests/shell/ka= llsyms.sh new file mode 100755 index 000000000000..d0eb99753f47 --- /dev/null +++ b/tools/perf/tests/shell/kallsyms.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# perf kallsyms tests +# SPDX-License-Identifier: GPL-2.0 + +err=3D0 + +test_kallsyms() { + echo "Basic perf kallsyms test" + + # Check if /proc/kallsyms is readable + if [ ! -r /proc/kallsyms ]; then + echo "Basic perf kallsyms test [Skipped: /proc/kallsyms not readable]" + err=3D2 + return + fi + + # Use a symbol that is definitely a function and present in all kernels, = e.g. schedule + symbol=3D"schedule" + + # Run perf kallsyms + # It prints "address symbol_name" + output=3D$(perf kallsyms $symbol 2>&1) + ret=3D$? + + if [ $ret -ne 0 ] || [ -z "$output" ]; then + # If empty or failed, it might be due to permissions (kptr_restrict) + # Check if we can grep the symbol from /proc/kallsyms directly + if grep -q "$symbol" /proc/kallsyms 2>/dev/null; then + # If it's in /proc/kallsyms but perf kallsyms returned empty/error, + # it likely means perf couldn't parse it or access it correctly (e.g. k= ptr_restrict=3D2). + echo "Basic perf kallsyms test [Skipped: $symbol found in /proc/kallsym= s but perf kallsyms failed (output: '$output')]" + err=3D2 + return + else + echo "Basic perf kallsyms test [Skipped: $symbol not found in /proc/kal= lsyms]" + err=3D2 + return + fi + fi + + if echo "$output" | grep -q "not found"; then + echo "Basic perf kallsyms test [Failed: output '$output' does not contai= n $symbol]" + err=3D1 + return + fi + + if perf kallsyms ErlingHaaland | grep -vq "not found"; then + echo "Basic perf kallsyms test [Failed: ErlingHaaland found in the outpu= t]" + err=3D1 + return + fi + echo "Basic perf kallsyms test [Success]" +} + +test_kallsyms +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 C966C2FC03E for ; Sat, 22 Nov 2025 08:20:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799606; cv=none; b=OYlL9izmE5QpmdvC4GEMZmwENs7wfWNNSS7S/U+P1MI+rgBYQpcaDqXivBXLcSp3Byhdq6sSg1tTOB5JE6/qHHyeWQyacWrwQV5dlOJGMC6r1ug2QiaqNmDZOwKFb7nFlomeBhzP6/0lud4ekxvacQiRxWUXz3t+vdsKoEaO6Y4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799606; c=relaxed/simple; bh=fmBkDqhx1PttP/dB41nn3oTLi+QWzIEgzUqcslYwQqk=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=EfWqN4kuyc9XRr6U2Rz+Ows/9b9DRJh9Zer0Pko7ZP4aWMIHo3wpglG10vQ7/9sTx4SrTXo/HAUmRmyS+gojxjejyY1bAfd19PnXCt2TAepDzXOPKIl3Soz7dN8Z20/Xgggo+LMU4VAeS02oPOdDi6p42uWp1Gut/oM9TurJsBA= 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=Nk8F0XFl; arc=none smtp.client-ip=209.85.215.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="Nk8F0XFl" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-bc4e9808b63so2220634a12.1 for ; Sat, 22 Nov 2025 00:20:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799604; x=1764404404; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=qagIg4uAZrdvXdo5hL885MqntgeUFGla68aYQTHhYq0=; b=Nk8F0XFlEbBgMTTIjOP//Ho/leXPGOeKhu2cZjsrKTqyDHTHqfJDelRSnKjHLvZaZS rtnnmXxc2rTQDse4jT9ul+Ig8r2VS8FCC0jeNvwBMK1MNz1CQ5WuGozNQEbRigOmqvbD s1dRJvTvijm/yuxlEng9jSSyU7EkeQMrVgXZU1qtR4ArxF4aHL/sUJILJKHKvp07sc+t FW5adExOqWYp0FLXOsHQsS1BstRsgn3aJYWPAwmz1iGp5EuwPxpwKkLrBzyW2RLDVMgM CIf0kuRLyGd93nu9IsluIxJmwzB6lFjF2p/HDZf1WFmFU0/MnNH7PKMrEIFYeIRd1x96 S6rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799604; x=1764404404; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qagIg4uAZrdvXdo5hL885MqntgeUFGla68aYQTHhYq0=; b=BWp3EFUN7fzOHJbNqmgRKRcQGA1Mea/BO/S8Tu7nAiysSboYVHtldQxMYagyDGkbHE facQzdG8emZy0giSsg/8+3mmWCVP6KvYUb/0f5WkG0iW+ynJ8oWbUl8MVhIpI1O3RaPZ TEFO0RoRulxS0gdoA6RjNUAdi/cfB+psKOG+46Fqgmn7RGk4Vja7mUvlmEPz530U2uVO PyDVMV2V2r4uR+YerAd6lN772damYgZRa4oQrLGEX/1hnmg1/allmYEG6o8dtbIE0Dqw Y8RVbKN9eho5gcUpBs5lOvu5YkyyXhIC9/ylvKHZIfJixnpSu1tKo/1pj2HZzbkoOFC5 V0Rw== X-Forwarded-Encrypted: i=1; AJvYcCWPTrs7jtLDSwRBJFHL+qP7VnWJ10BHlFnqNNmF+14K34zAkoTV0rN4Ms3WoOBfaKmH1O78dABnhv5z0hY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+thDa0M86fWoilsRuWpL8NRuxxKBrmgnISfcbSLUBmASK7QDz TrRgxWAwnQ7b7ZgW+HOICn5jt5TmGBo//CIT4wRoEqnfWDUDXSGeqvRAQWY6HcBfiAkgYuHHbvK D7U3VzrOH7Q== X-Google-Smtp-Source: AGHT+IEt4dH04AqO+CjXIyoe+uYefmSRa8ceQS06YbtdgWzSj0GX2or7oPfZlPna9E6bEu5iEskG4hp2bqz1 X-Received: from dyt23.prod.google.com ([2002:a05:693c:8097:b0:2a2:454c:f92]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:d198:b0:2a4:3593:466c with SMTP id 5a478bee46e88-2a719098538mr1676208eec.8.1763799604030; Sat, 22 Nov 2025 00:20:04 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:27 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-16-irogers@google.com> Subject: [PATCH v1 15/17] perf tests script dlfilter: Add a dlfilter test From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Compile a simple dlfilter and make sure it remove samples from everything other than a test_loop. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/script_dlfilter.sh | 107 ++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100755 tools/perf/tests/shell/script_dlfilter.sh diff --git a/tools/perf/tests/shell/script_dlfilter.sh b/tools/perf/tests/s= hell/script_dlfilter.sh new file mode 100755 index 000000000000..45c97d4a7d5f --- /dev/null +++ b/tools/perf/tests/shell/script_dlfilter.sh @@ -0,0 +1,107 @@ +#!/bin/bash +# perf script --dlfilter tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +shelldir=3D$(dirname "$0") +# shellcheck source=3Dlib/setup_python.sh +. "${shelldir}"/lib/setup_python.sh + +# skip if there's no compiler +if ! [ -x "$(command -v cc)" ]; then + echo "failed: no compiler, install gcc" + exit 2 +fi + +err=3D0 +perfdata=3D$(mktemp /tmp/__perf_test.perf.data.XXXXX) +dlfilter_c=3D$(mktemp /tmp/__perf_test.dlfilter.test.c.XXXXX) +dlfilter_so=3D$(mktemp /tmp/__perf_test.dlfilter.so.XXXXX) + +cleanup() { + rm -f "${perfdata}" + rm -f "${dlfilter_c}" + rm -f "${dlfilter_so}" + rm -f "${dlfilter_so}.o" + + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +cat < "${dlfilter_c}" +#include +#include +#include + +struct perf_dlfilter_fns perf_dlfilter_fns; + +int filter_event(void *data, const struct perf_dlfilter_sample *sample, vo= id *ctx) +{ + const struct perf_dlfilter_al *al; + + if (!sample->ip) + return 0; + + al =3D perf_dlfilter_fns.resolve_ip(ctx); + if (!al || !al->sym || strcmp(al->sym, "test_loop")) + return 1; + + return 0; +} +EOF + +test_dlfilter() { + echo "Basic --dlfilter test" + # Generate perf.data file + if ! perf record -o "${perfdata}" perf test -w thloop 1 2> /dev/null + then + echo "Basic --dlfilter test [Failed record]" + err=3D1 + return + fi + + # Build the dlfilter + if ! cc -c -I tools/perf/include -fpic -x c "${dlfilter_c}" -o "${dlfilte= r_so}.o" + then + echo "Basic --dlfilter test [Failed to build dlfilter object]" + err=3D1 + return + fi + + if ! cc -shared -o "${dlfilter_so}" "${dlfilter_so}.o" + then + echo "Basic --dlfilter test [Failed to link dlfilter shared object]" + err=3D1 + return + fi + + # Check that the output contains "test_loop" and nothing else + if ! perf script -i "${perfdata}" --dlfilter "${dlfilter_so}" | grep -q "= test_loop" + then + echo "Basic --dlfilter test [Failed missing output]" + err=3D1 + return + fi + + # The filter should filter out everything except test_loop, so ensure no = other symbols are present + # This is a simple check; we could be more rigorous + if perf script -i "${perfdata}" --dlfilter "${dlfilter_so}" | grep -v "te= st_loop" | grep -q "perf" + then + echo "Basic --dlfilter test [Failed filtering]" + err=3D1 + return + fi + + echo "Basic --dlfilter test [Success]" +} + +test_dlfilter +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 C10642FB966 for ; Sat, 22 Nov 2025 08:20:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799608; cv=none; b=u5OPvXzqIgQN/vuWtEi2DqsNDDK8aXiqXTmSWFcPtLfAb5g/KY8q4DJTq5Pvfc7+WUXXAHyEAheouJVP0Fj1a0LRpIBwBRioPz/QKo9907olteClsMxyfYOrRO7k6yNZd3wdEWLFm/BAIHCuC5ci/D/t280iy4563RoPejrw5sY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799608; c=relaxed/simple; bh=cVbo9KyKjAiks4mZRtglLay3uOkQ31MIH0rTAfdDkxU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=eqfHTelSXhZKSl5c6Rx5V+g0Jqc849EDI32XsEuaWnkC97hYrmAlwIUbrdsd5/lEcO6sumg46IszdWdpocHu/H76sRE+1x6XWjNvAWxprgY6kYrRybnRhOzxU8M/Lp0IoA5a36/gY7Vvb4ZuIY31FiwGwPefEx1Qv5N5Q4Sy2bc= 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=nDcwQ7K1; arc=none smtp.client-ip=209.85.215.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="nDcwQ7K1" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b55735710f0so4089373a12.2 for ; Sat, 22 Nov 2025 00:20:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799606; x=1764404406; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=c5vcUZ36q7LIP5k988zWeeeMo0DAr72XmNMPXeiuOFk=; b=nDcwQ7K1EjzwrCoIPsER93yq7sG+vw8gu6NqIJmcseRTYyV/PGpapZG0uG0xOD6ZwW jlmt76Ic6y0lUeXmT8NYIf8TPXs6n2SB9MvOOR8FZ4/Yw09FhKRankk5ZwHONWjAq6Uo u6EhR4vDDrEjMIiwzeqK+BZnjyjw3QNwSH+U9Futm517ZAR3hskvc7sjq/iqA8dUHa0Q tsjupbjHv9R1AWUI71FS4B5tX7bhL/a9hJVWNNJ/BPs4GxZzI0WfHvKwPlNkaBL5i9Ru T2tHHoGjt6bH7NAcMeRYv+k2Ml1JYV4fT1Xc3dMF5hA5+/2hMELtFXOTExh2r6AZ2nVp nlgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799606; x=1764404406; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=c5vcUZ36q7LIP5k988zWeeeMo0DAr72XmNMPXeiuOFk=; b=ZeUJhV55jrZ5f+B5xZuMZj8o98RxFPyvdTPmGj7uObGqxL4VcY2iB8DyZB+/ZXGGPW gIGM8v+9/uHpW5jVlc9dRvJOgSzYjHv0xEW0PjCm7aBVEc2jK9WXfaDdYCIyTISn1loI mzw3GXGg7ru0kA/cn6kapdcg43qDUo3htFcBuWa1Dkmf1z8oML0vgrMqSSNiPqIZPydW IgyAZT67K7/RC6O6EKA8ajfo8xR4/tG1pSF6fnuEOsujoOUtkfRHtty+euEnNNMICtdG z16LB/bsksn22hI+pOA2nCmrC2c8uHmoQfuinwNz9iiiJ/TrUUElsPHJvIYUzNQWZ0V8 Gn5g== X-Forwarded-Encrypted: i=1; AJvYcCUnFTVn8q8V3NNu5dD7ThtfIbT00qtf7Kh3sPJ+Z76ofeqqVSFb2TTBBtP2JxJIuIZWU+YifKHnOxox9uY=@vger.kernel.org X-Gm-Message-State: AOJu0YyShVdYxdiV+mj8+nBkzaOnBbWpGsjmLeYai5TXibHGU922/WcN QUXkE2hSaZ9gGqO6odU8qgUwfGEMCAqWCzMP0MvHR2fdV1YVoxu1LfdSl6d4mYFi+Smoty/VFRT 2i8yqzIwhuQ== X-Google-Smtp-Source: AGHT+IHp2n+PMLI6OfHsMt+oT7Bf6B1GSkHq8pvIHAETmUrFKTEcUmTA0f7lg7TVaCVrRV2nsTnRe5nKpQtt X-Received: from dlbdd12.prod.google.com ([2002:a05:7022:a8c:b0:119:49ca:6b9c]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:388e:b0:11b:9386:8267 with SMTP id a92af1059eb24-11c9d86fc93mr2488596c88.44.1763799605924; Sat, 22 Nov 2025 00:20:05 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:28 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-17-irogers@google.com> Subject: [PATCH v1 16/17] perf tests evlist: Add basic evlist test From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add test that evlist reports expected events from perf record. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/evlist.sh | 79 ++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 tools/perf/tests/shell/evlist.sh diff --git a/tools/perf/tests/shell/evlist.sh b/tools/perf/tests/shell/evli= st.sh new file mode 100755 index 000000000000..140f099e75c1 --- /dev/null +++ b/tools/perf/tests/shell/evlist.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# perf evlist tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=3D0 +perfdata=3D$(mktemp /tmp/__perf_test.perf.data.XXXXX) + +cleanup() { + rm -f "${perfdata}" + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +test_evlist_simple() { + echo "Simple evlist test" + if ! perf record -e cycles -o "${perfdata}" true 2> /dev/null + then + echo "Simple evlist [Failed record]" + err=3D1 + return + fi + if ! perf evlist -i "${perfdata}" | grep -q "cycles" + then + echo "Simple evlist [Failed to list event]" + err=3D1 + return + fi + echo "Simple evlist test [Success]" +} + +test_evlist_group() { + echo "Group evlist test" + if ! perf record -e "{cycles,instructions}" -o "${perfdata}" true 2> /dev= /null + then + echo "Group evlist [Skipped event group recording failed]" + return + fi + + if ! perf evlist -i "${perfdata}" -g | grep -q "{.*cycles.*,.*instruction= s.*}" + then + echo "Group evlist [Failed to list event group]" + err=3D1 + return + fi + echo "Group evlist test [Success]" +} + +test_evlist_verbose() { + echo "Event configuration evlist test" + if ! perf record -e cycles -o "${perfdata}" true 2> /dev/null + then + echo "Event configuration evlist [Failed record]" + err=3D1 + return + fi + + if ! perf evlist -i "${perfdata}" -v | grep -q "config:" + then + echo "Event configuration evlist [Failed to list verbose info]" + err=3D1 + return + fi + echo "Event configuration evlist test [Success]" +} + +test_evlist_simple +test_evlist_group +test_evlist_verbose + +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog From nobody Tue Dec 2 01:06:26 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.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 D07DE2FD7A3 for ; Sat, 22 Nov 2025 08:20:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799610; cv=none; b=Vc+c8lmHfugdGe48LqdaJvEMBhr72hlf+qaof1CFsQpJNdAXhobx6IPkjxBamv0oxwUfQs8laSWjZrUS5C9fGAjWClYiAU4+kndpxMKde4oWRZgaurAFMK2Y9lfM5UTvC9gYoj7aJVVDce0lN+RxtEsB8OpToOzf5V5GgRQh4Q4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763799610; c=relaxed/simple; bh=77y7tXutito3nnzAoc+ycFKKxLdAvlLV3iqcipeD6VM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=B84FRfXJ/g5r9csyQRxVIplCIDjN67mPwlpmRKx40c8aaSpbzq06s3gGc2UFQcOcH2TcqESElM5W2I74N/uS+PQl3sEKKhqmExZbU4U3+QXB43qvwpymjpgUO+6K1FBD9gbxU428I/Ym3gErEkoxENFGuU4C6soGTamv5jCr7U0= 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=FO7VsXYc; arc=none smtp.client-ip=209.85.215.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="FO7VsXYc" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b993eb2701bso2754151a12.0 for ; Sat, 22 Nov 2025 00:20:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763799608; x=1764404408; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=I1FSqCMeHsL++g3NwVXFiLoHBKehFUPc0C8bNPag8O0=; b=FO7VsXYcDBug4auNy2umqJ9iF+h4/tfKAIz/VZ8X1/52OFBovZ523kvPWW1UNXtG92 Q5/oj2dzi6yHTIf+ZZ9Sf96foP2vPKVw3XEF7JgCZUzCQF8NY42SHR3ERtWiV2Lz7834 x6B5g3Z5/f+MhDlXSvCxEg2FEHjdbo6CCoD3DvEpOgqGMOuivHfLC4IGjs0eIsl30rgS OcoZemHX97tGQSPhMpVvsm+Vwkh74sad8qwG6aFdFVXKfyeVkqRh68u/NVGJ5YfuZmy3 I396xoEEdgAFpZFOseiQW4bva4z5gK8VjcLsiy1OS607FJW3uT4IYi4RdHzUMpMgZcNO 8+Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799608; x=1764404408; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=I1FSqCMeHsL++g3NwVXFiLoHBKehFUPc0C8bNPag8O0=; b=A2Dl+MekWPBrmF+XgOfi7D5aWqXmEx339WCjQoMTERj3qdvcATUjlVsavcDyBpaD7r Kvqeok9rwQuxrgw2hLFV1Yzdb/rdn5K5gBIZXFXXCYbTLrJGWXJIA5HmQYAw16TRTfz5 A02Y6hWWXj/U+fGweeL4TPxWaG1Y/kHT3b6c6cGiQep9sWDJIA5QGMWJiKXKgvPYw8WL bcLckWs/Oqy6dVPd+K7yu0iEt9LQqdHWnAxZrxGc0XEUQYLJv1fPf/wBpyCpRlQjj6qh /sJSZWEv9FsGVYPsk47Efmk3E6acg8wTtWnucY6A2UwrnKR/Nq2E+QyYu6O5mNo4VlQt xOFA== X-Forwarded-Encrypted: i=1; AJvYcCUZc5yqc+hlDcrfg+mhR9HxSQLEoXtAm7qNGISG+xPQiF7IrZy32AO3x/8VSfpV8XuqkEeZCuRpEj7DYg4=@vger.kernel.org X-Gm-Message-State: AOJu0YwxaK3AZoC89mVI8xMvkXX1/H/cXYQ3LlBsVEDqQwBUESN8/fY3 q3FXhl0OgSqh0/G4NbYi6byC05gFabwLNjHk0QISWrIK2i/FbXqrBV4UkanKuxKmaHrJe7YyTHZ yrVrCLvUp1A== X-Google-Smtp-Source: AGHT+IGflzDr78v/sru9qBkWDUDP31dQt3lOiXUHw56VDdhoXsu553xPZE3o+BNCwrkxSJyKbDjQLLqsDtJ2 X-Received: from dycog5.prod.google.com ([2002:a05:7301:9a85:b0:2a4:791c:9e95]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:7d0a:b0:2a4:3592:c5f7 with SMTP id 5a478bee46e88-2a71907139amr1640322eec.8.1763799608188; Sat, 22 Nov 2025 00:20:08 -0800 (PST) Date: Sat, 22 Nov 2025 00:19:29 -0800 In-Reply-To: <20251122081929.7588-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251122081929.7588-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.rc2.455.g230fcf2819-goog Message-ID: <20251122081929.7588-18-irogers@google.com> Subject: [PATCH v1 17/17] perf test kvm: Add some basic perf kvm test coverage From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Collin Funk , Dmitry Vyukov , Andi Kleen , Thomas Falcon , Leo Yan , Yicong Yang , Greg Kroah-Hartman , "Masami Hiramatsu (Google)" , Stephen Brennan , Haibo Xu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Setup qemu with KVM then run kvm stat and some host recording/reporting/build-id tests. Signed-off-by: Ian Rogers --- tools/perf/tests/shell/kvm.sh | 154 ++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100755 tools/perf/tests/shell/kvm.sh diff --git a/tools/perf/tests/shell/kvm.sh b/tools/perf/tests/shell/kvm.sh new file mode 100755 index 000000000000..2fafde1a29cc --- /dev/null +++ b/tools/perf/tests/shell/kvm.sh @@ -0,0 +1,154 @@ +#!/bin/bash +# perf kvm tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=3D0 +perfdata=3D$(mktemp /tmp/__perf_kvm_test.perf.data.XXXXX) +qemu_pid_file=3D$(mktemp /tmp/__perf_kvm_test.qemu.pid.XXXXX) + +cleanup() { + rm -f "${perfdata}" + if [ -f "${qemu_pid_file}" ]; then + if [ -s "${qemu_pid_file}" ]; then + qemu_pid=3D$(cat "${qemu_pid_file}") + if [ -n "${qemu_pid}" ]; then + kill "${qemu_pid}" 2>/dev/null || true + fi + fi + rm -f "${qemu_pid_file}" + fi + trap - EXIT TERM INT +} + +trap_cleanup() { + echo "Unexpected signal in ${FUNCNAME[1]}" + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +skip() { + echo "Skip: $1" + cleanup + exit 2 +} + +test_kvm_stat() { + echo "Testing perf kvm stat" + + echo "Recording kvm events for pid ${qemu_pid}..." + if ! perf kvm stat record -p "${qemu_pid}" -o "${perfdata}" sleep 1; then + echo "Failed to record kvm events" + err=3D1 + return + fi + + echo "Reporting kvm events..." + if ! perf kvm -i "${perfdata}" stat report 2>&1 | grep -q "VM-EXIT"; then + echo "Failed to find VM-EXIT in report" + perf kvm -i "${perfdata}" stat report 2>&1 + err=3D1 + return + fi + + echo "perf kvm stat test [Success]" +} + +test_kvm_record_report() { + echo "Testing perf kvm record/report" + + echo "Recording kvm profile for pid ${qemu_pid}..." + # Use --host to avoid needing guest symbols/mounts for this simple test + # We just want to verify the command runs and produces data + # We run in background and kill it because 'perf kvm record' appends opti= ons + # after the command, which breaks 'sleep' (e.g. it gets '-e cycles'). + perf kvm --host record -p "${qemu_pid}" -o "${perfdata}" & + rec_pid=3D$! + sleep 1 + kill -INT "${rec_pid}" + wait "${rec_pid}" || true + + echo "Reporting kvm profile..." + # Check for some standard output from report + if ! perf kvm -i "${perfdata}" report --stdio 2>&1 | grep -q "Event count= "; then + echo "Failed to report kvm profile" + perf kvm -i "${perfdata}" report --stdio 2>&1 + err=3D1 + return + fi + + echo "perf kvm record/report test [Success]" +} + +test_kvm_buildid_list() { + echo "Testing perf kvm buildid-list" + + # We reuse the perf.data from the previous record test + if ! perf kvm --host -i "${perfdata}" buildid-list 2>&1 | grep -q "."; th= en + echo "Failed to list buildids" + perf kvm --host -i "${perfdata}" buildid-list 2>&1 + err=3D1 + return + fi + + echo "perf kvm buildid-list test [Success]" +} + +setup_qemu() { + # Find qemu + if [ "$(uname -m)" =3D "x86_64" ]; then + qemu=3D"qemu-system-x86_64" + elif [ "$(uname -m)" =3D "aarch64" ]; then + qemu=3D"qemu-system-aarch64" + elif [ "$(uname -m)" =3D "s390x" ]; then + qemu=3D"qemu-system-s390x" + elif [ "$(uname -m)" =3D "ppc64le" ]; then + qemu=3D"qemu-system-ppc64" + else + qemu=3D"qemu-system-$(uname -m)" + fi + + if ! which -s "$qemu"; then + skip "$qemu not found" + fi + + if [ ! -r /dev/kvm ] || [ ! -w /dev/kvm ]; then + skip "/dev/kvm not accessible" + fi + + if ! perf kvm stat record -a sleep 0.01 >/dev/null 2>&1; then + skip "No permission to record kvm events" + fi + + echo "Starting $qemu..." + # Start qemu in background, detached, with pidfile + # We use -display none -daemonize and a monitor to keep it alive/controll= able if needed + # We don't need a real kernel, just KVM active. + if ! $qemu -enable-kvm -display none -daemonize -pidfile "${qemu_pid_file= }" -monitor none; then + echo "Failed to start qemu" + err=3D1 + return + fi + + # Wait a bit for qemu to start + sleep 1 + qemu_pid=3D$(cat "${qemu_pid_file}") + + if ! kill -0 "${qemu_pid}" 2>/dev/null; then + echo "Qemu process failed to stay alive" + err=3D1 + return + fi +} + +setup_qemu +if [ $err -eq 0 ]; then + test_kvm_stat + test_kvm_record_report + test_kvm_buildid_list +fi + +cleanup +exit $err --=20 2.52.0.rc2.455.g230fcf2819-goog