RE: [PATCH] KVM: x86: Enable PIT shutdown quirk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Sean Christopherson <seanjc@xxxxxxxxxx>
> Sent: Saturday, February 4, 2023 4:50 AM
> To: Li,Rongqing <lirongqing@xxxxxxxxx>
> Cc: kvm@xxxxxxxxxxxxxxx; x86@xxxxxxxxxx
> Subject: Re: [PATCH] KVM: x86: Enable PIT shutdown quirk
> 
> Please use "x86/kvm:" for guest side changes.
> 
> On Fri, Feb 03, 2023, lirongqing@xxxxxxxxx wrote:
> > From: Li RongQing <lirongqing@xxxxxxxxx>
> >
> > KVM emulation of the PIT has a quirk such that the normal PIT shutdown
> > path doesn't work, because clearing the counter register restarts the
> > timer.
> >
> > Disable the counter clearing on PIT shutdown as in Hyper-V
> >
> > Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx>
> > ---
> >  arch/x86/kernel/kvm.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index
> > 1cceac5..14411b6 100644
> > --- a/arch/x86/kernel/kvm.c
> > +++ b/arch/x86/kernel/kvm.c
> > @@ -43,6 +43,7 @@
> >  #include <asm/reboot.h>
> >  #include <asm/svm.h>
> >  #include <asm/e820/api.h>
> > +#include <linux/i8253.h>
> >
> >  DEFINE_STATIC_KEY_FALSE(kvm_async_pf_enabled);
> >
> > @@ -978,6 +979,9 @@ static void __init kvm_init_platform(void)
> >  			wrmsrl(MSR_KVM_MIGRATION_CONTROL,
> >  			       KVM_MIGRATION_READY);
> >  	}
> > +
> > +	i8253_clear_counter_on_shutdown = false;
> 
> AFAICT, zeroing the counter isn't actually supposed to stop it from counting.
> Copy pasting from the KVM host-side patch[*]:
> 
>   The largest possible initial count is 0; this is equivalent to 216 for
>   binary counting and 104 for BCD counting.
> 
>   The Counter does not stop when it reaches zero. In Modes 0, 1, 4, and 5 the
>   Counter ‘‘wraps around’’ to the highest count, either FFFF hex for binary
> count-
>   ing or 9999 for BCD counting, and continues counting.
> 
>   Mode 0 is typically used for event counting. After the Control Word is written,
>   OUT is initially low, and will remain low until the Counter reaches zero. OUT
>   then goes high and remains high until a new count or a new Mode 0 Control
> Word
>   is written into the Counter.
> 
> Can we simply delete i8253_clear_counter_on_shutdown and the code it
> wraps?
> 

The git log did not record why counter register should be zeroed

I will try to delete the zeroing counter register codes

Thanks

-Li


> [*] https://lore.kernel.org/kvm/Y91yLt3EZLA32csp@xxxxxxxxxx




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux