XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    CPU C-states

    Scheduled Pinned Locked Moved Compute
    8 Posts 4 Posters 267 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F Offline
      FrankAtHome
      last edited by FrankAtHome

      Hello,

      One of the homelab platforms I'm running XCP-ng on, is a AMD 7950X.
      I recently noticed, that in Ubuntu Linux 24.04, PowerTop reports C-states C1-C3 (see screenshot).

      Screenshot 2025-01-16 213724.png
      However, in XCP-ng 8.3, the command « xenpm get-cpuidle-states » only reports C0 and C1.

      I've tried adding « cpuidle » to the Xen image boot parameters in Grub-efi.cfg which doesn't seem to make any difference to the output of the get-cpuidle-states command. Looking at the output of « xe host-dmesg » I am not sure what to look for; the lines referenced in an Xen documentation page do not seem to be present in the output on XCP-ng.

      As this is a homelab project, I wish to reduce power consumption as much as is technically feasible and leverage the supported C-states (unless latency from switching to/out of C3 would be killing performance).

      A 1 Reply Last reply Reply Quote 0
      • olivierlambertO Online
        olivierlambert Vates 🪐 Co-Founder CEO
        last edited by

        Power management is a fairly complex thing in Xen. Adding @TeddyAstie in the loop if you have ideas.

        1 Reply Last reply Reply Quote 0
        • A Offline
          Andrew Top contributor @FrankAtHome
          last edited by

          @FrankAtHome Here's output on one of my XCP 8.3 servers that shows C0 to C4:

          # xenpm get-cpuidle-states 0
          All C-states allowed
          
          cpu id               : 0
          total C-states       : 5
          idle time(ms)        : 1854395327
          C0                   : transition [           827366196]
                                 residency  [            26328742 ms]
          C1                   : transition [           464493378]
                                 residency  [            40172860 ms]
          C2                   : transition [            97685021]
                                 residency  [            43104018 ms]
          C3                   : transition [            13728657]
                                 residency  [            12613910 ms]
          C4                   : transition [           251459140]
                                 residency  [          1755416981 ms]
          pc2                  : [           462155589 ms]
          pc3                  : [            17985256 ms]
          pc6                  : [           781427622 ms]
          cc3                  : [            10502718 ms]
          cc6                  : [          1685502286 ms]
          
          F 1 Reply Last reply Reply Quote 0
          • F Offline
            FrankAtHome @Andrew
            last edited by

            @Andrew

            ok that's interesting.

            Which CPU is this on? AMD ? Intel ?
            Did you specify any boot parameters in grub to unlock these C-States ?

            A R 2 Replies Last reply Reply Quote 0
            • A Offline
              Andrew Top contributor @FrankAtHome
              last edited by

              @FrankAtHome The server is a HP DL360 G8 Intel Xeon CPU E5-2680v2.

              Same hardware/bios config as the other servers running XCP 8.2, so, nothing special setup. I'm not sure if it even has C5/C6 states available. It's an enterprise server, you don't want it to sleep.

              Here's the output from a desktop HP Elitedesk 800 G3 Intel Core i7-7700 running XCP 8.3, again, nothing special setup. Now with more C-states!

              # xenpm get-cpuidle-states 0
              All C-states allowed
              
              cpu id               : 0
              total C-states       : 7
              idle time(ms)        : 276484
              C0                   : transition [              277556]
                                     residency  [               16869 ms]
              C1                   : transition [              197012]
                                     residency  [                9993 ms]
              C2                   : transition [               23581]
                                     residency  [               11105 ms]
              C3                   : transition [                2943]
                                     residency  [                2094 ms]
              C4                   : transition [                8525]
                                     residency  [                8576 ms]
              C5                   : transition [                5493]
                                     residency  [               17883 ms]
              C6                   : transition [               40001]
                                     residency  [              224993 ms]
              cc3                  : [                1946 ms]
              cc6                  : [                7945 ms]
              cc7                  : [              238808 ms]
              
              1 Reply Last reply Reply Quote 0
              • R Offline
                redakula @FrankAtHome
                last edited by

                @FrankAtHome
                I looked in to this as well a while back and the conclusion i came to, is that the newer AMD power management functions are not supported properly in the old kernel used by XCP-NG (And maybe xen?).
                A lot of work seems to have been done in the 6.x kernel series on this.

                I get the same on my 7900 - only C0 and C1 😬
                I tried booting it on a Ubuntu 24.04 live cd and power consumption was easily 15% lower at idle.

                F 1 Reply Last reply Reply Quote 0
                • F Offline
                  FrankAtHome @redakula
                  last edited by

                  @redakula said in CPU C-states:

                  @FrankAtHome
                  I looked in to this as well a while back and the conclusion i came to, is that the newer AMD power management functions are not supported properly in the old kernel used by XCP-NG (And maybe xen?).
                  A lot of work seems to have been done in the 6.x kernel series on this.

                  I get the same on my 7900 - only C0 and C1 😬
                  I tried booting it on a Ubuntu 24.04 live cd and power consumption was easily 15% lower at idle.

                  that sounds plausible as explanation.

                  I guess I will have to patiently await XCP-ng 6 branch and any improvements this may bring on AMD systems.

                  1 Reply Last reply Reply Quote 0
                  • olivierlambertO Online
                    olivierlambert Vates 🪐 Co-Founder CEO
                    last edited by

                    It's very likely in Xen itself since a part of the power management is done there. Another topic to bring during the Xen Winter Meetup @TeddyAstie 😉

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post