On 07/21/2012 03:37 AM, Bhushan Bharat-R65777 wrote: > > >> -----Original Message----- >> From: Wood Scott-B07421 >> Sent: Saturday, July 21, 2012 2:59 AM >> To: Bhushan Bharat-R65777 >> Cc: kvm-ppc@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; agraf@xxxxxxx; Bhushan Bharat- >> R65777 >> Subject: Re: [PATCH 2/2 v5] KVM: PPC: booke: Add watchdog emulation >> >> On 07/20/2012 12:00 AM, Bharat Bhushan wrote: >>> +static void arm_next_watchdog(struct kvm_vcpu *vcpu) { >>> + unsigned long nr_jiffies; >>> + >>> + spin_lock(&vcpu->arch.wdt_lock); >>> + nr_jiffies = watchdog_next_timeout(vcpu); >>> + /* >>> + * If the number of jiffies of watchdog timer >= NEXT_TIMER_MAX_DELTA >>> + * then do not run the watchdog timer as this can break timer APIs. >>> + */ >>> + if (nr_jiffies < NEXT_TIMER_MAX_DELTA) >>> + mod_timer(&vcpu->arch.wdt_timer, jiffies + nr_jiffies); >>> + else >>> + del_timer(&vcpu->arch.wdt_timer); >>> + spin_unlock(&vcpu->arch.wdt_lock); >>> +} >> >> This needs to be an irqsave lock. > > Ok, I want to understood why irqsave lock should be used here? > > irqsave_lock is used when the critical section within lock can be > referenced from interrupt context also. What part of critical section > above can get affected from local irq? Is it jiffies here? This can be called from the watchdog timer. Timers run in interrupt context. -Scott -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html