[Qemu-devel] [PATCH v4 0/2] kvm: limited x86 CPU power management

Michael S. Tsirkin posted 2 patches 5 years, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180622003140.164613-1-mst@redhat.com
Test checkpatch failed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test s390x passed
There is a newer version of this series
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         | 18 ++++++++++++++++++
6 files changed, 105 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH v4 0/2] kvm: limited x86 CPU power management
Posted by Michael S. Tsirkin 5 years, 9 months ago
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 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         | 18 ++++++++++++++++++
 6 files changed, 105 insertions(+), 6 deletions(-)

-- 
MST


Re: [Qemu-devel] [PATCH v4 0/2] kvm: limited x86 CPU power management
Posted by no-reply@patchew.org 5 years, 9 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20180622003140.164613-1-mst@redhat.com
Subject: [Qemu-devel] [PATCH v4 0/2] kvm: limited x86 CPU power management

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/20180621223946.20738-1-clg@kaod.org -> patchew/20180621223946.20738-1-clg@kaod.org
 * [new tag]               patchew/20180622003140.164613-1-mst@redhat.com -> patchew/20180622003140.164613-1-mst@redhat.com
 * [new tag]               patchew/20180622004435.10291-1-f4bug@amsat.org -> patchew/20180622004435.10291-1-f4bug@amsat.org
Switched to a new branch 'test'
ce1bdc31af i386/cpu: make -cpu host support monitor/mwait
577f258b15 kvm: support -overcommit cpu-pm=on|off

=== OUTPUT BEGIN ===
Checking PATCH 1/2: kvm: support -overcommit cpu-pm=on|off...
ERROR: do not initialise globals to 0 or NULL
#103: FILE: vl.c:145:
+bool enable_cpu_pm = false;

total: 1 errors, 0 warnings, 110 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/2: i386/cpu: make -cpu host support monitor/mwait...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com