<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/tools/power/x86, branch master</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=master</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2026-02-18T17:52:38Z</updated>
<entry>
<title>Merge tag 'turbostat-2026.02.14-AMD-RAPL-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux</title>
<updated>2026-02-18T17:52:38Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2026-02-18T17:52:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7ad54bbbc9c512ba3bc90e4368264bcf15c25759'/>
<id>urn:sha1:7ad54bbbc9c512ba3bc90e4368264bcf15c25759</id>
<content type='text'>
Pull turbostat fix from Len Brown:
 "Fix a recent AMD regression due to errant code cleanup"

* tag 'turbostat-2026.02.14-AMD-RAPL-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
  tools/power turbostat: Fix AMD RAPL regression
</content>
</entry>
<entry>
<title>tools/power turbostat: Fix AMD RAPL regression</title>
<updated>2026-02-18T05:27:52Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-18T02:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef0e60083f768b32cda17b1b0ca9519405db89a6'/>
<id>urn:sha1:ef0e60083f768b32cda17b1b0ca9519405db89a6</id>
<content type='text'>
turbostat.c:8688: rapl_perf_init: Assertion `next_domain &lt; num_domains' failed.

Two recent cleanup patches that were not supposed to change anything
broke the core_id code needed for AMD RAPL initialization:

commit 070e92361eec ("tools/power turbostat: Enhance HT enumeration")
commit ddf60e38ca04 ("tools/power turbostat: Simplify global core_id calculation")

Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'turbostat-2026.02.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux</title>
<updated>2026-02-17T23:51:14Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2026-02-17T23:51:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2961f841b025fb234860bac26dfb7fa7cb0fb122'/>
<id>urn:sha1:2961f841b025fb234860bac26dfb7fa7cb0fb122</id>
<content type='text'>
Pull turbostat updates from Len Brown:

 - Add L2 statistics columns for recent Intel processors:
	L2MRPS = L2 Cache M-References Per Second
	L2%hit = L2 Cache Hit %

 - Sort work and output by cpu# rather than core#

 - Minor features and fixes

* tag 'turbostat-2026.02.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (23 commits)
  tools/power turbostat: version 2026.02.14
  tools/power turbostat: Fix and document --header_iterations
  tools/power turbostat: Use strtoul() for iteration parsing
  tools/power turbostat: Favor cpu# over core#
  tools/power turbostat: Expunge logical_cpu_id
  tools/power turbostat: Enhance HT enumeration
  tools/power turbostat: Simplify global core_id calculation
  tools/power turbostat: Unify even/odd/average counter referencing
  tools/power turbostat: Allocate average counters dynamically
  tools/power turbostat: Delete core_data.core_id
  tools/power turbostat: Rename physical_core_id to core_id
  tools/power turbostat: Cleanup package_id
  tools/power turbostat: Cleanup internal use of "base_cpu"
  tools/power turbostat: Add L2 cache statistics
  tools/power turbostat: Remove redundant newlines from err(3) strings
  tools/power turbostat: Allow more use of is_hybrid flag
  tools/power turbostat: Rename "LLCkRPS" column to "LLCMRPS"
  tools/power turbostat.8: Document the "--force" option
  tools/power turbostat: Harden against unexpected values
  tools/power turbostat: Dump hypervisor name
  ...
</content>
</entry>
<entry>
<title>tools/power turbostat: version 2026.02.14</title>
<updated>2026-02-13T20:08:33Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-13T19:38:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=51496091dd37b405e6e399a9638da3f1da3f4c64'/>
<id>urn:sha1:51496091dd37b405e6e399a9638da3f1da3f4c64</id>
<content type='text'>
Since release 2025.12.02:

Add L2 statistics columns for recent Intel processors:
	L2MRPS = L2 Cache M-References Per Second
	L2%hit = L2 Cache Hit %

Sort work and output by cpu# rather than core#

This commit:
	Version number and white space (indent -l160)
	No functional change.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Fix and document --header_iterations</title>
<updated>2026-02-13T20:03:17Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-13T19:26:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=96718ad296af4a6d984b3a09276b165ab6a3b0c8'/>
<id>urn:sha1:96718ad296af4a6d984b3a09276b165ab6a3b0c8</id>
<content type='text'>
The "header_iterations" option is commonly used to de-clutter
the screen of redundant header label rows in an interactive session:
Eg. every 10 rows:

$ sudo turbostat --header_iterations 10 -S -q -i 1

But --header_iterations was missing from turbostat.8

Also turbostat help advertised the "-N" short option
that did not actually work:

$ turbostat --help
  -N, --header_iterations num
		print header every num iterations

Repair "-N"
Document "--header_iterations" on turbostat.8

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Use strtoul() for iteration parsing</title>
<updated>2026-02-13T20:03:17Z</updated>
<author>
<name>Kaushlendra Kumar</name>
</author>
<published>2025-12-08T03:08:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8e5c0cc326f2e95a71bb6e6063e65caa60c8f951'/>
<id>urn:sha1:8e5c0cc326f2e95a71bb6e6063e65caa60c8f951</id>
<content type='text'>
Replace strtod() with strtoul() and check errno for -n/-N options, since
num_iterations and header_iterations are unsigned long counters. Reject
zero and conversion errors; negative inputs wrap to large positive values
per standard unsigned semantics.

Signed-off-by: Kaushlendra Kumar &lt;kaushlendra.kumar@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Favor cpu# over core#</title>
<updated>2026-02-13T20:03:10Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-12T20:04:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2b4d0f8bf07a4a4fe8a526e10c45e593c7a3bf0'/>
<id>urn:sha1:a2b4d0f8bf07a4a4fe8a526e10c45e593c7a3bf0</id>
<content type='text'>
Turbostat collects statistics and outputs results in "topology order",
which means it prioritizes the core# over the cpu#.
The strategy is to minimize wakesups to a core -- which is
important when measuring an idle system.

But core order is problematic, because Linux core#'s are physical
(within each package), and thus subject to APIC-id scrambling
that may be done by the hardware or the BIOS.

As a result users may be are faced with rows in a confusing order:

sudo turbostat -q --show topology,Busy%,CPU%c6,UncMHz sleep 1
Core	CPU	Busy%	CPU%c6	UncMHz
-	-	1.25	72.18	3400
0	4	7.74	0.00
1	5	1.77	88.59
2	6	0.48	96.73
3	7	0.21	98.34
4	8	0.14	96.85
5	9	0.26	97.55
6	10	0.44	97.24
7	11	0.12	96.18
8	0	5.41	0.31	3400
8	1	0.19
12	2	0.41	0.22
12	3	0.08
32	12	0.04	99.21
33	13	0.25	94.92

Abandon the legacy "core# topology order" in favor of simply
ordering by cpu#, with a special case to handle HT siblings
that may not have adjacent cpu#'s.

sudo ./turbostat -q --show topology,Busy%,CPU%c6,UncMHz sleep 1
1.003001 sec
Core	CPU	Busy%	CPU%c6	UncMHz
-	-	1.38	80.55	1600
8	0	10.94	0.00	1600
8	1	0.53
12	2	2.90	0.45
12	3	0.11
0	4	1.96	91.20
1	5	0.97	96.40
2	6	0.24	94.72
3	7	0.31	98.01
4	8	0.20	98.20
5	9	0.62	96.00
6	10	0.06	98.15
7	11	0.12	99.31
32	12	0.04	99.07
33	13	0.27	95.09

The result is that cpu#'s now take precedence over core#'s.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Expunge logical_cpu_id</title>
<updated>2026-02-13T14:53:17Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-13T05:52:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6be5c151eb1ebf4d5007b9f60c729f7381255a23'/>
<id>urn:sha1:6be5c151eb1ebf4d5007b9f60c729f7381255a23</id>
<content type='text'>
There is only once cpu_id name space -- cpu_id.
Expunge the term logical_cpu_id.

No functional change.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Enhance HT enumeration</title>
<updated>2026-02-13T14:53:17Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-13T05:31:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=070e92361eeca21407ce90b582698a877ece5694'/>
<id>urn:sha1:070e92361eeca21407ce90b582698a877ece5694</id>
<content type='text'>
Record the cpu_id of each CPU HT sibling -- will need this later.

Rename "thread_id" to "ht_id" to disambiguate that the scope
of this id is within a Core -- it is not a global cpu_id.

No functional change.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>tools/power turbostat: Simplify global core_id calculation</title>
<updated>2026-02-13T14:53:17Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2026-02-13T05:06:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ddf60e38ca048842a34eb6e9d7a0d3e7d459df8d'/>
<id>urn:sha1:ddf60e38ca048842a34eb6e9d7a0d3e7d459df8d</id>
<content type='text'>
Standardize the generation of globally unique core_id's
in a macro, and simplify the related code.

No functional change.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
</feed>
