On Wed, May 11, 2022 at 11:31:23AM +0200, David Hildenbrand wrote: > >> 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.
Ah that's good to know, so my idea probably isn't so much work as I thought it might be. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|