All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: lirongqing@baidu.com
Cc: kvm@vger.kernel.org, x86@kernel.org
Subject: Re: [PATCH] KVM: x86: Enable PIT shutdown quirk
Date: Fri, 3 Feb 2023 20:49:32 +0000	[thread overview]
Message-ID: <Y91zXD++4pSHKo6c@google.com> (raw)
In-Reply-To: <1675395710-37220-1-git-send-email-lirongqing@baidu.com>

Please use "x86/kvm:" for guest side changes.

On Fri, Feb 03, 2023, lirongqing@baidu.com wrote:
> From: Li RongQing <lirongqing@baidu.com>
> 
> 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@baidu.com>
> ---
>  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?

[*] https://lore.kernel.org/kvm/Y91yLt3EZLA32csp@google.com

  reply	other threads:[~2023-02-03 20:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-03  3:41 [PATCH] KVM: x86: Enable PIT shutdown quirk lirongqing
2023-02-03 20:49 ` Sean Christopherson [this message]
2023-02-06  1:23   ` Li,Rongqing

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y91zXD++4pSHKo6c@google.com \
    --to=seanjc@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=lirongqing@baidu.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.