Re: [PATCH 3/4] [PATCH] kvmclock: allow it to be turned off

Glauber Costa
2008-03-06T12:01:51Z

Avi Kivity wrote:
> Glauber Costa wrote:
>> Use the lower 3 lower bits of the system time msr to turn off the clock.
>> This means that all clock registration has to be aligned in a 4-byte
>> boundary
>>
>>
>
> 3 bits -> 8 bytes.
dohh!! true
/me ashamed.

> How about just using just bit 0 as an enable bit (not a disable bit).
> That means the default value of zero means the clock is disabled, and
> that we have a couple of more bits to enable future features.

Apart from the fact that it will break every single guest out there,
that's ok. As I said: these things are so early, that maybe we can pay
this price. Your call.

>> Signed-off-by: Glauber Costa <gcosta@redhat.com>
>> ---
>> arch/x86/kvm/x86.c | 5 +++++
>> 1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index 6abd784..7ce14ce 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -591,6 +591,11 @@ int kvm_set_msr_common(struct kvm_vcpu *
>> if (vcpu->arch.time_page)
>> kvm_release_page_dirty(vcpu->arch.time_page);
>>
>> + /* 4-byte unaligned accesses are invalid */
>> + if (data & 0x7) {
>> + vcpu->arch.time_page = NULL;
>> + break;
>> + }
>> vcpu->arch.time = data & PAGE_MASK;
>> vcpu->arch.time_offset = data & ~PAGE_MASK;
>>
>>