KVM: x86: Add module parameter for lapic periodic timer limit
PATCH 1/1 KVM: x86: Add module parameter for lapic periodic timer limit
Certain guests, specifically RTOSes, request faster periodic timers than what we allow by default. Add a module parameter to adjust the limit for non-standard setups. Also add a rate-limited warning in case the guest requested more.
Signed-off-by Jan Kiszka <[email protected]>
--- arch/x86/kvm/lapic.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-)
arch/x86/kvm/lapic.c +13 -2
@@ -68,6 +68,9 @@#define VEC_POS (v) ((v) & (32 - 1))#define REG_POS (v) (((v) >> 5) << 4) +static unsigned int min_timer_period_us =500 ; +module_param (min_timer_period_us, uint,S_IRUGO |S_IWUSR ); +static inline u32 apic_get_reg (struct kvm_lapic *apic,int reg_off) {return *((u32 *) (apic->regs + reg_off));
@@ -677,8 +680,16 @@ static void start_apic_timer(struct kvm_lapic *apic)* scheduler. */ if (apic_lvtt_period (apic)) { -if (apic->lapic_timer.period <NSEC_PER_MSEC /2 ) - apic->lapic_timer.period =NSEC_PER_MSEC /2 ; +s64 min_period = min_timer_period_us *1000LL ; + +if (apic->lapic_timer.period < min_period) { +pr_info_ratelimited ( +"kvm: vcpu %i: requested %lld ns " +"lapic timer period limited to %lld ns\n" , + apic->vcpu->vcpu_id, apic->lapic_timer.period, + min_period); + apic->lapic_timer.period = min_period; + } } hrtimer_start(&apic->lapic_timer.timer,
Signature · 1 line
1.7.3.4
Marcelo Tosatti
AppliedQuoted 9 lines · Jan Kiszka
Certain guests, specifically RTOSes, request faster periodic timers than what we allow by default. Add a module parameter to adjust the limit for non-standard setups. Also add a rate-limited warning in case the guest requested more.
Signed-off-by Jan Kiszka <[email protected]>--- arch/x86/kvm/lapic.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-)
Applied, thanks.