From patchwork Tue Jun 10 22:18:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Len Brown X-Patchwork-Id: 895683 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA9A9284B42 for ; Tue, 10 Jun 2025 22:18:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749593904; cv=none; b=craRhRvngrjY7JUikko/tsbhZAZ+dLvN5Ur7nfrePB1mLvppknjFpRP4kIOMtOd7SeeKYYZOCODMsOufGJ7w8z5xeYucGXv/3Th3gM5jjhRmPNlW+I9q9ySdPPVjWaivd1nNELD7+icjQPwhqh6r90b1mjLmyzIZ3Ne3mNUBsPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749593904; c=relaxed/simple; bh=SA6o1XmiEh8TFycFSaRMIPEj//NX2wBdF9S09wpXoAc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GlENvcCxngjUxVlT5MqPWXXV7kXECeuxr1YzzxZ7NlrsfAFc25m9wbkQ/WTPiNrbcScMySGS1wyLLPzdc5qZ0XUGstQDjkCaUwI4YXOmgZPqsFgMlL9Lx9WIkw1bEO2EYjcBB6tHfJdn0b5/Tdy5c+4F6cMhkKs95xpqOqE0EUc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RIWI1z7V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RIWI1z7V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06060C4CEED; Tue, 10 Jun 2025 22:18:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1749593904; bh=SA6o1XmiEh8TFycFSaRMIPEj//NX2wBdF9S09wpXoAc=; h=From:To:Cc:Subject:Date:Reply-To:From; b=RIWI1z7VnzALZM4h5f3NLg4AuJaP3k/7Wrw1nGRFEg33nIiwCAAh2hOJf1Z5Wivf7 6VhoqDFEY2UJ7mtt0SesGLaMgntroWS6q7MkAAE/m2iVV29o3qb/awyaej3SzAuzCy /d+GrbiYcwGvQVcsz1ga9Dk8PWxCQNbuD3Dnkr3OY8YrRgA5VEzr3KnrWLr2YGXKeG 8vyDQmbm6oaOgfXXPIyCeMZwlVRaUhxhks2U+s4z4oyyo27v+O3YamH3Rc/Q940BCQ 6NGZmFCSsclmgDYidnRqT4zmb6zu4gBOBAibowvJhYQCGHu6o9QsQPd7if/VUrFQAV 3sG7+l6zSvFVQ== From: Len Brown To: linux-pm@vger.kernel.org Cc: Len Brown , Zhang Rui Subject: [PATCH 1/2] tools/power turbostat: regression fix: --show C1E% Date: Tue, 10 Jun 2025 18:18:12 -0400 Message-ID: <5d939fbdd480cdf276eccc01eda3ed41e37d3f8a.1749593891.git.len.brown@intel.com> X-Mailer: git-send-email 2.45.2 Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Reply-To: Len Brown Organization: Intel Open Source Technology Center From: Len Brown The new default idle counter groupings broke "--show C1E%" (or any other C-state %) Also delete a stray debug printf from the same offending commit. Reported-by: Zhang Rui Fixes: ec4acd3166d8 ("tools/power turbostat: disable "cpuidle" invocation counters, by default") Signed-off-by: Len Brown --- tools/power/x86/turbostat/turbostat.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c index 5230e072e414..33a54a9e0781 100644 --- a/tools/power/x86/turbostat/turbostat.c +++ b/tools/power/x86/turbostat/turbostat.c @@ -2429,7 +2429,6 @@ unsigned long long bic_lookup(char *name_list, enum show_hide_mode mode) } if (i == MAX_BIC) { - fprintf(stderr, "deferred %s\n", name_list); if (mode == SHOW_LIST) { deferred_add_names[deferred_add_index++] = name_list; if (deferred_add_index >= MAX_DEFERRED) { @@ -10537,9 +10536,6 @@ void probe_cpuidle_residency(void) int min_state = 1024, max_state = 0; char *sp; - if (!DO_BIC(BIC_pct_idle)) - return; - for (state = 10; state >= 0; --state) { sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/name", base_cpu, state); From patchwork Tue Jun 10 22:18:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Len Brown X-Patchwork-Id: 895459 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5320C28AB07 for ; Tue, 10 Jun 2025 22:18:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749593905; cv=none; b=my57faZhLssDKepq/KB1fozyRH892tllV8InrC/vsSfnbECU9NXApJ0FPVUfzEZq+3tPP6JOrnjGo/1FKd3fBW1CCEepi/6ZhP3wPtKEe02zcQZ12ZLhf8tKn/O0Ep02brjNa44HCKkry0iNGs6j+lnv9UlpCJWbZmSRYz8LuQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749593905; c=relaxed/simple; bh=zDg7Z12C81rF6nSyW/g/D+4qk/Fq4mtzMDxDWBYNhpQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UTDFaeWFEmXnROyEXH7EzEzFHp26KcCclSly+WKczgxBWq4P+BHcoINg5TtR0pQ18cy8PY4uw6TKH4M8vbgQ4yKICjSNIgq/uXRnMcKN2BW8W5hKuqY3typrBEq+IyBj3fFr+rZ9jGblv85SVMKcBA16tGjFHrpsHJCjCHHsBNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uViTfxG9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uViTfxG9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 977A7C4CEEF; Tue, 10 Jun 2025 22:18:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1749593904; bh=zDg7Z12C81rF6nSyW/g/D+4qk/Fq4mtzMDxDWBYNhpQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:Reply-To:From; b=uViTfxG9/JM4WSEfUPxHAIJ0F5Yx/pdI8aAxYOC7mZGzyAm83roTGfRVV7zjBkRuV 419YqK8moEGyirwxUo2wahg3p5SbfwLYJPjKgJYfGa9K3l+d+yNG3Vmq/cRcBt9q5l BptjMHoscW6WxtccNsUZtL4XwT/eTBUmgZozf/K/N2P+GOXOaPV9SuyJlQy8yAlEVH idX+A9GNmqntx3N/hM6Jphi9xGqkrNvhA7QUbuiGPjT/p/ceLmdCLF8wxPuOh0mG+6 tkvGvRYipNqYDw9DrvsTrjl3tif+y//Rvp1jdhf6R/GSYNysCnX4+jQP9+GK9DZZEP 7uASMcFiFXQsA== From: Len Brown To: linux-pm@vger.kernel.org Cc: Len Brown Subject: [PATCH 2/2] tools/power turbostat: verify arguments to params --show and --hide Date: Tue, 10 Jun 2025 18:18:13 -0400 Message-ID: X-Mailer: git-send-email 2.45.2 In-Reply-To: <5d939fbdd480cdf276eccc01eda3ed41e37d3f8a.1749593891.git.len.brown@intel.com> References: <5d939fbdd480cdf276eccc01eda3ed41e37d3f8a.1749593891.git.len.brown@intel.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Reply-To: Len Brown Organization: Intel Open Source Technology Center From: Len Brown $ sudo turbostat --quiet --show junk turbostat: Counter 'junk' can not be added. Previously, invalid argumetns to --show and --hide were silently ignored Signed-off-by: Len Brown Acked-by: Zhang Rui --- tools/power/x86/turbostat/turbostat.c | 33 +++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c index 33a54a9e0781..4056b7e26a0f 100644 --- a/tools/power/x86/turbostat/turbostat.c +++ b/tools/power/x86/turbostat/turbostat.c @@ -2310,6 +2310,8 @@ char *deferred_add_names[MAX_DEFERRED]; char *deferred_skip_names[MAX_DEFERRED]; int deferred_add_index; int deferred_skip_index; +unsigned int deferred_add_consumed; +unsigned int deferred_skip_consumed; /* * HIDE_LIST - hide this list of counters, show the rest [default] @@ -10512,8 +10514,10 @@ int is_deferred_add(char *name) int i; for (i = 0; i < deferred_add_index; ++i) - if (!strcmp(name, deferred_add_names[i])) + if (!strcmp(name, deferred_add_names[i])) { + deferred_add_consumed |= (1 << i); return 1; + } return 0; } @@ -10522,11 +10526,34 @@ int is_deferred_skip(char *name) int i; for (i = 0; i < deferred_skip_index; ++i) - if (!strcmp(name, deferred_skip_names[i])) + if (!strcmp(name, deferred_skip_names[i])) { + deferred_skip_consumed |= (1 << i); return 1; + } return 0; } +void verify_deferred_consumed(void) +{ + int i; + int fail = 0; + + for (i = 0; i < deferred_add_index; ++i) { + if (!(deferred_add_consumed & (1 << i))) { + warnx("Counter '%s' can not be added.", deferred_add_names[i]); + fail++; + } + } + for (i = 0; i < deferred_skip_index; ++i) { + if (!(deferred_skip_consumed & (1 << i))) { + warnx("Counter '%s' can not be skipped.", deferred_skip_names[i]); + fail++; + } + } + if (fail) + exit(-EINVAL); +} + void probe_cpuidle_residency(void) { char path[64]; @@ -10885,6 +10912,8 @@ int main(int argc, char **argv) probe_cpuidle_residency(); probe_cpuidle_counts(); + verify_deferred_consumed(); + if (!getuid()) set_rlimit();