[vfio-users] Memory allocation with numatune

Jan Wiele jan at wiele.org
Sun Jan 29 20:02:37 UTC 2017


Am 2017-01-29 16:33, schrieb Alex Williamson:
> On Sat, 28 Jan 2017 12:58:41 +0100
> Thomas Lindroth <thomas.lindroth at gmail.com> wrote:
> 
>> On 01/27/2017 04:52 PM, Alex Williamson wrote:
>> > vcpupin actually looks a little off though, just like on the host, the
>> > VM is going to enumerate cores then threads
>> 
>> Are you sure about that? Perhaps there is some numa trick I don't
>> understand but it looks like the guest is a regular 6 cores
>> with HT (<topology sockets='1' cores='6' threads='2'/>) and
>> for me setups like that results in a layouts like this in the
>> guest (qemu-2.8.0):
>> 
>> cat /proc/cpuinfo |grep "core id"
>> core id         : 0
>> core id         : 0
>> core id         : 1
>> core id         : 1
>> core id         : 2
>> core id         : 2
>> 
>> The ordering in the guest is threads then cores but for the
>> host it's the other way around
>> 
>> cat /proc/cpuinfo |grep "core id"
>> core id         : 0
>> core id         : 1
>> core id         : 2
>> core id         : 3
>> core id         : 0
>> core id         : 1
>> core id         : 2
>> core id         : 3
>> 
>> Cores then threads. So to get a 1:1 match I have to use
>> pinning like this which is similar to that numa setup.
>> 
>> <vcpupin vcpu='0' cpuset='1'/>
>> <vcpupin vcpu='1' cpuset='5'/>
>> <vcpupin vcpu='2' cpuset='2'/>
>> <vcpupin vcpu='3' cpuset='6'/>
>> <vcpupin vcpu='4' cpuset='3'/>
>> <vcpupin vcpu='5' cpuset='7'/>
>> <topology sockets='1' cores='3' threads='2'/>
> 
> Oh wow, maybe I'm completely off.  I hadn't noticed the core-id
> ordering in the VM, but indeed on my system the guest shows:
> 
> core id		: 0
> core id		: 0
> core id		: 1
> core id		: 1
> core id		: 2
> core id		: 2
> core id		: 3
> core id		: 3
> 
> Any physical system I've seen has the ordering you show above,
> enumerating cores then threads.  Sorry Jan, maybe the way you had it
> originally was optimal.  Thanks,
> 
> Alex
> 


Ah, good to know! I will change my config back to the original one.
I was curious how I could get this information on a Windows system. 
After some googling I found coreinfo [1], which reports this:

Logical to Physical Processor Map:
**----------  Physical Processor 0 (Hyperthreaded)
--**--------  Physical Processor 1 (Hyperthreaded)
----**------  Physical Processor 2 (Hyperthreaded)
------**----  Physical Processor 3 (Hyperthreaded)
--------**--  Physical Processor 4 (Hyperthreaded)
----------**  Physical Processor 5 (Hyperthreaded)

But I'm still having my memory allocation problem: Can someone confirm 
that the numatune option actually works? I'm interested in the 
Kernel/Qemu/Libvirt version.

Jan

[1] https://technet.microsoft.com/en-us/sysinternals/cc835722.aspx




More information about the vfio-users mailing list