On Mon, Nov 26, 2018 at 04:47:31PM +0100, Vitaly Kuznetsov wrote:
> @@ -379,6 +398,14 @@ void kvm_hv_synic_send_eoi(struct kvm_vcpu *vcpu, int 
> vector)
>       for (i = 0; i < ARRAY_SIZE(synic->sint); i++)
>               if (synic_get_sint_vector(synic_read_sint(synic, i)) == vector)
>                       kvm_hv_notify_acked_sint(vcpu, i);
> +
> +     for (i = 0; i < ARRAY_SIZE(hv_vcpu->stimer); i++) {
> +             stimer = &hv_vcpu->stimer[i];
> +             if (stimer->msg_pending && stimer->config.enable &&
> +                 stimer->config.direct_mode &&
> +                 stimer->config.apic_vector == vector)
> +                     stimer_mark_pending(stimer, false);
> +     }
>  }

While debugging another issue with synic timers, it just occurred to me
that with direct timers no extra processing is necessary on EOI: unlike
traditional synic timers which may have failed to deliver a message and
want to be notified when they can retry, direct timers just set the irq
directly in the apic.

So this hunk shouldn't be needed, should it?

Roman.

Reply via email to