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

From: Wanpeng Li
Date: Thu Jun 29 2017 - 04:18:03 EST


2017-06-29 15:55 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>:
>> +
>> + /* In case the sw timer triggered in the window */
>> + if (atomic_read(&apic->lapic_timer.pending) &&
>> + !apic_lvtt_period(apic))
>> + need_cancel = true;
>> + else if (r && (apic_lvtt_oneshot(apic) ||
>> apic_lvtt_tscdeadline(apic)))
>> + apic_timer_expired(apic);
>> + }
>> + }

[...]

>
> You still need to enable the preemption timer even if you return 1, so
> in lapic.c it becomes
>
> if (!apic_lvtt_period(apic)) {
> if (r)
> apic_timer_expired(apic);
> if (atomic_read(&apic->lapic_timer.pending))
> need_cancel = true;
> }

I think the codes are more clear but the same as above. We didn't
program preemption timer vmcs field if delta == 0, so how to
understand "need to enable the preemption timer even if return 1"?

>
>
> Otherwise it looks good. Thanks for your persistence. :)

Thanks for your help and patient. :)

Regards,
Wanpeng Li