From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754098Ab1BAPyo (ORCPT ); Tue, 1 Feb 2011 10:54:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14307 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751436Ab1BAPyn (ORCPT ); Tue, 1 Feb 2011 10:54:43 -0500 Subject: Re: [PATCH v2 6/6] Describe KVM_MSR_STEAL_TIME From: Glauber Costa To: Avi Kivity Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, aliguori@us.ibm.com In-Reply-To: <4D456555.2030606@redhat.com> References: <1296244340-15173-1-git-send-email-glommer@redhat.com> <1296244340-15173-7-git-send-email-glommer@redhat.com> <4D456555.2030606@redhat.com> Content-Type: text/plain; charset="UTF-8" Organization: Red Hat Date: Tue, 01 Feb 2011 13:54:40 -0200 Message-ID: <1296575680.5081.14.camel@mothafucka.localdomain> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 2011-01-30 at 15:19 +0200, Avi Kivity wrote: > On 01/28/2011 09:52 PM, Glauber Costa wrote: > > This patch adds documentation about usage of the newly > > introduced KVM_MSR_STEAL_TIME. > > > > > > + > > +MSR_KVM_STEAL_TIME: 0x4b564d03 > > + > > + data: 4-byte alignment physical address of a memory area which must be > > + in guest RAM, plus an enable bit in bit 0. > > 64-byte aligned: > - avoids wrapping around a page boundary, which may let us optimize > things later on (see kvm_write_guest_cached()). > - gives us 5 more unused bits to enable more options > > > This memory is expected to > > + hold a copy of the following structure: > > + > > + struct kvm_steal_time { > > + __u64 steal; > > + __u32 version; > > + __u32 flags; > > + __u32 pad[6]; > > + } > > + > > + whose data will be filled in by the hypervisor periodically. Only one > > + write, or registration, is needed for each VCPU. The interval between > > + updates of this structure is arbitrary and implementation-dependent. > > + The hypervisor may update this structure at any time it sees fit until > > + anything with bit0 == 0 is written to it. > > + > > + Fields have the following meanings: > > + > > + version: guest has to check version before and after grabbing > > + time information and check that they are both equal and even. > > + An odd version indicates an in-progress update. > > + > > + flags: At this point, always zero. May be used to indicate > > + changes in this structure in the future. > > + > > + steal: the amount of time in which this vCPU did not run, in > > + nanoseconds. > > + > > The guest must initialize the entire 64-byte structure to zero before > enabling the feature. I honestly don't see why. But I also don't see why not... Will update it.