qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	kvm@vger.kernel.org
Subject: [Qemu-devel] [PATCH v3 0/2] kvm: limited x86 CPU power management
Date: Sat, 16 Jun 2018 01:29:02 +0300	[thread overview]
Message-ID: <20180615222855.44421-1-mst@redhat.com> (raw)

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 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 -dedicated 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

             reply	other threads:[~2018-06-15 22:29 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-15 22:29 Michael S. Tsirkin [this message]
2018-06-15 22:29 ` [Qemu-devel] [PATCH v3 1/2] kvm: support -dedicated cpu-pm=on|off Michael S. Tsirkin
2018-06-19 15:17   ` Paolo Bonzini
2018-06-19 20:43     ` Michael S. Tsirkin
2018-06-20 14:20       ` Paolo Bonzini
2018-06-20 14:29         ` Michael S. Tsirkin
2018-06-20 14:45           ` Paolo Bonzini
2018-06-19 22:07     ` Eric Blake
2018-06-20  0:06       ` Michael S. Tsirkin
2018-06-20  0:46         ` Wanpeng Li
2018-06-20  2:41           ` Michael S. Tsirkin
2018-07-05  5:52             ` Wanpeng Li
2018-06-15 22:29 ` [Qemu-devel] [PATCH v3 2/2] i386/cpu: make -cpu host support monitor/mwait Michael S. Tsirkin
2018-06-16  0:05 ` [Qemu-devel] [PATCH v3 0/2] kvm: limited x86 CPU power management no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180615222855.44421-1-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).