Skip to contentSkip to conversation

KVM: x86: Add module parameter for lapic periodic timer limit

PATCH Applied Jan Kiszka 2 participants 2 messages Sep 12, 2011 – Sep 14, 2011

Subsystems (3)
lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

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.

---
 arch/x86/kvm/lapic.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
arch/x86/kvm/lapic.c +13 -2
index 4b53b81..2fb20ca 100644
@@ -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
#1 lore raw
Quoted 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.

---
 arch/x86/kvm/lapic.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

Applied, thanks.