On Thu, Nov 08, 2012 at 07:23:57PM +0100, Rene Rebe wrote:
But with that patch the CPU does not wake on write access? I guess just with the next "spurious" interrupt?
No, PAUSE is emulated as trying to yield to another VCPU before resuming the current one, just a "slow NOP".
I am planning to try emulating MWAIT as (something similar to) HLT, which would pause the VCPU until the next interrupt. That should quiet down the num_smp x 100% CPU utilization reported by qemu on the host side, while the guest is just sitting idle... :)
Now that I have MONITOR and MWAIT trap into the host, I'm studying KVM source for some more "intelligent" way of emulating them. Ideally, I'd be able to trap on writes to the memory area set up with MONITOR that MWAIT is sleeping on, but I worry that even if I could do that, trapping on writes would have a serious performance downside.
As you may have guessed, I took up your suggestion of looking at MONITOR/MWAIT for my project, so any ideas you may have for me are much appreciated ! :)
Thanks much, --Gabriel
P.S. Maybe we should trim the CC list back down to you, Alex, and myself, I worry this is going beyond what e.g. the seabios list might want to hear about...