From nobody Mon Feb 9 00:20:44 2026 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 B6E3713957E for ; Wed, 2 Apr 2025 16:47:27 +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=1743612449; cv=none; b=vCZ3XeerS7r5vNAdf3bc3Q63ZySh55NTGye6qDUMA7MgTk/tHnU5EN48Us5YZajH0sMGciHqE9RQsOyj+G11jMYKX1d9YfJNgSJJfUTGTkwaK0p0Jxz5E1zsR165ECmNb/bNf+wY4IC0P7W69MKfFofciMsXC9DswRXXTrmh0FE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743612449; c=relaxed/simple; bh=mdSSrhP7G24frprN16593VOBIgMZgeUhPBNK6wrZNsk=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=BgqL6RkGtf8Rep9YIvg9WxHEOoqgw94dN1TYzU2kN8DktATBtk0uuCdcepT1ub3E4BtNEdlBKFbOZhcq4PJ1/4LXEVYcZBULWVvz2LdP5qOPx8GyHT7Hs5ViybNcgik29lzZOwTOm5RDVy5G3n4ZAVLa5yRtGo3LfAIcQrQt178= 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=CVTWEySv; 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="CVTWEySv" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-227a8cdd272so419195ad.2 for ; Wed, 02 Apr 2025 09:47:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743612446; x=1744217246; 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=32l0Pu2pjVOQ0/rzRKMg0Sp9sEBo5wkzEsYD7DuEcpE=; b=CVTWEySvNa2BKwtyTADx4/lW2Bg8dl0Rql0Zkn8KtOyi7OnL2rDiOzzew/nznJ0c+3 rdiXiNmzlU2EAgv58ya4J5NckY30yfsKwkS4P0DgITuf9x6wPQqGfq8eLkWejQe5gZ13 4/D9amub89+iUkrKt1AOB/6gJk30gH68IOBPFeNHWi4RLnadRLubzqACC0jIR8/WHwgz sOxyIuqXbJh6SFdZ3XCeJv0er7I/bZ78JO0aNfmnVfUMkNhEIBR6LxDN3Lt/fETltqHX ZpZGC+nvX6lD/HohcM+DmC48f++ZmyLRxVym0mqNwXn3kOwDqWDGs7woUFA/FIqsAH0j PHtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743612446; x=1744217246; 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=32l0Pu2pjVOQ0/rzRKMg0Sp9sEBo5wkzEsYD7DuEcpE=; b=gO2+XzqpaOy9F46TPB4R7HPt7R0je/1OOMUw3wPQ28rroxAnIieAHQnWPhQpDUZ/PO NGyUFx7HPKVaI+/qc88uFRn0U8Od5pJKtKQqbkU4GPNrz8H610uXUYA7Ga1c4IzmPiH/ GOumE5MCGcEKXTTdSznN35qGizSZh5O8eDtdkFzxgcDf4jiLLVP+QR/YrSVbzEnCXrg6 BvDjI6KzEoZ71UVugnr+DF+GLSlD3o6FKI/H7WGq3yyS+4+zl+HLZSDo8SmbzdNDUPgT qwTOGCrNacyV87xgw3Fxcdh5exQRwngjcq4J88pbawnoVSnAnEyI3+AdXLKE5ickMIFn s9fQ== X-Forwarded-Encrypted: i=1; AJvYcCVHHlVeLAQA01I0SJzbXGM0SgvRuBdi125d4Uv1ZNj5Mvr+qo3DGvaRS185EAroE/vhq8MBuUUZ+H3vv7U=@vger.kernel.org X-Gm-Message-State: AOJu0YydQ9xE726wf23hgl+1+thFIBaKWvtMaHTicM+AUSBSuz2nn3g/ Cz8yyyYFjbaZWBKIeKLe+eQXo3wcEBjrcCJhLATrKc4Qgf1Xqip5ujaAVxkjCHVQA86MS5GUgiQ pP33waw== X-Google-Smtp-Source: AGHT+IGCGqrDwBXC2WLXzmtNZD0tnxmjJy9+AtvHPheDKufpBqRlCNAGPLYftjaH/tRCYxxH1vMoPKmrSGL6 X-Received: from plbmk14.prod.google.com ([2002:a17:903:2bce:b0:223:f487:afc6]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:19c7:b0:223:6657:5008 with SMTP id d9443c01a7336-2292f974807mr300287625ad.24.1743612446668; Wed, 02 Apr 2025 09:47:26 -0700 (PDT) Date: Wed, 2 Apr 2025 09:47:16 -0700 In-Reply-To: <20250402164720.3847573-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: <20250402164720.3847573-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250402164720.3847573-2-irogers@google.com> Subject: [PATCH v2 1/5] perf stat: Better hybrid support for the NMI watchdog warning From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Howard Chu , Dominique Martinet , Levi Yun , "Dr. David Alan Gilbert" , Andi Kleen , James Clark , Weilin Wang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Prior to this patch evlist__has_hybrid would return false if the processor wasn't hybrid or the evlist didn't contain any core events. If the only PMU used by events was cpu_core then it would true even though there are no cpu_atom events. For example: ``` $ perf stat --cputype=3Dcpu_core -e '{cycles,cycles,cycles,cycles,cycles,cy= cles,cycles,cycles,cycles}' true Performance counter stats for 'true': cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) cpu_core/cycles/ = (0.00%) 0.001981900 seconds time elapsed 0.002311000 seconds user 0.000000000 seconds sys ``` This patch changes evlist__has_hybrid to return true only if the evlist contains events from >1 core PMU. This means the NMI watchdog warning is shown for the case above. Signed-off-by: Ian Rogers --- tools/perf/util/stat-display.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index e852ac0d9847..1115efb380fb 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -822,16 +822,28 @@ static bool is_mixed_hw_group(struct evsel *counter) return false; } =20 -static bool evlist__has_hybrid(struct evlist *evlist) +static bool evlist__has_hybrid_pmus(struct evlist *evlist) { struct evsel *evsel; + struct perf_pmu *last_core_pmu =3D NULL; =20 if (perf_pmus__num_core_pmus() =3D=3D 1) return false; =20 evlist__for_each_entry(evlist, evsel) { - if (evsel->core.is_pmu_core) + if (evsel->core.is_pmu_core) { + struct perf_pmu *pmu =3D evsel__find_pmu(evsel); + + if (pmu =3D=3D last_core_pmu) + continue; + + if (last_core_pmu =3D=3D NULL) { + last_core_pmu =3D pmu; + continue; + } + /* A distinct core PMU. */ return true; + } } =20 return false; @@ -872,7 +884,7 @@ static void printout(struct perf_stat_config *config, s= truct outstate *os, ok =3D false; =20 if (counter->supported) { - if (!evlist__has_hybrid(counter->evlist)) { + if (!evlist__has_hybrid_pmus(counter->evlist)) { config->print_free_counters_hint =3D 1; if (is_mixed_hw_group(counter)) config->print_mixed_hw_group_error =3D 1; --=20 2.49.0.504.g3bcea36a83-goog From nobody Mon Feb 9 00:20:44 2026 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 7EC66194C61 for ; Wed, 2 Apr 2025 16:47:29 +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=1743612450; cv=none; b=SMIb30qZlXSo/uNOD43Db6yw9ooWtYWCaLwHkjqWdp8v7DWJXIvHvEhMSPycPIonTnlQuAnWK0Rc17CA7q22oYGfOtoSnVxwnsQ/KtaLsb61TN40233tjaUZL3lPB4OYBH+wuaPaN0zHT4Mu6t04Sal/ScaBi8ION7WX4iQL9zs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743612450; c=relaxed/simple; bh=NqnWpcdFkNGPmqWCPNT6GGaIm7Gc0q9VpwYczE12dRI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=jkDqTwgVUajV9zJdWiF4TmsOWo3/xV7ajRNuWSlSOLz0770fMPdPQq5cKp+/LfQ4g0S0o078y6dpGmctyZYdH7xjoe59Dwk1jtaEfAR0yZLlQmDGN827zj3UerM2VyMZvYxQrJeqBFd+On50nB2puYFm4gyPdz8JfT9zndQVRTE= 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=DZtx6scp; 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="DZtx6scp" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-af953100791so32254a12.1 for ; Wed, 02 Apr 2025 09:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743612449; x=1744217249; 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=GVMZzaRI0SYaZ9HIFXqjbn9kAaASuQl6uCuXVUyZL/Q=; b=DZtx6scpFfBz8rSgUPbSLmPQCvHPoa6efBBrD7egb8evAyZ1DXZOmunPS+VQ5SV528 5XESpzmHGrRoeKqXwBXfFOKKtg7TbqUVbCjIVo0YL55ArhNXNULC3oE72CxNOXd4uMJ8 KjoPSvmxSHQmuxSqossSOe2VA6Li+4SK7hKcAP1MCZVrB4+vgCACIxpeK19MIobPn170 qpxqRyuZ642Vwfq2m2hfw3MyAvQkl+aDbBbVOUaRgu3C6yR/TrivX+SIwubPZVUF/Hc+ E054taC6TgALqAuSRi3yZkL4lO98cIgKt2TSHqxWJH0Idkv9oyBOrpL6QVFab/3sjd6V ZbOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743612449; x=1744217249; 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=GVMZzaRI0SYaZ9HIFXqjbn9kAaASuQl6uCuXVUyZL/Q=; b=Mmv69gtjgPoSr8OgZ3YfmdFlYJj7xH0Wr1bEnWJvSsFF1N43+V0jBJoEECN/DRQtsa D5ozJs2qEpsV6YBkEFqDO8WlRYO2O45xvi2NaG2vjsXgz8+oq/BxevPiQ3gSpS1D12VN vVrZEJZURvT0IDR6OBYRNOqb3OptFCBQj3idV4MPcINIiMGFnfNFaZuCSOVQIK0R/LjG wGbcBlLm4PsQgdXDpXS8xWb6hbGwTz7QgyWF2dw4+gsAr4CPN+yRGhfkRwRdAjPy5Vkk DJcDXXB0VedMfvfdMbFCWAfmlcbVJk/86rLBjb/54le6LQg8liMxfeeXxldlPMV2TpdI hM1Q== X-Forwarded-Encrypted: i=1; AJvYcCV0G4YCzHh8e7JNzS8WZl3f1sY1woCSobwytGe048abHk/59hK02S//eddFFlHcwEi1CtQp9MghqYx1w1s=@vger.kernel.org X-Gm-Message-State: AOJu0YyEk8cOnkYHCHkPzapWh0rjJH7HverMNLPGwgcWDGOImOzahYuF QJQRp+QtViANj4v3O9nYndfgpQLxLJcMfsGqkzUf4K4Lrn4Nv6V3ftMNg0Y3OIb7n8kvWjPmfRW 6HqaiJQ== X-Google-Smtp-Source: AGHT+IGGJmZgIYf85aQoyCz2a/j1TJQUoHxYvSUmi17IBOewaANMK1sOAl6iEA30oqxeC5Z9G95o7Gt5xxAV X-Received: from pjbqj14.prod.google.com ([2002:a17:90b:28ce:b0:301:1bf5:2f07]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2e4e:b0:2ee:e518:c1d8 with SMTP id 98e67ed59e1d1-3053215ce9bmr27226504a91.30.1743612448791; Wed, 02 Apr 2025 09:47:28 -0700 (PDT) Date: Wed, 2 Apr 2025 09:47:17 -0700 In-Reply-To: <20250402164720.3847573-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: <20250402164720.3847573-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250402164720.3847573-3-irogers@google.com> Subject: [PATCH v2 2/5] perf stat: Remove print_mixed_hw_group_error From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Howard Chu , Dominique Martinet , Levi Yun , "Dr. David Alan Gilbert" , Andi Kleen , James Clark , Weilin Wang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" print_mixed_hw_group_error will print a warning when a group of events uses different PMUs. This isn't possible to happen as parse_events__sort_events_and_fix_groups will break groups when this happens, adding the warning at the start of perf of: WARNING: events were regrouped to match PMUs As the previous mixed group warning can never happen, remove the associated code. Signed-off-by: Ian Rogers --- tools/perf/util/stat-display.c | 31 ------------------------------- tools/perf/util/stat.h | 1 - 2 files changed, 32 deletions(-) diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index 1115efb380fb..aab3697aed63 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -798,30 +798,6 @@ static void abs_printout(struct perf_stat_config *conf= ig, print_cgroup(config, os, evsel->cgrp); } =20 -static bool is_mixed_hw_group(struct evsel *counter) -{ - struct evlist *evlist =3D counter->evlist; - u32 pmu_type =3D counter->core.attr.type; - struct evsel *pos; - - if (counter->core.nr_members < 2) - return false; - - evlist__for_each_entry(evlist, pos) { - /* software events can be part of any hardware group */ - if (pos->core.attr.type =3D=3D PERF_TYPE_SOFTWARE) - continue; - if (pmu_type =3D=3D PERF_TYPE_SOFTWARE) { - pmu_type =3D pos->core.attr.type; - continue; - } - if (pmu_type !=3D pos->core.attr.type) - return true; - } - - return false; -} - static bool evlist__has_hybrid_pmus(struct evlist *evlist) { struct evsel *evsel; @@ -886,8 +862,6 @@ static void printout(struct perf_stat_config *config, s= truct outstate *os, if (counter->supported) { if (!evlist__has_hybrid_pmus(counter->evlist)) { config->print_free_counters_hint =3D 1; - if (is_mixed_hw_group(counter)) - config->print_mixed_hw_group_error =3D 1; } } } @@ -1587,11 +1561,6 @@ static void print_footer(struct perf_stat_config *co= nfig) " echo 0 > /proc/sys/kernel/nmi_watchdog\n" " perf stat ...\n" " echo 1 > /proc/sys/kernel/nmi_watchdog\n"); - - if (config->print_mixed_hw_group_error) - fprintf(output, - "The events in group usually have to be from " - "the same PMU. Try reorganizing the group.\n"); } =20 static void print_percore(struct perf_stat_config *config, diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h index 2fda9acd7374..1bcd7634bf47 100644 --- a/tools/perf/util/stat.h +++ b/tools/perf/util/stat.h @@ -100,7 +100,6 @@ struct perf_stat_config { int times; int run_count; int print_free_counters_hint; - int print_mixed_hw_group_error; const char *csv_sep; struct stats *walltime_nsecs_stats; struct rusage ru_data; --=20 2.49.0.504.g3bcea36a83-goog From nobody Mon Feb 9 00:20:44 2026 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 CCD4919E83C for ; Wed, 2 Apr 2025 16:47:31 +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=1743612453; cv=none; b=Vu2Mwf/MRW2Ir8G0dD+jf0CeA9pY+VR29tHlch4kHrM4syt0Qa6fOFh0XKwXyfCni8VsHodf0X1pHL9Aa4/OBYJcX5zHu/DKP26q0LlsN/3YCLpfJDoxZcnE4TNTnzhM8EPrLdpqj+X4fCVyJIt00t2vgYKyvnCbuVkhqiUE9ls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743612453; c=relaxed/simple; bh=ceFQQBDmr9eZ5yU3Gt86zh2f8+RxL6DcgnNhvGpxxF4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=Ar19cLu2NWM0RJKvpDDNe9JdOjFiOJHwWH+vqIyALGmi79/3iLniCQrtMPDScqEkZfWU3Jk+lVKrvIDQPqV34WEGaeel6GzYHrka+SvpzdYVrijd87qaaLLCUsfmpNZ5v3dns0AnBFOD1rS6PYV5kYFua6WtJpBnzao2aWu33Uc= 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=BEgWd9gA; 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="BEgWd9gA" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-224192ff68bso484755ad.1 for ; Wed, 02 Apr 2025 09:47:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743612451; x=1744217251; 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=d/Qfr113zCIU5rUe0KDXRj0KUMUinv6gA3VPY5V4Jtk=; b=BEgWd9gAjpDfrKcn45x/GdeERHbjnDcCKqTXhkASChHioy0u9mDuzdcXPtPmOyMS+H eCcA8C7l149W1Di8+zEHsj6kdPcIKfpK1YqDw/ioyotbhoEGvisNx9WTeSYlGBrphEMY 97LTh6AMlP6NXWXj7hP7Nkx/yBVVFVOVjW0kcfjP63ZN5VBM45n2qEnu/vR1IiSJMy8i NXGh4p98qEdIcZ7on8UwFd1qiAXlnVdDdMWUSy21gQ89NnDg3sKM3E9pRXNo/XBtlXNy C30WilYH1P7HXUJjM8Z68VAl9VW2krwWW2gmNMFYvce1KodyLuKLfUiI9MqqlAYBoDUU znPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743612451; x=1744217251; 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=d/Qfr113zCIU5rUe0KDXRj0KUMUinv6gA3VPY5V4Jtk=; b=C9+ZhaRedG5UNCrBaZcBmRmAaT7GX6X7sEYZ2GPDfSTuXS8aEvG5aPMahq/tIpUN5B 5dJNwk10Lq7MpRhguWZ8gl9g3WoLIChx+BlTb7l6c3tEbm63/ixmpRR/gWsBH4xlf4MA mP0PbHFw4XMZ1gRedRmUIF+OevfvEytawrZYMFLP7GvnVMpclbtNku502fgYfcZHZeLo y9K1tVH1Q/hJKBC5bFXxMXvbjGM5m721pDeVv5jjpgZWXzSALM9leKdnjLLuZImlcdW4 ZcAObe0TdbwZdP6TghJ0kHp342JNMBEvRNJBxYVJL++OMzk8NjsH2ovQ/JpW6emXUWlz 10iQ== X-Forwarded-Encrypted: i=1; AJvYcCX1u3k1lR9vRcPYa3POIvIUe2RKJW2Oz0SZvO+HhsnEPqHRnJpyedVrawzFQUxcB3nB2sC6xweduOqKxVA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6pYBiv5cEwvhnZK9EMHgwzDoafuzCoXAZGsy6dWdt7fe9I9OS wVqsnWzllK7IK8d+EsQnl8j3k9hAI0W1iHTIRZ+gYt5fvn3mca5NRT4KN0j3592tKZFGjJjLTeP N5DgXuA== X-Google-Smtp-Source: AGHT+IGhP8qElqcgJ4MyrXLm/aqq5o3XDeP+tTGfLtkiObvCW5hiKCTE3Ib7sJkQCsyZ3WFMN/lFRTtR3cPJ X-Received: from pjd15.prod.google.com ([2002:a17:90b:54cf:b0:2fc:aac:e580]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f60c:b0:223:5e76:637a with SMTP id d9443c01a7336-2296c688a9dmr40198615ad.23.1743612451174; Wed, 02 Apr 2025 09:47:31 -0700 (PDT) Date: Wed, 2 Apr 2025 09:47:18 -0700 In-Reply-To: <20250402164720.3847573-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: <20250402164720.3847573-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250402164720.3847573-4-irogers@google.com> Subject: [PATCH v2 3/5] perf evlist: Refactor evlist__scnprintf_evsels From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Howard Chu , Dominique Martinet , Levi Yun , "Dr. David Alan Gilbert" , Andi Kleen , James Clark , Weilin Wang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch output to using a strbuf so the storage can be resized. Add a maximum size argument to avoid too much output that may happen for uncore events. Rename as scnprintf is no longer used. Signed-off-by: Ian Rogers --- tools/perf/builtin-record.c | 9 ++++++--- tools/perf/util/evlist.c | 21 ++++++++++++--------- tools/perf/util/evlist.h | 3 ++- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index ba20bf7c011d..9a3f7d9f881d 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -51,6 +51,7 @@ #include "util/clockid.h" #include "util/off_cpu.h" #include "util/bpf-filter.h" +#include "util/strbuf.h" #include "asm/bug.h" #include "perf.h" #include "cputopo.h" @@ -2784,13 +2785,15 @@ static int __cmd_record(struct record *rec, int arg= c, const char **argv) record__auxtrace_snapshot_exit(rec); =20 if (forks && workload_exec_errno) { - char msg[STRERR_BUFSIZE], strevsels[2048]; + char msg[STRERR_BUFSIZE]; const char *emsg =3D str_error_r(workload_exec_errno, msg, sizeof(msg)); + struct strbuf sb =3D STRBUF_INIT; =20 - evlist__scnprintf_evsels(rec->evlist, sizeof(strevsels), strevsels); + evlist__format_evsels(rec->evlist, &sb, 2048); =20 pr_err("Failed to collect '%s' for the '%s' workload: %s\n", - strevsels, argv[0], emsg); + sb.buf, argv[0], emsg); + strbuf_release(&sb); err =3D -1; goto out_child; } diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index c1a04141aed0..ffb5be41a465 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -35,6 +35,7 @@ #include "util/util.h" #include "util/env.h" #include "util/intel-tpebs.h" +#include "util/strbuf.h" #include #include #include @@ -2468,23 +2469,25 @@ struct evsel *evlist__find_evsel(struct evlist *evl= ist, int idx) return NULL; } =20 -int evlist__scnprintf_evsels(struct evlist *evlist, size_t size, char *bf) +void evlist__format_evsels(struct evlist *evlist, struct strbuf *sb, size_= t max_length) { struct evsel *evsel; - int printed =3D 0; + bool first =3D true; =20 evlist__for_each_entry(evlist, evsel) { if (evsel__is_dummy_event(evsel)) continue; - if (size > (strlen(evsel__name(evsel)) + (printed ? 2 : 1))) { - printed +=3D scnprintf(bf + printed, size - printed, "%s%s", printed ? = "," : "", evsel__name(evsel)); - } else { - printed +=3D scnprintf(bf + printed, size - printed, "%s...", printed ?= "," : ""); - break; + + if (!first) + strbuf_addch(sb, ','); + + if (sb->len > max_length) { + strbuf_addstr(sb, "..."); + return; } + strbuf_addstr(sb, evsel__name(evsel)); + first =3D false; } - - return printed; } =20 void evlist__check_mem_load_aux(struct evlist *evlist) diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index edcbf1c10e92..21f6bff319fd 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -20,6 +20,7 @@ struct pollfd; struct thread_map; struct perf_cpu_map; struct record_opts; +struct strbuf; struct target; =20 /* @@ -430,7 +431,7 @@ int event_enable_timer__process(struct event_enable_tim= er *eet); =20 struct evsel *evlist__find_evsel(struct evlist *evlist, int idx); =20 -int evlist__scnprintf_evsels(struct evlist *evlist, size_t size, char *bf); +void evlist__format_evsels(struct evlist *evlist, struct strbuf *sb, size_= t max_length); void evlist__check_mem_load_aux(struct evlist *evlist); void evlist__warn_user_requested_cpus(struct evlist *evlist, const char *c= pu_list); void evlist__uniquify_name(struct evlist *evlist); --=20 2.49.0.504.g3bcea36a83-goog From nobody Mon Feb 9 00:20:44 2026 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 03B571A3156 for ; Wed, 2 Apr 2025 16:47:33 +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=1743612455; cv=none; b=XH03teiUXhjoHGKLp/AjSiJUa/GXB7wu/GXX+TL3UCSlJ7fxL67arLRyTHDrNFm9Sq2+M3moGaKOu2qQn9sSmgte2X/v6TS0yZRZQFUHBc/MxrKkxn4Kynn3NBmGqG2MICbZTIO3Vo9yWx4h8ZgweDH1jiFFDrhEFdU9XKDZkak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743612455; c=relaxed/simple; bh=WStuIdPt8lRJg1FWf8KPFEILp1PnsGADoTb7+XPTPCo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=CYF6qFUt16WXf2NHy0mj6g/g5sOSBLAWDEwgFXONCog5jDQQcrctC4xasXaPazRbLguf7kugRiRHT8OtnQWkA0p2l6jBBsInxkeeAJ/snnJHDVd8v0qiu6LpE93zoIsZqFR13VNtz0L7GXDV5z6AJk+UaFw0LlBuFaf7GRWGnWg= 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=dE+dlHNT; 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="dE+dlHNT" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-224364f2492so421705ad.3 for ; Wed, 02 Apr 2025 09:47:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743612453; x=1744217253; 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=3tDmbLrtoU9NWl61/Y1ycLMfPN40NbRlPLTERdTcD4c=; b=dE+dlHNTq3YirW3NFy8clKeJAAOzOtUAdAhbtce5yzaZJTvgjX5G+u1xdKrO2jpK7S 0/M5kPyQ9j9ghKkWLl9AnLV4vsR3Zku1iSZA+VpbtDtshEUnR6yaGaVo5KMMwr+uJeie SpGlWNfJLAv/PPeMZbu4sCqDAP2xW/Ch8vlApvsetWJANTrMZ1x63FhRD3E8EnWxVqOV QiYLzKW5pl2qLvvua07bwx4bUj1jvQio4aFi3oXxqxcjxg/wRXlU/XRKfgLKsqxigxG2 xMB1aUrzqL8PkC50c0TaqvmLz0JsukIjgLTC3GkK/17na6ppGUr4gNjZkn3eQ4b05YMy GrSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743612453; x=1744217253; 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=3tDmbLrtoU9NWl61/Y1ycLMfPN40NbRlPLTERdTcD4c=; b=fvF5kdkBM1/Yl/pCiYH0MxwL2ZIrD+TFg/MuHVQN+ZGiKAEUMm4Ql3y/OZgVyYFpPI BBvSZIzIYW6Zl9qs80bizzwkkZeznP595XZ/DFoYV13ucY/3Jow2riRqehG5AKUwGG8o YNNGjATpIGIMOwmdsieZNgYZNdx7Pqp5OeEXE36Nb4FYZcGV1SMlanzec/ZBi/YCHOMf nW6r3jgUjoyR/2khkKsesNnjg5SnkMzTlQ3eM3IOpZElw5nlavnVZLWznHo6fPGFS6rt M8g6i7l0SuC5nBuksQlC6icvFT6+uaX6QmfcaUhmw4AV8bjWJTO+nPTQARaNxTDmkLb/ VX5A== X-Forwarded-Encrypted: i=1; AJvYcCUDM+NSUDQniI9C+q8vpRA2PyPENQT/O5t/EbNN7gnnvUxyp2AVWm5xZxlpm5NiaXXaYGBBnQpq3S47wiQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8/KVKo8ev4YlOg2kr+Y17j4JAE2VRQa4VpRAJ6ivy4BpC60Jg y4DxjEgzQoksX47lrh9sELY0hMrUJZLjfFPAKMVCUdjxbNYnB79+hgoBa0l5MjdKLgcMhTjTfVB HXt8pZQ== X-Google-Smtp-Source: AGHT+IGIMigwhhEQhcpTdE67GN3lzf59G15dcpWYK309Deu8nT4TCreokRGg9L3IKZhgBwbjjUECr6htPw05 X-Received: from plsa4.prod.google.com ([2002:a17:902:b584:b0:223:432c:56d4]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ce81:b0:224:584:6eef with SMTP id d9443c01a7336-2292f9e8275mr302417375ad.41.1743612453276; Wed, 02 Apr 2025 09:47:33 -0700 (PDT) Date: Wed, 2 Apr 2025 09:47:19 -0700 In-Reply-To: <20250402164720.3847573-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: <20250402164720.3847573-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250402164720.3847573-5-irogers@google.com> Subject: [PATCH v2 4/5] perf evlist: Add groups to evlist__format_evsels From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Howard Chu , Dominique Martinet , Levi Yun , "Dr. David Alan Gilbert" , Andi Kleen , James Clark , Weilin Wang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make groups visible in output: Before: {cycles,instructions} -> cpu_atom/cycles/,cpu_atom/instructions/,cpu_core/cycles/,cpu_core/instructi= ons/ After: {cycles,instructions} -> {cpu_atom/cycles/,cpu_atom/instructions/},{cpu_core/cycles/,cpu_core/instru= ctions/} Signed-off-by: Ian Rogers --- tools/perf/util/evlist.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index ffb5be41a465..6ebe0795e1c9 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -2471,13 +2471,18 @@ struct evsel *evlist__find_evsel(struct evlist *evl= ist, int idx) =20 void evlist__format_evsels(struct evlist *evlist, struct strbuf *sb, size_= t max_length) { - struct evsel *evsel; + struct evsel *evsel, *leader =3D NULL; bool first =3D true; =20 evlist__for_each_entry(evlist, evsel) { + struct evsel *new_leader =3D evsel__leader(evsel); + if (evsel__is_dummy_event(evsel)) continue; =20 + if (leader !=3D new_leader && leader && leader->core.nr_members > 1) + strbuf_addch(sb, '}'); + if (!first) strbuf_addch(sb, ','); =20 @@ -2485,9 +2490,15 @@ void evlist__format_evsels(struct evlist *evlist, st= ruct strbuf *sb, size_t max_ strbuf_addstr(sb, "..."); return; } + if (leader !=3D new_leader && new_leader->core.nr_members > 1) + strbuf_addch(sb, '{'); + strbuf_addstr(sb, evsel__name(evsel)); first =3D false; + leader =3D new_leader; } + if (leader && leader->core.nr_members > 1) + strbuf_addch(sb, '}'); } =20 void evlist__check_mem_load_aux(struct evlist *evlist) --=20 2.49.0.504.g3bcea36a83-goog From nobody Mon Feb 9 00:20:45 2026 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 05B8A1ACED1 for ; Wed, 2 Apr 2025 16:47:35 +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=1743612457; cv=none; b=jSsql2NMJbnSN0hGEl1VhS4NjN8KuIIVFXQkF0bIlIH5DUrzbt4qIKMq7J9RPGkP3M/vXj5oN2kdKSkLJ3dv3Lv4g9HqDXc/fma5A4n3Ls3OPglURCbitvJGeJ2m75ssOV/b1cZy9LSSGAYGh4HqwJU+H+rwf/GL8RHNShuKp98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743612457; c=relaxed/simple; bh=IoNk4f+pHHqP7GqFc1Z3S9xs2ShDQotfi0G7WwroLJk=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=tWM2dWLRbGPWNxo3yjoEVXyhkt/8dRbmy/QDykQG3L3ynrJfarMBd0TYIy4G3MfbbASin/JPvSTeJviZLcQaHyt4C3cz0YhiQZ7XhCRJ1gj/OE464oTCOrQceQ/sCTezdwi4zLpEhpDuBqeTAr4A0fNLOqM4u8+6unEcOJTf1VY= 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=nIzUNnJT; 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="nIzUNnJT" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-224192ff68bso485285ad.1 for ; Wed, 02 Apr 2025 09:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743612455; x=1744217255; 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=+2uO9pmTjsejVD/zY6cyyd9PztZvdMOJJd4Zz+Pr1QE=; b=nIzUNnJTWSdpDMFyTDHhB7gcUH9rCFZk+/7QenY86iTiOxH5lktBr7V5eiDgkVDwKT 3hEVHfSQpPlEFDclz9/Fw/7mooxmB/wdy2d6pmX3WkH7z1msTRAA/Lz351qgwHRomoZG ZKeWiLOGgeirjOmiv9rMrgcx0r2skOXV3pEN6JGCKBtMxFzQUEkBlzuZGY1lMCTJi/WB oC4QhUnzLMicP3ex6m4oyZmDEkWxdcsF1YbEyiDVjbviNLLwk2sT7pfidLU4JTFw8HKf 9GHwdSqFLoQivgvjnUuLqnUI+uGu1icNU+HgUouk6T3wZh2FCyBve7aDVMHJZQ36piEL 5RTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743612455; x=1744217255; 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=+2uO9pmTjsejVD/zY6cyyd9PztZvdMOJJd4Zz+Pr1QE=; b=v7KHB54T0XVOuN97XMkcccQRN/dA5NgHLpG9BH6Dz18m8/8ZxPqUVpyp/zYGrcvctm eQ1StYdqYJbjfedMWiiH2WnOW1oJss0kWfEFfnzAD0ag7DFhgOeS/JFvdJvSKEiqyKuo /nagsS0qOm5ieosNCkRzsFih+7B3WZtfjar0bsahrPRQ7jsRTwfD4bUwDWrywSZshJ0f AV/bj+MX1INZcvjprdEFY4si4GIypaAQtT+biERU/bdOCOcX5GV0a6yKRV/OlqSSffdv 2iEaKpAR/xeKmYwipeApZnyKm5cHBpBe11yP+Mvs1EzHwvaKRwe7j+OvdSz1wumKnVIv PA0A== X-Forwarded-Encrypted: i=1; AJvYcCUle/Dajoya8lzmgqdl4gf7r/qjGvdWEIH6vAxOIKdjdGeauWio9g7JuwusHa99fjnKWGlv3MWzBy6jgtA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz9U4V919Ivts9E9/RqbRCzlZoJc/U8OLsz8tTXXgIa/JRfrPdP g0wbxXva1hvfWa9yhXB2qKHlmvwPemQheceJSmqfHA5N2GIP+EIRJi8VmeDn3XUFEX6n93lQ3Vo lPfodHA== X-Google-Smtp-Source: AGHT+IGzG/3y+ietfy34xtDoKHmB1Af67pToNGHEdvk/vvMUa8iuexUCdCA+6jNAoMtTewR2ka6+Lq6tSf3v X-Received: from plks2.prod.google.com ([2002:a17:903:2c2:b0:223:49cb:8f99]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2312:b0:223:fb3a:8647 with SMTP id d9443c01a7336-2296c8606e2mr41385685ad.41.1743612455185; Wed, 02 Apr 2025 09:47:35 -0700 (PDT) Date: Wed, 2 Apr 2025 09:47:20 -0700 In-Reply-To: <20250402164720.3847573-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: <20250402164720.3847573-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250402164720.3847573-6-irogers@google.com> Subject: [PATCH v2 5/5] perf parse-events: Add debug dump of evlist if reordered From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Howard Chu , Dominique Martinet , Levi Yun , "Dr. David Alan Gilbert" , Andi Kleen , James Clark , Weilin Wang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add debug verbose output to show how evsels were reordered by parse_events__sort_events_and_fix_groups. For example: ``` $ perf record -v -e '{instructions,cycles}' true Using CPUID GenuineIntel-6-B7-1 WARNING: events were regrouped to match PMUs evlist after sorting/fixing: '{cpu_atom/instructions/,cpu_atom/cycles/},{cp= u_core/instructions/,cpu_core/cycles/}' ``` Signed-off-by: Ian Rogers --- tools/perf/util/parse-events.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 5152fd5a6ead..0f8fd5bee3a7 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -28,6 +28,7 @@ #include "util/evsel_config.h" #include "util/event.h" #include "util/bpf-filter.h" +#include "util/stat.h" #include "util/util.h" #include "tracepoint.h" =20 @@ -2196,14 +2197,23 @@ int __parse_events(struct evlist *evlist, const cha= r *str, const char *pmu_filte if (ret2 < 0) return ret; =20 - if (ret2 && warn_if_reordered && !parse_state.wild_card_pmus) - pr_warning("WARNING: events were regrouped to match PMUs\n"); - /* * Add list to the evlist even with errors to allow callers to clean up. */ evlist__splice_list_tail(evlist, &parse_state.list); =20 + if (ret2 && warn_if_reordered && !parse_state.wild_card_pmus) { + pr_warning("WARNING: events were regrouped to match PMUs\n"); + + if (verbose > 0) { + struct strbuf sb =3D STRBUF_INIT; + + evlist__uniquify_name(evlist); + evlist__format_evsels(evlist, &sb, 1024); + pr_debug("evlist after sorting/fixing: '%s'\n", sb.buf); + strbuf_release(&sb); + } + } if (!ret) { struct evsel *last; =20 --=20 2.49.0.504.g3bcea36a83-goog