lkml.org 
[lkml]   [2018]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH v2 3/4] x86/kvm/hyper-v: direct mode for synthetic timers
    Date
    Roman Kagan <rkagan@virtuozzo.com> writes:

    > 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?

    Hm, you're probably right: kvm_apic_set_irq() fails only when apic is
    disabled (see APIC_DM_FIXED case in __apic_accept_irq()) and I'm not
    convinced we should re-try in this synthetic case.

    Let me test the hypothesis with Hyper-V on KVM, I'll come back with
    either a patch removing this over-engineered part or a reson for it to
    stay. Will do later this week.

    Thanks!

    --
    Vitaly

    \
     
     \ /
      Last update: 2018-12-04 13:37    [W:4.167 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site