-
-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add support for CPU pinning #615
Comments
You can add additional qemu arguments via a parameter in the VM.conf. So you can already achieve that I believe, but you should do a bit of research, consider the goals you are aiming for, be aware of the impact of your CPU architecture and numa arrangements... You might also need to tweak settings on your host if that is necessary to, say, reserve some cores/threads for exclusive VM use (as opposed to forcing the VM virtual cores/threads to specific physical cores/threads (/chiplets/CPUs ...) |
@philclifford Which parameters should we use specifically within the VM.conf to pass through CPU pinning information. Performance is terrible WITHOUT CPU pinning especially in macOS and Windows. This should certainly be addressed. In fact CPU pinning should be enabled out of the box or you're looking at inordinate amounts of time in both OS installations. There's a lot of greatness in quickemu however this problem draws away from that. Should be high priority to solve for baseline usability. |
I did look around a decent bit. AFAICT from You cant even provide the number of threads, which is easy enough with raw qemu. How to do what is commonly referred to as cpu-pinning with the raw commandline isnt very well documented in secondary documentation (articles etc, they mostly suggest using But as it stands, as far as I can tell, quickemu does NOT support this even indirectly by providing a way to pass through parameters. The best way we can currently use quickemu with it, as far as I can tell, is to make it generate a windows machine, calling it once with quickemu, and then afterwards copy and manipulate the generated My use-case to want this is that I currently use a laptop with mobile Intel 12th Gen and little enough battery life. When I use quickemu it burns through my battery. But I believe that if I can only use like 6 of the efficiency cores that 12th gen introduced (which also only have 1 thread each, but even my low power one has 8 of them) then I might have a VM with decent enough performance but without burning so much energy. |
extra_args="-whatever you -want" in the VM.conf will put extra parameters in the regenerated VM.sh for you |
Oh wow, yeah, that should do it. Shouldnt have overlooked that, though, in fairness, it doesnt appear to be documented in the manpage, only in Gonna experiment a bit if I can also override the number of threads with that invocation, that would depend on where its placed in the invocation of qemu. |
Hmm. Quickemu Adds these parameters to the end of the invocation. I tried to override the smp for starters. qemu actually validated these parameters when I provided a faulty config, but it doesnt appear to override the earlier provided parameters. On my machine quickemu defaulted to
|
Ok @9SMTM6 thanks for the valuable feedback. And best wishes for the exam! |
Added in #626 |
Will implementing something like this be possible? |
I wish to be able to pin some cores of my processor to the QEMU process. Would it be possible to get that done with
quickemu
?The text was updated successfully, but these errors were encountered: