[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Re: IRQs, move_in_progress, -EBUSY &c



On 11/08/2010 20:06, "George Dunlap" <George.Dunlap@xxxxxxxxxxxxx> wrote:

> Looks like there are other callers of __assign_irq_vector() which also
> don't handle the -EBUSY return value, namely
> xen/arch/x86/io_apic.c:set_desc_affinity().

Looks like its callers do the same as on native Linux though -- namely
silently bail on error. I think the set_affinity type callers are pretty
benign if they fail-as-noop. In all of this, where possible I think we just
have to stay close to what Linux does.

 -- Keir

> Unfortunately, set_desc_affinity() cannot simply loop until it stops
> getting -EBUSY, as it is almost always called with irqs disabled -- so
> the very IPI which will call the function to make it not busy anymore
> is blocked.  And it only returns one value (a cpu mask), and the
> function which calls it returns no value at all; so we can's pass the
> "loop and retry" up one more level; we'd have to do a ton more code
> rewriting to be able to handle retries.
> 
> Can we just call the cleanup function directly if we get -EBUSY?




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.