On Wed, 2022-07-13 at 17:25 +0100, Daniel P. Berrangé wrote:
It would need to use SCOPE_THREAD_GROUP, except even that is not
sufficient
as the helper may have fork+exec'd another helper by this point, and
our
call will only affect the first process.
IOW, to set core scheduling cookies on the helpers, we need to set
them
upfront at the time we spawn the helper.
IOW, during startup, IIUC, we need to fork a dummy process solely to
call PR_SCHED_CORE_CREATE. Then when forking anything else, whether a
helper, or QEMU itself, we need to pull the cookie from that dummy
process, and then finally kill that dummy process.
Yes. Not pretty, but if forks are involved, that's the solution, I
think.
An alternative would be to create/pull the cookie in the main process
(the one that forks all the helpers), then do fork all helpers, and
then "clear" the cookie for it.
But I guess that would be even worse...
Regards
--
Dario Faggioli, Ph.D
http://about.me/dario.faggioli
Virtualization Software Engineer
SUSE Labs, SUSE
https://www.suse.com/
-------------------------------------------------------------------
<<This happens because _I_ choose it to happen!>> (Raistlin Majere)