[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] IRQs, move_in_progress, -EBUSY &c
I have a machine on which the pvops kernel boots fine in bare metal, but when running under Xen, times out waiting for the root device. The console log (with some additional messages added to track back the root problem) is attached. Going backwards to the root of the problem: The root device times out even though the device driver successfully loads and sees the device -- it complains about missing interrupts. It misses interrupts because the PHYSDEVOP_setup_gsi returns -16, EBUSY, and the pvops kernel doesn't retry; so the gsi is never set up. PHYSDEVOP_setup_gsi returns -EBUSY because the IRQ in question is marked move_in_progress. It was marked move_in_progress earlier when one of the serial drivers remapped the first 15 IRQs. (At least, I presume it's the serial driver, since it happens immediately after the serial driver is loaded; I could be wrong.) I have a simple work-around, which is to set dom0_max_vcpus=0 on the Xen command line; the guest successfully boots after that. (So I should be able to test those p2m patches that have been queued up for a few weeks now.) However, it seems that moving IRQs is not handled properly. Either the pvops kernel should retry if it gets an -EBUSY, or the hypercall should not fail, but wait until it can return success. I discovered all this by adding debug statements to the IRQ path; the patch is attached, if anyone else wants to use it. -George Attachment:
exile.006.log Attachment:
interrupt-bug-hunt.diff _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |