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

Avi Kivity
2008-03-06T06:47:47Z

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.

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.

> 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;
>
>

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.