>> Long story short, management application has no way of learning
>> TIDs of allocator threads so it can't make them run NUMA aware.
> 
> This feels like the key issue. The preallocation threads are
> invisible to libvirt, regardless of whether we're doing coldplug
> or hotplug of memory-backends. Indeed the threads are invisible
> to all of QEMU, except the memory backend code.
> 
> Conceptually we need 1 or more explicit worker threads, that we
> can assign CPU affinity to, and then QEMU can place jobs on them.
> I/O threads serve this role, but limited to blockdev work. We
> need a generalization of I/O threads, for arbitrary jobs that
> QEMU might want to farm out to specific numa nodes.

At least the "-object iothread" thingy can already be used for actions
outside of blockdev. virtio-balloon uses one for free page hinting.

-- 
Thanks,

David / dhildenb


Reply via email to