Re: [PATCH v3] KVM: LAPIC: Fix lapic timer injection delay

From: Paolo Bonzini
Date: Thu Jun 29 2017 - 08:14:22 EST




On 29/06/2017 14:05, Wanpeng Li wrote:
> + /* In case the sw timer triggered in the window */
> + if (!apic_lvtt_period(apic)) {
> + if (r || atomic_read(&apic->lapic_timer.pending)) {
> + need_cancel = true;
> + if (r)
> + apic_timer_expired(apic);
> + }
> + }

Yes, that's equivalent. The compiler should thread the jumps as if it were:

if (r) {
apic_timer_expired(apic);
goto cancel_timer;
}
if (atomic_read(&apic->lapic_timer.pending))
goto cancel_timer;

so it produces pretty good code too.

Paolo