So obviously I messed something up with the threading on the responses - thought I had it right, but not quite I guess. Oh well - I think it's obvious what I was trying to do ;-) v5 updates: Patch 1/10 (forgot to edit the 10) * Fixes the syntax check * Moves the PostParse autofill of iothreadids right after the possible reading from XML Patch 4/9 * Add virDomainIOThreadIDArrayHasPin which will looking through the niothreadids[] array for any iothreadid[] with a cpumask defined * Fail in virDomainIOThreadPinDefParseXML if the iothreadid cannot be found * Remove [n]iothreadspin references * Left the cpumask checking to default - I think all should be handled in a later/separate patch * Fixed qemuSetupCgroupForIOThreads cpumask ordering Patch 5/9 * Adjusted the test to use 'fifo' *and* priority='1' for second entry (got a failure in a different test after my first pass) Patch 7.5/9 * NEW - Code that will remove the iothread_id bit from the ids mask. I did test this and it worked like I expected... Patch 8/9 * Not quite sure what was meant by auto numa placement so I didn't add that into the patch I sent, but if the following is what you meant, then I can squash it in (and define cpumask appropriately) + if (vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) + cpumask = priv->autoCpuset; + else + cpumask = vm->def->cpumask; + + if (cpumask) { + if (qemuDomainHotplugPinThread(cpumask, iothread_id, * Remove qemuProcessSetSchedParams * Remove niothreadspin * Remove the virNumaIsAvailable() hunk from qemuDomainChgIOThread Tks, John -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list