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

RE: [Xen-devel] [PATCH][RFC] pv-ops: fix shared irq device passthrough

Jeremy Fitzhardinge wrote:
> On 10/26/09 18:32, Han, Weidong wrote:
>>> Hm, not sure about this.  The logic in __setup_irq already looks
>>> pretty tortured, and I'd like to avoid touching it unless there's
>>> definitively a bug in there. 
>>> I think the right question is whether probe_irq() is really doing
>>> the right test, and whether it could do something else instead?
>> Totally agree. The better way is to change probe_irq, therefore
>> needn't touch kernel irq stuffs. probe_irq is just check if
>> desc->action == NULL or not. The code is there for a long long time
>> (from c/s 26 in linux-2.6.18-xen.hg). I don't know whether it can be
>> replaced.    
> Could you look into it?  How many drivers do interrupt probing these
> days anyway?  I think we can safely not support ISA devices.
>     J

All devices will call probing_irq in startup_pirq, which bind pirq to event 
channel. But now probing_irq always returns false, then all pirqs are not 
shareable. In my system, a PCI NIC, an USB controller and an IDE interface 
device share the same IRQ 18. Because above reason, pirq 18 is set not 
shareable. So when I hide the PCI NIC, and assign it to guest, it fails in 
guest_bind_pirq, therefore the PCI NIC in guest cannot work, even impact the 
devices who share the IRQ 18.

If don't want to change __setup_irq code like my patch does, current 
probing_irq is useless (always return false). The problem is there is almost no 
information in desc can be used in probing_irq if desc->action is NULL. Keir, 
do you have any ideas?

Xen-devel mailing list



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