Anthony Liguori wrote:

In the event that the VM is larger than a single node, if a user is creating it via qemu-system-x86_64, they're going to either not care at all about NUMA, or be familiar enough with the numactl tools that they'll probably just want to use that. Once you've got your head around the fact that VCPUs are just threads and the memory is just a shared memory segment, any knowledgable sysadmin will have no problem doing whatever sort of NUMA layout they want.


The vast majority of production VMs will be created by management tools.

The other case is where management tools are creating VMs. In this case, it's probably better to use numactl as an external tool because then it keeps things consistent wrt CPU pinning.

There's also a good argument for not introducing CPU pinning directly to QEMU. There are multiple ways to effectively do CPU pinning. You can use taskset, you can use cpusets or even something like libcgroup.

If you refactor the series so that the libnuma patch is the very last one and submit to qemu-devel, I'll review and apply all of the first patches. We can continue to discuss the last patch independently of the first three if needed.

We need libnuma integrated in qemu. Using numactl outside of qemu means we need to start exposing more and more qemu internals (vcpu->thread mapping, memory in /dev/shm, phys_addr->ram_addr mapping) and lose out on optimization opportunities (having multiple numa-aware iothreads, numa-aware kvm mmu). It also means we cause duplication of the numa logic in management tools instead of consolidation in qemu.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to