[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 3/3] Add support for RAPL MSRs in KVM/Qemu
From: |
Anthony Harivel |
Subject: |
Re: [PATCH v3 3/3] Add support for RAPL MSRs in KVM/Qemu |
Date: |
Thu, 14 Mar 2024 09:26:53 +0100 |
User-agent: |
aerc/0.15.2-111-g39195000e213 |
Hi Daniel,
> You don't need to access it via the /node/ hierarchy
>
> The canonical path for CPUs would be
>
> /sys/devices/system/cpu/cpuNNN/topology
>
> The core_cpus_list file is giving you hyper-thread siblings within
> a core, which I don't think is what you want.
>
> If you're after discrete physical packages, then 'package_cpus_list'
> gives you all CPUs within a physical socket (package) I believe.
>
Yes, this could work.
However, on laptop, I've got:
cat package_cpus_list
0-11
Where on server:
package_cpus_list
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
I asked my teammate: always the same results. This is I guess due to
either a difference in the kernel version or how the kernel is handling
the case where there is only one package, versus the case with multiple
packages.
Anyway, writing a C function to handle both cases might not be easy.
The other solution would be to loop through
/sys/devices/system/cpu/cpuNNN/ and update a table of integer of a fixed
size (*) where I increment table[0] for package_0 when I encounter a CPU
that belongs to package_0 and so on. Reading
cpuNNN/topology/physical_package_id is giving to whom package the cpu
belongs to.
This is a bit tedious but a safer solution, I think.
(*): Maybe dynamic allocation is better ?
Thanks again for your guidance.
Regards,
Anthony