From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH v2 4/6] KVM-GST: KVM Steal time registration Date: Sun, 30 Jan 2011 15:16:10 +0200 Message-ID: <4D45649A.4090709@redhat.com> References: <1296244340-15173-1-git-send-email-glommer@redhat.com> <1296244340-15173-5-git-send-email-glommer@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, aliguori@us.ibm.com, Rik van Riel , Jeremy Fitzhardinge , Peter Zijlstra To: Glauber Costa Return-path: In-Reply-To: <1296244340-15173-5-git-send-email-glommer@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 01/28/2011 09:52 PM, Glauber Costa wrote: > Register steal time within KVM. Everytime we sample the steal time > information, we update a local variable that tells what was the > last time read. We then account the difference. > > > > static void kvm_guest_cpu_offline(void *dummy) > { > kvm_pv_disable_apf(NULL); > + native_write_msr(MSR_KVM_STEAL_TIME, 0, 0); > apf_task_wake_all(); > } Don't use the native_ versions, they override the pvops implementation. It doesn't matter for kvm, but we're not supposed to know this. > + /* > + * using nanoseconds introduces noise, which accumulates easily > + * leading to big steal time values. We want, however, to keep the > + * interface nanosecond-based for future-proofness. The hypervisor may > + * adopt a similar strategy, but we can't rely on that. > + */ > + delta /= NSEC_PER_MSEC; > + delta *= NSEC_PER_MSEC; You're working around this problem both in the guest and host. So even if we fix it in one, it will still be broken in the other. > + > + return delta; > +} > + -- error compiling committee.c: too many arguments to function