Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752984AbbH2WVi (ORCPT ); Sat, 29 Aug 2015 18:21:38 -0400 Received: from blu004-omc1s6.hotmail.com ([65.55.116.17]:49305 "EHLO BLU004-OMC1S6.hotmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752454AbbH2WVg (ORCPT ); Sat, 29 Aug 2015 18:21:36 -0400 X-TMN: [p6Un1/eQIy+DtZ2jAs6/63GekBjaqb26] X-Originating-Email: [wanpeng.li@hotmail.com] Message-ID: Subject: Re: [PATCH v4 0/3] KVM: Dynamic Halt-Polling To: Peter Kieser References: <55E221B2.3000702@kieser.ca> CC: Paolo Bonzini , David Matlack , kvm , "linux-kernel@vger.kernel.org" From: Wanpeng Li Date: Sun, 30 Aug 2015 06:21:28 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <55E221B2.3000702@kieser.ca> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Aug 2015 22:21:34.0209 (UTC) FILETIME=[10270F10:01D0E2A9] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3078 Lines: 82 Hi Peter, On 8/30/15 5:18 AM, Peter Kieser wrote: > Hi Wanpeng, > > Do I need to set any module parameters to use your patch, or should > halt_poll_ns automatically tune with just your patch series applied? > You don't need any module parameters. Regards, Wanpeng Li > Thanks. > > On 2015-08-27 2:47 AM, Wanpeng Li wrote: >> v3 -> v4: >> * bring back grow vcpu->halt_poll_ns when interrupt arrives and >> shrinks >> when idle VCPU is detected >> >> v2 -> v3: >> * grow/shrink vcpu->halt_poll_ns by *halt_poll_ns_grow or >> /halt_poll_ns_shrink >> * drop the macros and hard coding the numbers in the param definitions >> * update the comments "5-7 us" >> * remove halt_poll_ns_max and use halt_poll_ns as the max >> halt_poll_ns time, >> vcpu->halt_poll_ns start at zero >> * drop the wrappers >> * move the grow/shrink logic before "out:" w/ "if (waited)" >> >> v1 -> v2: >> * change kvm_vcpu_block to read halt_poll_ns from the vcpu instead of >> the module parameter >> * use the shrink/grow matrix which is suggested by David >> * set halt_poll_ns_max to 2ms >> >> There is a downside of halt_poll_ns since poll is still happen for idle >> VCPU which can waste cpu usage. This patchset add the ability to adjust >> halt_poll_ns dynamically, grows halt_poll_ns if an interrupt arrives and >> shrinks halt_poll_ns when idle VCPU is detected. >> >> There are two new kernel parameters for changing the halt_poll_ns: >> halt_poll_ns_grow and halt_poll_ns_shrink. >> >> >> Test w/ high cpu overcommit ratio, pin vCPUs, and the halt_poll_ns of >> halt-poll is the default 500000ns, the max halt_poll_ns of dynamic >> halt-poll is 2ms. Then watch the %C0 in the dump of Powertop tool. >> The test method is almost from David. >> >> +-----------------+----------------+-------------------+ >> | | | | >> | w/o halt-poll | w/ halt-poll | dynamic halt-poll | >> +-----------------+----------------+-------------------+ >> | | | | >> | ~0.9% | ~1.8% | ~1.2% | >> +-----------------+----------------+-------------------+ >> The always halt-poll >> will increase ~0.9% cpu usage for idle vCPUs and the >> dynamic halt-poll drop it to ~0.3% which means that reduce the 67% >> overhead >> introduced by always halt-poll. >> >> Wanpeng Li (3): >> KVM: make halt_poll_ns per-VCPU >> KVM: dynamic halt_poll_ns adjustment >> KVM: trace kvm_halt_poll_ns grow/shrink >> >> include/linux/kvm_host.h | 1 + >> include/trace/events/kvm.h | 30 ++++++++++++++++++++++++++++ >> virt/kvm/kvm_main.c | 50 >> +++++++++++++++++++++++++++++++++++++++++++--- >> 3 files changed, 78 insertions(+), 3 deletions(-) > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/