On Fri, Jun 6, 2025 at 12:51 PM Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx> wrote: > > On Thu, 2025-06-05 at 17:03 +0200, Rafael J. Wysocki wrote: > > Hi Everyone, > > > > The purpose of this series is to reapply the code changes from commit > > 96040f7273e2 ("x86/smp: Eliminate mwait_play_dead_cpuid_hint()") that > > has been reverted because of an issue introduced by it. This takes > > place in the last patch ([5/5]) and the previous patches make > > preparatory changes needed to avoid breaking systems in the field > > once again. > > Hello, > > thanks Rafael for the patches, and Peter/Dave for helping handling the > issue. > > Tested-by: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx> > > I measured a Granite Rapids Xeon with v6.15 vanilla [setup 1], then > with v6.15 + revert of 96040f7273e2 + these 5 patches [setup 2]. > > I can see that in setup 2 the average idle package power is 54% lower > than in setup 1. This is simply because in setup 1 there is no CC6 / > PC6. And this is because every core's sibling is in CC1, which blocks > CC6 on every core. > > == Reference == > > 1. Small article explaining then naming I use (CC1, CC6, PC6): > https://github.com/intel/pepc/blob/main/docs/misc-cstate-namespaces.md > > == Non-essential details, just for reference == > > The measurement could have been done in a simpler way, but since I have > developed tools and have a good setup to measure workloads with my open > source tools, I did the following. > > Used stats-collect: https://github.com/intel/stats-collect/ > > # Boot the vanilla kernel on system under test (SUT) named 'gnr2' (this > # is the host name). Then run the following command on my system, that > # has root SSH access to 'gnr2' configured. > > stats-collect start --stats all -H gnr2 --reportid gnr2-idle-nosmt- > v6.15-vanilla -o raw/gnr2-idle-nosmt-v6.15-vanilla -- sleep 600 > > # The above SSHed to gnr2, ran workload "sleep 600", and collected a > # bunch of statistics, which were saved to > # raw/gnr2-idle-nosmt-v6.15-vanilla on my host. > > # Boot the "setup 2" kernel, which I referred to as "6.15-fixed". Run > # the following command. > > stats-collect start --stats all -H gnr2 --reportid gnr2-idle-nosmt- > v6.15-fixed -o raw/gnr2-idle-nosmt-v6.15-fixed -- sleep 600 > > # Then generate an HTML diff between those. > stats-collect report raw/gnr2-idle-nosmt-v6.15-vanilla/ raw/gnr2-idle- > nosmt-v6.15-fixed/ -o diff > > # Open "diff" with a browser (I have my HTTP server, so just copied it > # to ~/public_html). Find lots of stats, in my case > # turbostat, interrupts, IPMI. > > In the diff, I checked turbostat's PkgPwr (CPU chip power in Watts) and > turbostat's CPU%c6 (CC6 residency, %). > > HTH, Yes, it does, thanks a lot!