[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] newer Linux: handle_level_irq() vs. handle_fasteoi_irq()
In order to be able to properly disable level triggered interrupts that, due to malfunctioning hardware/firmware, never get de-asserted, the use of handle_level_irq() in both pv-ops Dom0 and forward ported kernels (starting with 2.6.19) seems problematic: Other than with 2.6.18's use of __do_IRQ(), irq_chip->end() doesn't get called anymore, and there also is no replacement call made from that function (->umask() is only being called on non-disabled IRQs), and hence the respective logic contained in pirq_end() doesn't really get used anymore. handle_fasteoi_irq(), otoh, has an unconditional ->eoi() callout at its end, which would suit these needs. The main difference of handle_fasteoi_irq() compared with handle_level_irq() is that the IRQ doesn't get masked upfront. I'm not really that much into the necessary details here, but it would seem that using handle_fasteoi_irq() should be possible if a hypothetical pirq_eoi() called clear_evtchn() along with what end_pirq() currently does. Any insight on potential problems with this would be appreciated. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |