From nobody Fri Dec 19 19:16:14 2025 Received: from mail-dy1-f202.google.com (mail-dy1-f202.google.com [74.125.82.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 0EFF82D9787 for ; Wed, 3 Dec 2025 21:47:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798434; cv=none; b=HONFM1i7w1IS8oP13825OrqahxJ2HpwMk2MW6pkjLpDsOal9TrMGGFvdKN8hmIWqU0wDuMX0JP1j34IXdl0V8vyzfTrGvI+bOkq67KAgjIjo9BpO9ALEuJQzbIG9ftXGQy4wKT5DHGRXn0uQwYO2DgdvkjvYz+tQAc8ZPT13KCo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798434; c=relaxed/simple; bh=gR16hXUGmvBYon0NXkKR6UIc51eic/vdJdsFwlnfBmQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=GlpzFDf/B/np1l8Q3Z3rVy3uNvMT7n5OIkdcAXHuRiMRQNIwj11OAC7xFrpDGDywjspGkYOlIIJUX1c1nML83n1yUCs3V0cB1aXNnmSY+kLrWVObs1LVkZts7JyhsiM/5TXF1E0lN7+c3XQb31oXNHI3DtyJOnWrYUPjoCC+Ju8= 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=EuQYnEEo; arc=none smtp.client-ip=74.125.82.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="EuQYnEEo" Received: by mail-dy1-f202.google.com with SMTP id 5a478bee46e88-2a467c4e74bso1946055eec.1 for ; Wed, 03 Dec 2025 13:47:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798432; x=1765403232; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=0JLDB1+Famcj/1uPLs4rB9WCCpUFUNy+DKkLH/GTWVU=; b=EuQYnEEoYR/aadRRh9mHXpXFwYPGTK0RRSgEVvj7uI0Ug7WJpizODd3TRzm8ySSSJI bURS5zam3vbdSmbw9bXCndKQkhMUywo8Cr8SVdcGPcxLc18vHhPrgk9vX7byD6JtllsZ sLeuySfsNGuLFvO10RR3eB+t6+lKrwqaPA9CxmEdINKkH9i7tq9S+1+z0ToT06IsIuet WtIjLwMICDVdHiIkwPDVZvmEP4pXZA9v7awpPF0dlAqr8a23ewTP0O70XSnnZNlrLMYf icYxK2Uwq6BMLm2LIxMP6oFpWetHq9dIKbvGQZVae4mnM9y8putQi0reQtxo05aSwC6/ 87dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798432; x=1765403232; h=cc: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=0JLDB1+Famcj/1uPLs4rB9WCCpUFUNy+DKkLH/GTWVU=; b=CLH114YZPjs3CTgzSrmLJRpgGNw5TVNH0sAMv7btvKafYwXZMLCKfTiTUb0aitPm98 /dHA3YwIyWVzbmBp7uO3reSUpYmXHlwq1k6KuE0hIhqc8p9R5Vz4bXY/5ba3tNQ6NdEv 0GqMlcjrRj02MtlmEYMy6Usp6m/qdzrWaang6s5qTVUWIjGErQq6ISWKfBlgfv8t8Hbc pRCJCNIigbTJ5AmtwL6vyb3nSyvg887EzP2aPUU5bXdgmfMvd2tMdBB9rKRX6DvG+n6T 2Uq8rY1ljwNcufUWujaLQaScZl4RmHQHKO/PmUtJzoUDExfNrOoCsAThQzVteAAWdEkV LARg== X-Forwarded-Encrypted: i=1; AJvYcCV1MbAOeD9EBN4BPC+IRmYr/2O7m55YS9uVmqy5NAABp2Pw5HZ93mwdMAv0hUaDavN3pMIozxuECBiuw2Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yys5DPh1u88vzZo5s7LHg8IlQbdJ3rDuPOmCYAb/sHPMIbX1VTV 4flZMzY1c69nLtC7zqamp36ArAWW8Nf2Kg41v1Tf749F4xBuA6ky30RsDoO7G2tCjw6Jn3Zypxm 20Hw1Kgp1Ew== X-Google-Smtp-Source: AGHT+IHu/jj6pSf2/OU7jAgX2yW38AXdSzMKTldoaWwQfMGHkoQ8ENZUp5NPZM91LnGiAdpVMi15XVZwV4So X-Received: from dys5.prod.google.com ([2002:a05:693c:8005:b0:2a4:51e8:c5c8]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:60e:b0:2a4:3593:cca7 with SMTP id 5a478bee46e88-2aba3394a44mr812863eec.4.1764798431987; Wed, 03 Dec 2025 13:47:11 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:00 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-2-irogers@google.com> Subject: [PATCH v2 1/7] perf stat: Allow no events to open if this is a "--null" run From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It is intended that a "--null" run doesn't open any events. Fixes: 2cc7aa995ce9 ("perf stat: Refactor retry/skip/fatal error handling") Tested-by: Ingo Molnar Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/perf/builtin-stat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 5c06e9b61821..6410115ed9c5 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -923,7 +923,7 @@ static int __run_perf_stat(int argc, const char **argv,= int run_idx) goto err_out; } } - if (!has_supported_counters) { + if (!has_supported_counters && !stat_config.null_run) { evsel__open_strerror(evlist__first(evsel_list), &target, open_err, msg, sizeof(msg)); ui__error("No supported events found.\n%s\n", msg); --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 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 BD3342DC349 for ; Wed, 3 Dec 2025 21:47:14 +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=1764798436; cv=none; b=LdSl414feRpFXLNZGWE55ghbQdqChKNc1yDBAaT/5IXgkEYawvdyYbbn3NdT504nNqlABWjtD7tX0ZBrLYoGzETs3TZcQUaAVgx20PQQAY5AJJBhvZ9uNUFMvO9X1p5jVW08BbVX+VY5UDZNqv9Nqw3LB/9xiICPbO/kniBRmmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798436; c=relaxed/simple; bh=RnRkqXZ4JTrwCm2Wz2Zuk8jh3jbWrplurAPzXjoLNRs=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=mawQIRLZGf6CuTbhw7pxHgvh808YKbpkCLFyysWys4Y9DOEvBIaiderGw3S8t7AYM30Ys9NymaGIqixxJo4Uj3krJpGx2yOWHt119vW/8y4Hogbk4LiEYxQaaGjQvg/2GqVDz1c4n7QGS1NhvupClFD3Q62UGTZvaFL2TzssZrQ= 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=B2OugdYP; 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="B2OugdYP" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-bdced916ad0so356379a12.0 for ; Wed, 03 Dec 2025 13:47:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798434; x=1765403234; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=eOcSMNeJ/ZMXLpzeMBUmAqAigtJI1TPFFdhHf8jwosU=; b=B2OugdYPk/CQs+p3NCdKT+0vV5ZMaghUiPdabUb+M2wBGuTnmSo7R1z8SzAQJ0B41Z iN50Hxh2FebPyudNLMp9NAYuL0IHoxYwj55lSlWp5wzR9zYzxZy7bUzeaaZqjn45N5MS BBeVQQSgL/CWjxC5doLFS3PBT/QeW6+6BvWeO6P1+EmafzxbXPkiip85/quby+9h/QFQ XAJGJMLrVYvRM5/Ye97hSLGSAopG4r9KHvccWPjAAxXi18ln4XPAUT0Llme8QDZy+m/i Rx3atFvrX+ptxVDdsKC7b2BsBYtPTVNUJKMdppSCjoL/0fXIYxIMNLLYjA6jWjQxTCV0 KFxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798434; x=1765403234; h=cc: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=eOcSMNeJ/ZMXLpzeMBUmAqAigtJI1TPFFdhHf8jwosU=; b=HsF3AiLIeiyeAHZP27dfu4mGE0dgAj0bMfLCPWm5h50tmLYPIsiME9ThDCzyj+bIIx lk8T+r6NS0XPK1FKKDNtWLSI4TUZX/kWSLneJMsL9/xCL14JNt6DHsRBiAOVq3BbcXdn xhmijEgfZYIOe/7S0kBawTCwRHJ0fD7paCpT+UDCGIwEpzceJem31yVcHUQvOAWdqcIR Obu/7UlEBvdQS41B5v7kO/gIfmIr6avAIOp/euapQxQMYHYp8aqIUatdMnNMWMhnhNCt y0WelpGNIpDGdd5u3Yo5mDyCeaHyoVSSm5Lz9J09Wz5g7bCDIjyTwAQBEqsW24WRobQo nfsw== X-Forwarded-Encrypted: i=1; AJvYcCVi0eg9mKWyoR1TQQlTv5EjV9AJS0nUCXWdTlAdSYE8i9RhZRRbEx20s/mQqIjtM99QauNTGzgXY9QpH4U=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1kWirFQmJclXjdubuertERDpm+otYZyLYWFhyryIpPZwiqO3S osq25NZHJbGU3xRvWpTI/NEG3VzgV7VF+Mg78Yt4nGUTFsw2SiWmFa6Q9R2NeOql3NjqkmQWW+c CLmRREKme/Q== X-Google-Smtp-Source: AGHT+IFm5eUCWRwz5Nfygqjtwh5PieLN6MVOHBcL6m3z8SCNLQ9bZBKQIdp75woC2gQZxpW8S+MHehpUntax X-Received: from dyjn15.prod.google.com ([2002:a05:7300:a8f:b0:2a4:5a4a:cc6d]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:b0a:b0:2a6:d0bd:4a07 with SMTP id 5a478bee46e88-2ab92e52960mr1991364eec.18.1764798433998; Wed, 03 Dec 2025 13:47:13 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:01 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-3-irogers@google.com> Subject: [PATCH v2 2/7] libperf cpumap: Fix perf_cpu_map__max for an empty/NULL 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 , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing an empty map to perf_cpu_map__max triggered a SEGV. Explicitly test for the empty map. Reported-by: Ingo Molnar Closes: https://lore.kernel.org/linux-perf-users/aSwt7yzFjVJCEmVp@gmail.com/ Tested-by: Ingo Molnar Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/lib/perf/cpumap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/lib/perf/cpumap.c b/tools/lib/perf/cpumap.c index 7e88417ba84d..4160e7d2e120 100644 --- a/tools/lib/perf/cpumap.c +++ b/tools/lib/perf/cpumap.c @@ -368,10 +368,12 @@ struct perf_cpu perf_cpu_map__max(const struct perf_c= pu_map *map) .cpu =3D -1 }; =20 - // cpu_map__trim_new() qsort()s it, cpu_map__default_new() sorts it as we= ll. - return __perf_cpu_map__nr(map) > 0 - ? __perf_cpu_map__cpu(map, __perf_cpu_map__nr(map) - 1) - : result; + if (!map) + return result; + + // The CPUs are always sorted and nr is always > 0 as 0 length map is + // encoded as NULL. + return __perf_cpu_map__cpu(map, __perf_cpu_map__nr(map) - 1); } =20 /** Is 'b' a subset of 'a'. */ --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 2025 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (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 64C4D2DEA6B for ; Wed, 3 Dec 2025 21:47:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798442; cv=none; b=UJfegv1kVS4iNK3AB90LpB7cjI5JFQHojxzTQJZh6nmcrhqvSWVT+XqBRx95b4F0kWCF5kK0429F06unAjKUsNVTi8rT1HM/HeqP++sOabChDZy8+r6sjd5Fb4EVkkn1Ppvm/bJh9/oKfdiakzm08gaW11ZNGd4Ki3kNY0kONGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798442; c=relaxed/simple; bh=Kyld/TH14VvFTwm+4dZFdkYfKcCb+2QzuTXq2FWHP/w=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=o1t3lyWnBzADvaz/VC2Ilgdw2bByFL5q8tW0zjX3xsZSyBf/CER0n6IQ4iJMOt3f2fCq3tsOQCtaFLslJQTvMztXnNAN9nXrHpdV58XkAzYhIrTU7KKvuPVnkabrPXHgYDgbLa6y6V1/WFlCPvGDyota4J8DtUDElAMjg01AuQk= 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=RvfxAOeG; arc=none smtp.client-ip=209.85.216.73 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="RvfxAOeG" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-3416dc5754fso306732a91.1 for ; Wed, 03 Dec 2025 13:47:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798438; x=1765403238; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KVrVKz8Lai23YOYMICxCQxi+2iTcn8EZtLBh+0CJH0s=; b=RvfxAOeGQ0re1jP26AG3sXrU/l2KOP+ovky8ou4MGERPo3PBAYCg3YRzlJSuiCtoM7 VFYHi3ZzllZuICj6Y9LGhJTPQj4w2cOdoNO05eHt3kaGf/TKRv4MqIh0P0jSin9WsI3D 0vPIF3zm44IfD2jgPchqOans/CcNuQjUaIym6FLhRjrjO4s2SqxddJL3u+sYxPCu2hCs b1Fw0geNaYsYGd+NNT5TgplA6mdUu6seGI00X9ATi5BTDlwnG2HYzJUhtigcMLuaJ9Mx Lw528NAUDylUDnvpzVpdaPG99gkHfheJvleXBj03ozU7Gk4TotjfbR94K+p65T3cueRx pUFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798438; x=1765403238; h=cc: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=KVrVKz8Lai23YOYMICxCQxi+2iTcn8EZtLBh+0CJH0s=; b=ojYpG31tR9I5vU2vctVgCqv02Zjt9SycpBqmNJZD/y/S+9kTen2KER+fN1pUi4zbf8 kuQuhTz+k2+ey6eA1z3LtOobpjdipF672x442Jt8+mfcNSYQjkEV4m9g2H72/j/PjfkW mH3zwUGsTczTfHsKi2OKsq8jvwdiKY+GXi8y3txZWBO4l2bQ+mtsrISf7CD8jnwz0L8l aQjkAWfDv78yqErRGtWjqiMyxBIpUK2iG3elPeONOpmVIbtY0Iqf1C/rWAV0Ft1Lw/Ur Y3pvCSqK6XsaEOXGP8dMsPXw6jOindkthao5DDws3lqgWAgCW9+NQ0ntfoGipOc8/yTU 7KOw== X-Forwarded-Encrypted: i=1; AJvYcCUvhDBbrFxNqIOS9PdxtSK9qE7V0ZCuJJoAc7icn5E0QwbTSbA7F20hsclNmMadd1f2qMJSv1tNW67x6ZE=@vger.kernel.org X-Gm-Message-State: AOJu0YwNiRYsIf8yypbW36CnQpwGwJqRXLgfhLA3fFkVXKqQ2B/pLQkd EBPqKBz52wZ1MrmGp89HQnAbR/yyEV+bjOBof3wvhRBuUq8ZxsfsVfnISPgqbdUd6/fqRYMbSHT q2KetJp941w== X-Google-Smtp-Source: AGHT+IHQNalAFA0VgFKH+HuXt5tSRXPCzbxo8ZyVDg59kZ29Ina+YFWr1q9VEzg+9t3xXETcoD2Qq+FkDeUj X-Received: from dlii30.prod.google.com ([2002:a05:7022:419e:b0:119:78ff:fe16]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:390:b0:11a:fe6f:806a with SMTP id a92af1059eb24-11df0cc65a1mr3127815c88.31.1764798437402; Wed, 03 Dec 2025 13:47:17 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:02 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-4-irogers@google.com> Subject: [PATCH v2 3/7] perf cpumap: Add "any" CPU handling to cpu_map__snprint_mask From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If the perf_cpu_map is empty or is just the any CPU value, then early return. Don't process the "any" CPU when creating the bitmap. Tested-by: Ingo Molnar Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/perf/util/cpumap.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c index 89570397a4b3..a80845038a5e 100644 --- a/tools/perf/util/cpumap.c +++ b/tools/perf/util/cpumap.c @@ -684,16 +684,21 @@ size_t cpu_map__snprint_mask(struct perf_cpu_map *map= , char *buf, size_t size) unsigned char *bitmap; struct perf_cpu c, last_cpu =3D perf_cpu_map__max(map); =20 - if (buf =3D=3D NULL) + if (buf =3D=3D NULL || size =3D=3D 0) return 0; =20 + if (last_cpu.cpu < 0) { + buf[0] =3D '\0'; + return 0; + } + bitmap =3D zalloc(last_cpu.cpu / 8 + 1); if (bitmap =3D=3D NULL) { buf[0] =3D '\0'; return 0; } =20 - perf_cpu_map__for_each_cpu(c, idx, map) + perf_cpu_map__for_each_cpu_skip_any(c, idx, map) bitmap[c.cpu / 8] |=3D 1 << (c.cpu % 8); =20 for (int cpu =3D last_cpu.cpu / 4 * 4; cpu >=3D 0; cpu -=3D 4) { --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 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 9CF132D97A6 for ; Wed, 3 Dec 2025 21:47:20 +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=1764798443; cv=none; b=TDXd7Roll7tkTFubURUSMdxU9qcc52OYWSJmvOy3+Df8Er+H4hSg4rgSnvp7CTPIRIJyk/eLuGXWRGzp12NqFWwMHna4m6JaW+Jejmcq/944uk93kG3fp9fJJq13OlZOgHTa35An2AH2Hl8ewH2mJDXiEJ9dEgNSKAYKl4GFYdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798443; c=relaxed/simple; bh=7EIPkt57mizIcizq27oR3v0Xbaf3b0skd0mBiDbL4lg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=qko8MPNLVOosD0MWTS1rqMIHZNCOHI6X9lN4Cu5mjZKa6IQDU341dJKaQfrAALUoR8cb5BQwUWZWgrRMbZmBPsuK7E0Xn1qMqoBHm/uK7BIs3Qesk2qIYqjQYfQzp4TpjUrdgoQymvpT0OZRLfIrZzcJWvv5PlCBaFN6j/phf8A= 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=4k9vtsWN; 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="4k9vtsWN" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-299d221b749so4608655ad.3 for ; Wed, 03 Dec 2025 13:47:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798440; x=1765403240; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=waFYuL17oCw/gfl7ThqVJ2njN32XU6ljeSvAGuXSYL4=; b=4k9vtsWNBzcHrgUU3LfJi2YfXvSXHjrA/v8SE25b2KZO0TLQOHT5/9E4A527EkuSgC dZwcPTZJLjbej7bMMZD8afEy3jCKjj3Ukq/Tp1FuXdI4IV89dIQDrP7TqpQFFgJT6gRw +SggGq+PqQVWvh7I5BtVqPciJf7UoypyBVIvT6fNDKNUtysTvGyN1OBwT0WgYFd7Plnp 5bfoRjMQtd2zJzPxIosJNyKvUh3d/jDkKr1txsVzshLWgmIT8dgfuGTHsajrHGaFxY83 fZjPLB7arpb8ZAVmQglG4DEApRdhL3b0yfv/i9jx73Wdccu89fZa3iP4LKufpAg0Shwo YC0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798440; x=1765403240; h=cc: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=waFYuL17oCw/gfl7ThqVJ2njN32XU6ljeSvAGuXSYL4=; b=K0nUB7CSl6sXXETg+n1qL2evuUaJFFTPW7420952MmUWYG+pkRx2aHmaQ4R3HLcOef Gnk9fk+z2fU2aezjVpOZVjbnsRh6HY15qvUnrFsQRjeQGt5bG1nz092J57TnQTpE5sfl sF6/HYvB5m4QV0iwLwsnTeCHgYMTvOmns9QeJGS4w3kc9lZKCFoqmtZo+4jltX+czbCI gh63mYX0WYTaMY+w916A3OeDxo8l0iyrN27+cf7ncYybbPXOQwFoSMFjHr5bqdNtaqvV ZqhyrlqlpVoGBGgG9bZHsnGIsb5GtYVi/GC8ZRsyKdoXBQXK1cDC+EMh3radhuh5TXUz +zxA== X-Forwarded-Encrypted: i=1; AJvYcCWwSCiKol7VYtkQTc10uLa0GwBOJv2wghiHE7naxOXkY0cdxk40uxXR/WNi5/drAdnX44iwRvOqdfDYF0Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzOrokZMD33zKp10+H2fkTAb8kNrcPZjWOaHsO8xMS5QCxByxED vCJCtc6wJbG+WqfLQCOR2QRjtgLs6qTLA3DHThWqOMNUHAsQQ3wNWyDaQ8/HyaQN6AZYCz3t2sX fHBjbXCDrRg== X-Google-Smtp-Source: AGHT+IGVgYUemMQSQM+Wr/hzm5JJaEabH1iCca9VsSm++HtRNgqmw1d8vrPOBIlEK2BPXIh9yyFV1V09gTzS X-Received: from dydu18.prod.google.com ([2002:a05:7300:51f2:b0:2ab:9be4:b136]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:693c:8202:b0:2a4:3594:d54e with SMTP id 5a478bee46e88-2ab92e88b27mr1994859eec.27.1764798439706; Wed, 03 Dec 2025 13:47:19 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:03 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-5-irogers@google.com> Subject: [PATCH v2 4/7] perf tests stat: Add "--null" 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 , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Ensure "--null" does a minimal run. Reported-by: Ingo Molnar Closes: https://lore.kernel.org/linux-perf-users/aSwt7yzFjVJCEmVp@gmail.com/ Tested-by: Ingo Molnar Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/perf/tests/shell/stat.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh index 985adc02749e..7885e875caf4 100755 --- a/tools/perf/tests/shell/stat.sh +++ b/tools/perf/tests/shell/stat.sh @@ -16,6 +16,17 @@ test_default_stat() { echo "Basic stat command test [Success]" } =20 +test_null_stat() { + echo "Null stat command test" + if ! perf stat --null true 2>&1 | grep -E -q "Performance counter stats = for 'true':" + then + echo "Null stat command test [Failed]" + err=3D1 + return + fi + echo "Null stat command test [Success]" +} + test_stat_record_report() { echo "stat record and report test" if ! perf stat record -e task-clock -o - true | perf stat report -i - 2>= &1 | \ @@ -212,6 +223,7 @@ test_hybrid() { } =20 test_default_stat +test_null_stat test_stat_record_report test_stat_record_script test_stat_repeat_weak_groups --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 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 D19C62DAFC3 for ; Wed, 3 Dec 2025 21:47:22 +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=1764798444; cv=none; b=UxRaNFNtIZlCrf7res3GMuG3e5628pCAQ5DmHcxcpQ+gwQlKjPGJoNtY7kReybVlY0luhUo4OhgfisTrw1EUy3ZfvOHt6Kel9jpVy70pfg9D1yMLX+kgk32TIlPlK/GCowlYvERg8kCrvau+PnM0t6lqC9s3mSUbxjWYk3+XCbw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798444; c=relaxed/simple; bh=rCDV+3XVuXJlJQb0sFK0j2R1k8EuktUog2utuwzxKNc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=MFimAAZGI2Cv5dtQXOZwz9dDI5NjWq4j4v0JJEVd6DWsrcz17X6AgjWC+YKeH+AN8r53oXDS213CaX7KFfuAvIfFvvSjDOIKgrVhp1J3St7i8XvCmaNiCI72kCB35laGxx0f6Q8Or9lUSn5g8YWX4a2yM39yW9o2rLEXjrRx/04= 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=1XhuY+qW; 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="1XhuY+qW" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-bc0de474d4eso418466a12.0 for ; Wed, 03 Dec 2025 13:47:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798442; x=1765403242; 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=Eo+kFEEYhTtGZ8S2xC5G3JMQxS58EmO+MrIvA5H8Swc=; b=1XhuY+qWKDDD94ypPW+YzSuUHQ8XXHcfN1ftpoOCb6otTEy6aHPbaH155S3576Aryl 7B4m6iQaSi3jQFTe3SE7ogaZSQErVgccFNOYJKnfZGA2AjLa9fBEfOxxiIqny9KLjcAM AIiLsJ0phFZ+Mij+sV5UMkEATlakm9slT+JtTqPCWAe3QsRQM7CzOJbdgDMnw2OVGMKz E7JhVyRhuhv2ETOHeGCkT/HLKWbZCjWi5X+EQ3ajCHk4mEXoqH6z/zHgo4ARPMOG6dFP 9zkf1nZbXFyc+TM/QSFM4Yw0hTEfso6VfC3gee2PFJxGegeY9zq07Ta0GOoXJNEbzDsp ToOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798442; x=1765403242; 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=Eo+kFEEYhTtGZ8S2xC5G3JMQxS58EmO+MrIvA5H8Swc=; b=ZnCEsrcHTSpxRFO/QrcboSSkZ9uFOGoxEFqOXWwCl51vYPBSb0y4DsvXfod7TbTUst b+b+RoDQvZUyXg7A+FKbSX3pl389ieQvMWcURyXCN6d/vgRJiO/9Qp0IE8pjY+VVe7V+ HSuEwIeLxgRx8+fr+GycMRiers2WqIup4lJRATgmqy5SC9XhArMXfNZlUQOmHQkq+v82 UJWr2mKaJ0vtGsGksmFrgNh29YkWtQNGmqHGpJUFC0AJJoJJuT+3LdEuV6pOOxnS9B0X 64QjjINQYXGBHL5u7YzUdeq7hMxUIpUGRoA9o/almIj17CmDJvW/SXG7C8OUsNNxABld xxJQ== X-Forwarded-Encrypted: i=1; AJvYcCUc9vrjKFz3rgUZkXhxXNKCiQsyG1dt5/LxMpQ7DwThGI5ZqzsstUO8zl10fRHaB5D1rbFvD9RT5adN9jA=@vger.kernel.org X-Gm-Message-State: AOJu0YzQiv7ZMfRfiQwHjzOFF05m2PkjAXke3nm5MI9ACsRoo6RgfF0H BGqYgm2myJGhEz8XkwTlUWVQNA51NcTtsoWcbbXzvPDaG4iW1OEsfIA8rt0jO7PP5kDwf9SVyZR vYSQQcNICZA== X-Google-Smtp-Source: AGHT+IHhe6kRQZx177bgCgxvMbSS9SftVF+Bm/qVvJrVFF8Tsu5NAx3LcXp7XVpP0fOBqaUyYQBGvjc1lKmz X-Received: from dybgh9.prod.google.com ([2002:a05:7301:9:b0:2a4:559f:7c4e]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:d024:b0:2ab:9e2d:a466 with SMTP id 5a478bee46e88-2aba4235517mr639323eec.12.1764798442027; Wed, 03 Dec 2025 13:47:22 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:04 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-6-irogers@google.com> Subject: [PATCH v2 5/7] perf stat: When no events, don't report an error if there is none From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Events may fail to open as no supported CPUs were specified on the command line. In this case a confusing "error" message of "success" can be reported. Let's skip the error in that case. Before: ``` $ perf stat -C2048 -e cycles -- true WARNING: A requested CPU in '2048' is not supported by PMU 'cpu' (CPUs 0-7)= for event 'cycles' Error: No supported events found. The sys_perf_event_open() syscall returned with 0 (Success) for event (cpu/= unknown-hardware/). "dmesg | grep -i perf" may provide additional information. ``` After: ``` $ perf stat -C2048 -e cycles -- true WARNING: A requested CPU in '2048' is not supported by PMU 'cpu' (CPUs 0-7)= for event 'cycles' Error: No supported events found. ``` Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/perf/builtin-stat.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 6410115ed9c5..bd3c3de8d200 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -924,8 +924,10 @@ static int __run_perf_stat(int argc, const char **argv= , int run_idx) } } if (!has_supported_counters && !stat_config.null_run) { - evsel__open_strerror(evlist__first(evsel_list), &target, open_err, - msg, sizeof(msg)); + if (open_err) { + evsel__open_strerror(evlist__first(evsel_list), &target, open_err, + msg, sizeof(msg)); + } ui__error("No supported events found.\n%s\n", msg); =20 if (child_pid !=3D -1) --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 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 1F37A2DCBE0 for ; Wed, 3 Dec 2025 21:47:24 +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=1764798446; cv=none; b=H7gzJsOyqeYyabPU2WiX0ocX+bKjDaO6ug3Ll4z3BmHzf4FlOo0+la35gfFvgCVkuOrAI+DHxsytb/UFJyd4LjajrJor29nECmzryFbny9b6GHEN7KaHGNjDlVJ1eAAnhHtFUlNiwHt5s/s1JVmaLUj5sMr+9m6onOGmarDoNAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798446; c=relaxed/simple; bh=Gx3JjXPhyf4K31F1oSQwVaIDiiuTokaWZT2VKxSeKlU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=B5JbH0zwUg+0AtIT6FUF0jfWuF1SeuWjfRJruU50ztkZ2lLfxhrA20FMQEoR5tK/ELZPdbBBP+anmg4XlXu2dDHF5tgT668e54+ozGy1oewtolo4GYXsThj03gOISiSRLzZE7uqMPO/ACJxEEUsrhe9tcPx0FdfhGa+ZN2STMyI= 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=tI4GGQM0; 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="tI4GGQM0" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-bc240cdb249so195657a12.3 for ; Wed, 03 Dec 2025 13:47:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798444; x=1765403244; 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=cl5+8xbClVweIwNwbXuJK+Q4qhM9Nu7TLMnqmk8eKXk=; b=tI4GGQM0LcERqu5GoBHJmVW9dOAMYJtH0FhvLy5JyWyeQ2fBL8VOwXJke4RvjwyHfK JO5uuYnX5CWXvdk5BFsUlB04BQinqUY0ZRtX7bCR6GtYIM8gaLlekZFOwB/g7uFdwXKs ui0rxL3FwR1P1FbZ2Tu8BiEm+Zvmq0kIELovkXsd+k56LEyHF7GQLn7kNFcn/5BWfuwt VvH1u+sUEjH4dtj26rSDif1MKV9TaTV8GBRtEJDBG2LF7mJeZiNNsL27BbX/0mJHcqBB BF2EkXXi4iGn0XZXY3Re+JAv1dHMU3bAh1T6+TMQhWezmg1UAgZtLBnFSCkc15s5O5Jl HAlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798444; x=1765403244; 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=cl5+8xbClVweIwNwbXuJK+Q4qhM9Nu7TLMnqmk8eKXk=; b=LAz8pPF0MVkFWJ7B4S6QfHE9n8khlyEfmXWjsbfpWI/lOGgixlXDBEWqqA2q4E+lYd XLmVYMQg+gyPo5uxBfuMNkxaG7MBsjb7/UUSrPsCMIIskPD9+PyvKN16/HO67A0q4wrH H63Tz7iyO6LEYy8DpMl3gkrZmgGf31oOepCdHFpuW5MxU6jAIiFct0dbb1fHvuKM4LpK fQIZ8g1qCcCLIJwsI6oOXY2cz8Okk/+2WWpfl4OBxQVlEOIVxak7tu+WI78VpVD5J0ZS 8xiAMuXCgjMKgkY3PwbzlZLiRAgO29CfzxCTJnej7YILzIZk58Y0azh7g+YWwBNL0hTv 1DRw== X-Forwarded-Encrypted: i=1; AJvYcCUoo8ASk12Q1Tf3QXYFtvFE4UDwqpvyKoAKBU1qqD/ygm8xyNwnlq1NalxN44/nuHRPEzApCNLI8wghHNM=@vger.kernel.org X-Gm-Message-State: AOJu0YyXas0/9D4thkHi3dXFKCijdDJNGesrqxkz1E2IWa3mNR4k0oXc XpSVIi1dU+deNAI05NKrClDZ1IvTEmOxsU1iUHrDuzM26SRwMtJEZL9wLQjTQHARy2EaDDopdQW lnvdVltAuMg== X-Google-Smtp-Source: AGHT+IHoOO93hzmFFlcQIYCbtgZj5ffz/3Wxhh2XCDCoisunfP+n6KCvgGin6yHxpV1LaAnMC1gvdiILhBSD X-Received: from dlbpk8.prod.google.com ([2002:a05:7022:3848:b0:119:49ca:6bb0]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:18ad:b0:2a4:3593:466b with SMTP id 5a478bee46e88-2aba422c066mr382160eec.7.1764798444290; Wed, 03 Dec 2025 13:47:24 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:05 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-7-irogers@google.com> Subject: [PATCH v2 6/7] perf tests stat: Add test for error for an offline CPU From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a test that if an offline CPU is requested perf stat will fail. ``` $ perf test -vv "perf stat tests" 101: perf stat tests: Reported-by: Thomas Richter Tested-by: Thomas Richter --- start --- test child forked, pid 46965 Basic stat command test Basic stat command test [Success] Null stat command test Null stat command test [Success] Offline CPU stat command test (cpu 8) Offline CPU stat command test [Success] stat record and report test stat record and report test [Success] stat record and script test stat record and script test [Success] stat repeat weak groups test stat repeat weak groups test [Success] Topdown event group test Topdown event group test [Success] Topdown weak groups test Topdown weak groups test [Skipped event parsing failed] cputype test cputype test [Success] hybrid test hybrid test [Success] ---- end(0) ---- 101: perf stat tests : Ok ``` Reported-by: Thomas Richter Closes: https://lore.kernel.org/linux-perf-users/94313b82-888b-4f42-9fb0-45= 85f9e90080@linux.ibm.com/ Signed-off-by: Ian Rogers --- tools/perf/tests/shell/stat.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh index 7885e875caf4..0b2f0f88ca16 100755 --- a/tools/perf/tests/shell/stat.sh +++ b/tools/perf/tests/shell/stat.sh @@ -27,6 +27,32 @@ test_null_stat() { echo "Null stat command test [Success]" } =20 +find_offline_cpu() { + for i in $(seq 1 4096) + do + if [[ ! -f /sys/devices/system/cpu/cpu$i/online || \ + $(cat /sys/devices/system/cpu/cpu$i/online) =3D=3D "0" ]] + then + echo $i + return + fi + done + echo "Failed to find offline CPU" + exit 1 +} + +test_offline_cpu_stat() { + cpu=3D$(find_offline_cpu) + echo "Offline CPU stat command test (cpu $cpu)" + if ! perf stat "-C$cpu" -e cycles true 2>&1 | grep -E -q "No supported e= vents found." + then + echo "Offline CPU stat command test [Failed]" + err=3D1 + return + fi + echo "Offline CPU stat command test [Success]" +} + test_stat_record_report() { echo "stat record and report test" if ! perf stat record -e task-clock -o - true | perf stat report -i - 2>= &1 | \ @@ -224,6 +250,7 @@ test_hybrid() { =20 test_default_stat test_null_stat +test_offline_cpu_stat test_stat_record_report test_stat_record_script test_stat_repeat_weak_groups --=20 2.52.0.177.g9f829587af-goog From nobody Fri Dec 19 19:16:14 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 4DB682DE703 for ; Wed, 3 Dec 2025 21:47:28 +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=1764798450; cv=none; b=EO8T0xRHxxBSaRPCb1eVZJG1COlQ08mo3wpYEo0wLQUah1m0kYGxFQF3eK0BGBu58E+QVFmHAuq27VItfnXV6J1QjNwiqWijVvaa3+4fe+uwbEs7GMaMEvt6R9uPfmT9pS1+YjpeWjKAP/kIfaUj3MORBLBeeymEOp2ZybE6XSE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764798450; c=relaxed/simple; bh=NLjjJgqj44yOShiPvUtgrdHvboGVu5475ukXj0UL1WE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=dBaRY82zVmOI9NBIDzlcPsUZXMH7BibXX/Y5V2Wr/XzWVsXMzFO7czwnHyKH0visVMhk02jVEk35E1TR7i3WxUANhdX1Mb7lGuTjWcW2AJpzamxJPUQl06JO9XggEm7rmzGS1r7HsCFUb/PPJyRxnSsz86zRj++afZDune7MytU= 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=jgMJpgMz; 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="jgMJpgMz" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-bb27b422cf2so304068a12.1 for ; Wed, 03 Dec 2025 13:47:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764798447; x=1765403247; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=4ROp2gD1qsi5HFemrZlvE5vnoydq6n4iQlRkymTuUuc=; b=jgMJpgMz41ZkXX6Q7M80cfV/fcFXXUgwdzB3e7KCtrj3lmGNiEktxPohCGNGFdpyrG /RuAoUTxM0g8L2M4DSVjRL+OWdm/Lz7sexng8ebb6ZzjzN5mtom6ctVKB/2NDPQvSA5M Lg2msT9Jd0xV42sHdlLdTILBBY4K3uSjGrzMFH3mOld7fMFBByxPvqk93JpTE+JdTh5U 8ln42cNUMb4m3MukkYAekF3aubgZ6xcuBD4FWSDrjCZByZTLXyONsgUgNkzDXHkWJthr 9U00Sizuf/yDCPNI9RRZQauKar4mNwcGUGovGHM1ZRY5Yna5rOfoxuF69+eJFR9h+XSz 18Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764798447; x=1765403247; h=cc: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=4ROp2gD1qsi5HFemrZlvE5vnoydq6n4iQlRkymTuUuc=; b=Epq2Glryj3nI10DxfTFoOvl3Ue0oC/n98a0IKzZCxyit5hLJTJO1DtIVKa3B4306F1 m1lh0LwXk/rPaCX3yjhtGMrtB6JQI4vrLrb/EG0bow86yh+pFstuaG0pt/Fpz1bVNNqu myINi3GaJGIUe0S3Pp7FohIP68STf/QrXWseAQrQfJX3VNa4FvGGtjHlXb4CXX9YAKRq jV6bquDcvwYh48kx3efcGaRXpcvCMRxl6E9dYNd4CjeNRzA7bLy8u5d62XRaRFKKwQVq jlSqAy2k3JJt24CT7BCcyvAWOAw3W1bKHG7MJImd7ee4jmlDW4QvtcN4NCOIJDWjkXYL RMoA== X-Forwarded-Encrypted: i=1; AJvYcCVDYZ5wpbRWp9Bb2cje2E4Tr3YbxFNkgzinUETiyJ4CBU7yC3P0c3+A1zMQtpxCwFWUCnfV9Lz8wxAMF8A=@vger.kernel.org X-Gm-Message-State: AOJu0Yz9syGE4PNaA8USKLFRAB0Hr30t/82lpZKCQBhUEAfOYe5Nc+6K /5pyMUAdDSV00ORGVxf5xOFuInKYThxr1b5jzHfqg1Q7Zjr07Brqht6RjpsI2lALK5vtvsH9nFi aedbas5dS5g== X-Google-Smtp-Source: AGHT+IHOGolbfyVik9GfL8FV0R1q7aR/DF1pW7wJKBvhtMirbEukdNxXMJ1WtmyaSH2UeJq4wnhjMPuIrobw X-Received: from dyjh23.prod.google.com ([2002:a05:7300:5617:b0:2a4:7a56:1730]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:693c:4007:b0:2a4:3593:96a6 with SMTP id 5a478bee46e88-2ab92e8105amr1977090eec.35.1764798447380; Wed, 03 Dec 2025 13:47:27 -0800 (PST) Date: Wed, 3 Dec 2025 13:47:06 -0800 In-Reply-To: <20251203214706.112174-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: <20251203214706.112174-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.177.g9f829587af-goog Message-ID: <20251203214706.112174-8-irogers@google.com> Subject: [PATCH v2 7/7] perf stat: Improve handling of termination by signal From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Thomas Richter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When interrupting perf stat in repeat mode with a signal the signal is passed to the child process but the repeat doesn't terminate: ``` $ perf stat -v --null --repeat 10 sleep 1 Control descriptor is not initialized [ perf stat: executing run #1 ... ] [ perf stat: executing run #2 ... ] ^Csleep: Interrupt [ perf stat: executing run #3 ... ] [ perf stat: executing run #4 ... ] [ perf stat: executing run #5 ... ] [ perf stat: executing run #6 ... ] [ perf stat: executing run #7 ... ] [ perf stat: executing run #8 ... ] [ perf stat: executing run #9 ... ] [ perf stat: executing run #10 ... ] Performance counter stats for 'sleep 1' (10 runs): 0.9500 +- 0.0512 seconds time elapsed ( +- 5.39% ) 0.01user 0.02system 0:09.53elapsed 0%CPU (0avgtext+0avgdata 18940maxresiden= t)k 29944inputs+0outputs (0major+2629minor)pagefaults 0swaps ``` Terminate the repeated run and give a reasonable exit value: ``` $ perf stat -v --null --repeat 10 sleep 1 Control descriptor is not initialized [ perf stat: executing run #1 ... ] [ perf stat: executing run #2 ... ] [ perf stat: executing run #3 ... ] ^Csleep: Interrupt Performance counter stats for 'sleep 1' (10 runs): 0.680 +- 0.321 seconds time elapsed ( +- 47.16% ) Command exited with non-zero status 130 0.00user 0.01system 0:02.05elapsed 0%CPU (0avgtext+0avgdata 70688maxresiden= t)k 0inputs+0outputs (0major+5002minor)pagefaults 0swaps ``` Note, this also changes the exit value for non-repeat runs when interrupted by a signal. Reported-by: Ingo Molnar Closes: https://lore.kernel.org/lkml/aS5wjmbAM9ka3M2g@gmail.com/ Signed-off-by: Ian Rogers Tested-by: Thomas Richter --- tools/perf/builtin-stat.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index bd3c3de8d200..ab40d85fb125 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -1007,10 +1007,20 @@ static int __run_perf_stat(int argc, const char **a= rgv, int run_idx) goto err_out; } =20 - if (WIFSIGNALED(status)) + if (WIFSIGNALED(status)) { + /* + * We want to indicate failure to stop a repeat run, + * hence negative. We want the value to be the exit code + * of perf, which for termination by a signal is 128 + * plus the signal number. + */ + err =3D 0 - (128 + WTERMSIG(status)); psignal(WTERMSIG(status), argv[0]); + } else { + err =3D WEXITSTATUS(status); + } } else { - status =3D dispatch_events(forks, timeout, interval, ×); + err =3D dispatch_events(forks, timeout, interval, ×); } =20 disable_counters(); @@ -1050,7 +1060,7 @@ static int __run_perf_stat(int argc, const char **arg= v, int run_idx) if (!STAT_RECORD) evlist__close(evsel_list); =20 - return WEXITSTATUS(status); + return err; =20 err_out: if (forks) @@ -2969,7 +2979,7 @@ int cmd_stat(int argc, const char **argv) evlist__reset_prev_raw_counts(evsel_list); =20 status =3D run_perf_stat(argc, argv, run_idx); - if (status =3D=3D -1) + if (status < 0) break; =20 if (forever && !interval) { @@ -3039,5 +3049,6 @@ int cmd_stat(int argc, const char **argv) =20 evlist__close_control(stat_config.ctl_fd, stat_config.ctl_fd_ack, &stat_c= onfig.ctl_fd_close); =20 - return status; + /* Only the low byte of status becomes the exit code. */ + return abs(status); } --=20 2.52.0.177.g9f829587af-goog