From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fWRRL-0000jx-Bb for qemu-devel@nongnu.org; Fri, 22 Jun 2018 15:09:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fWRRH-0007DK-Bl for qemu-devel@nongnu.org; Fri, 22 Jun 2018 15:09:47 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:48384 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fWRRH-0007DG-6i for qemu-devel@nongnu.org; Fri, 22 Jun 2018 15:09:43 -0400 Date: Fri, 22 Jun 2018 22:09:42 +0300 From: "Michael S. Tsirkin" Message-ID: <20180622190936.177827-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] [PATCH v5 0/2] kvm: limited x86 CPU power management List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcelo Tosatti , kvm@vger.kernel.org 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 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 +++++++++ migration/migration.c | 1 + target/i386/cpu.c | 19 ++++++++++++++----- target/i386/kvm.c | 32 ++++++++++++++++++++++++++++++++ vl.c | 32 +++++++++++++++++++++++++++++++- qemu-options.hx | 27 +++++++++++++++++++++++++-- 7 files changed, 113 insertions(+), 8 deletions(-) -- MST