On 22/06/2018 21:22, Michael S. Tsirkin wrote: > This adds ability to expose some host CPU power management capabilities > to guests. For intel guests, this is sufficient for guest to enable low > power CPU states on idle. For AMD guests it isn't sufficient, deeper > C-states are entered using System-IO. > > When enabled this puts CPU in a low power state with exit latencies that > can go up to multiple milliseconds, and makes host scheduler as well as > host utilities such as top and powertop think the CPU is constantly > busy. Thus it has the effect of dedicating a host CPU for this guest. > > mwait based power management is tied closely to specifics of CPUID, > making migration challenging. At this point only the non-migrateable > -cpu host is supported. > > With this patch applied, VM latency is within the noise of > baremetal for some benchmarks. > > perf bench sched pipe results: > Before: > 6.452 sec > After: > 4.382 sec > Baremetal: > 4.136 sec > > Changes since v5: > Typo fix. > > Changes since v4: > See v3, now for real. > > Changes since v3: > At Paolo's suggestion, rename -dedicated to -overcommit. > > Changes since v2: > At Daniel's suggestion, don't use the -realtime flag. > > At Paolo's suggestion, group this with memory lock flag > which has a similar effect of dedicating memory to this VM. > > Michael S. Tsirkin (2): > kvm: support -overcommit cpu-pm=on|off > i386/cpu: make -cpu host support monitor/mwait > > include/sysemu/sysemu.h | 1 + > target/i386/cpu.h | 9 +++++++++ > target/i386/cpu.c | 19 ++++++++++++++----- > target/i386/kvm.c | 32 ++++++++++++++++++++++++++++++++ > vl.c | 32 +++++++++++++++++++++++++++++++- > qemu-options.hx | 27 +++++++++++++++++++++++++-- > 6 files changed, 112 insertions(+), 8 deletions(-) > Queued, thanks. Paolo