[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH] dpci: Put the dpci back on the list if running on another CPU.
Tuesday, March 17, 2015, 9:18:32 AM, you wrote: >>>> On 16.03.15 at 18:59, <konrad.wilk@xxxxxxxxxx> wrote: >> Hence was wondering if it would just be easier to put >> this patch in (see above) - with the benfit that folks have >> an faster interrupt passthrough experience and then I work on another >> variant of this with tristate cmpxchg and ->mapping atomic counter. > Considering how long this issue has been pending I think we really > need to get _something_ in (or revert); if this something is the > patch in its most recent form, so be it (even if maybe not the > simplest of all possible variants). So please submit as a proper non- > RFC patch. > Jan I'm still running with this first simple stopgap patch from Konrad, and it has worked fine for me since. I will see if this new one also "works-for-me", somewhere today :-) -- Sander diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c index ae050df..d1421b0 100644 --- a/xen/drivers/passthrough/io.c +++ b/xen/drivers/passthrough/io.c @@ -804,7 +804,18 @@ static void dpci_softirq(void) d = pirq_dpci->dom; smp_mb(); /* 'd' MUST be saved before we set/clear the bits. */ if ( test_and_set_bit(STATE_RUN, &pirq_dpci->state) ) - BUG(); + { + unsigned long flags; + + /* Put back on the list and retry. */ + local_irq_save(flags); + list_add_tail(&pirq_dpci->softirq_list, &this_cpu(dpci_list)); + local_irq_restore(flags); + + raise_softirq(HVM_DPCI_SOFTIRQ); + continue; + } + /* * The one who clears STATE_SCHED MUST refcount the domain. */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |