[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/4] x86/IRQ: don't keep EOI timer running without need
>>> On 05.06.19 at 19:04, <andrew.cooper3@xxxxxxxxxx> wrote: > On 08/05/2019 13:46, Jan Beulich wrote: >> The timer needs to remain active only until all pending IRQ instances >> have seen EOIs from their respective domains. Stop it when the in-flight >> count has reached zero in desc_guest_eoi(). Note that this is race free >> (with __do_IRQ_guest()), as the IRQ descriptor lock is being held at >> that point. >> >> Also pull up stopping of the timer in __do_IRQ_guest() itself: Instead >> of stopping it immediately before re-setting, stop it as soon as we've >> made it past any early returns from the function (and hence we're sure >> it'll get set again). > > Why this this a good thing? For it to not fire when it doesn't need to. If we're about to set a new timeout, we clearly don't want the previous one to have any effect anymore. >> --- a/xen/arch/x86/irq.c >> +++ b/xen/arch/x86/irq.c >> @@ -1115,6 +1115,9 @@ static void irq_guest_eoi_timer_fn(void >> >> action = (irq_guest_action_t *)desc->action; >> > > /* Another instance of this timer already running? Skip everything to > avoid forcing an EOI early. */ Fine with me, added. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |