2018-05-05 11:04:56

by Wanpeng Li

[permalink] [raw]
Subject: [PATCH v3] KVM: X86: Lower the default timer frequency limit to 200us

From: Wanpeng Li <[email protected]>

Anthoine reported:
The period used by Windows change over time but it can be 1
milliseconds or less. I saw the limit_periodic_timer_frequency
print so 500 microseconds is sometimes reached.

As suggested by Paolo, lower the default timer frequency limit to a
smaller interval of 200 us (5000 Hz) to leave some headroom. This
is required due to Windows 10 changing the scheduler tick limit
from 1024 Hz to 2048 Hz.

Reported-by: Anthoine Bourgeois <[email protected]>
Suggested-by: Paolo Bonzini <[email protected]>
Reviewed-by: Darren Kenny <[email protected]>
Cc: Paolo Bonzini <[email protected]>
Cc: Radim Krčmář <[email protected]>
Cc: Anthoine Bourgeois <[email protected]>
Cc: Darren Kenny <[email protected]>
Cc: Jan Kiszka <[email protected]>
Signed-off-by: Wanpeng Li <[email protected]>
---
v2 -> v3:
* update patch subject and description
v1 -> v2:
* update patch subject and description

arch/x86/kvm/x86.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 51ecd38..dc47073 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -114,7 +114,7 @@ module_param(ignore_msrs, bool, S_IRUGO | S_IWUSR);
static bool __read_mostly report_ignored_msrs = true;
module_param(report_ignored_msrs, bool, S_IRUGO | S_IWUSR);

-unsigned int min_timer_period_us = 500;
+unsigned int min_timer_period_us = 200;
module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR);

static bool __read_mostly kvmclock_periodic_sync = true;
--
2.7.4



2018-05-15 01:34:07

by Wanpeng Li

[permalink] [raw]
Subject: Re: [PATCH v3] KVM: X86: Lower the default timer frequency limit to 200us

ping,
2018-05-05 19:02 GMT+08:00 Wanpeng Li <[email protected]>:
> From: Wanpeng Li <[email protected]>
>
> Anthoine reported:
> The period used by Windows change over time but it can be 1
> milliseconds or less. I saw the limit_periodic_timer_frequency
> print so 500 microseconds is sometimes reached.
>
> As suggested by Paolo, lower the default timer frequency limit to a
> smaller interval of 200 us (5000 Hz) to leave some headroom. This
> is required due to Windows 10 changing the scheduler tick limit
> from 1024 Hz to 2048 Hz.
>
> Reported-by: Anthoine Bourgeois <[email protected]>
> Suggested-by: Paolo Bonzini <[email protected]>
> Reviewed-by: Darren Kenny <[email protected]>
> Cc: Paolo Bonzini <[email protected]>
> Cc: Radim Krčmář <[email protected]>
> Cc: Anthoine Bourgeois <[email protected]>
> Cc: Darren Kenny <[email protected]>
> Cc: Jan Kiszka <[email protected]>
> Signed-off-by: Wanpeng Li <[email protected]>
> ---
> v2 -> v3:
> * update patch subject and description
> v1 -> v2:
> * update patch subject and description
>
> arch/x86/kvm/x86.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 51ecd38..dc47073 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -114,7 +114,7 @@ module_param(ignore_msrs, bool, S_IRUGO | S_IWUSR);
> static bool __read_mostly report_ignored_msrs = true;
> module_param(report_ignored_msrs, bool, S_IRUGO | S_IWUSR);
>
> -unsigned int min_timer_period_us = 500;
> +unsigned int min_timer_period_us = 200;
> module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR);
>
> static bool __read_mostly kvmclock_periodic_sync = true;
> --
> 2.7.4
>

2018-05-15 09:58:31

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH v3] KVM: X86: Lower the default timer frequency limit to 200us

On 05/05/2018 13:02, Wanpeng Li wrote:
> From: Wanpeng Li <[email protected]>
>
> Anthoine reported:
> The period used by Windows change over time but it can be 1
> milliseconds or less. I saw the limit_periodic_timer_frequency
> print so 500 microseconds is sometimes reached.
>
> As suggested by Paolo, lower the default timer frequency limit to a
> smaller interval of 200 us (5000 Hz) to leave some headroom. This
> is required due to Windows 10 changing the scheduler tick limit
> from 1024 Hz to 2048 Hz.
>
> Reported-by: Anthoine Bourgeois <[email protected]>
> Suggested-by: Paolo Bonzini <[email protected]>
> Reviewed-by: Darren Kenny <[email protected]>
> Cc: Paolo Bonzini <[email protected]>
> Cc: Radim Krčmář <[email protected]>
> Cc: Anthoine Bourgeois <[email protected]>
> Cc: Darren Kenny <[email protected]>
> Cc: Jan Kiszka <[email protected]>
> Signed-off-by: Wanpeng Li <[email protected]>
> ---
> v2 -> v3:
> * update patch subject and description
> v1 -> v2:
> * update patch subject and description
>
> arch/x86/kvm/x86.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 51ecd38..dc47073 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -114,7 +114,7 @@ module_param(ignore_msrs, bool, S_IRUGO | S_IWUSR);
> static bool __read_mostly report_ignored_msrs = true;
> module_param(report_ignored_msrs, bool, S_IRUGO | S_IWUSR);
>
> -unsigned int min_timer_period_us = 500;
> +unsigned int min_timer_period_us = 200;
> module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR);
>
> static bool __read_mostly kvmclock_periodic_sync = true;
>

Applied, thanks.

Paolo