Re: [PATCH v1 0/5] x86/smp: Restore the elimination of mwait_play_dead_cpuid_hint()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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!





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux