On 14/07/2019 03:31, Benjamin Herrenschmidt wrote: > On Sat, 2019-07-13 at 18:53 +1000, Alexey Kardashevskiy wrote: >> >> On 13/07/2019 09:47, Benjamin Herrenschmidt wrote: >>> On Fri, 2019-07-12 at 19:37 +1000, Alexey Kardashevskiy wrote: >>>> >>> >>> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/kernel/irq.c#n614 >>>> >>>> If so, then in order to do EOI, I'll need the desc which is gone, >>>> or >>>> I am missing the point? >>> >>> All you need is drop the local CPU priority. >> >> I know that, the question was how. I cannot use irq_chip in >> arch/powerpc/kernel/irq.c and I do not want to add >> ppc_md.enable_irqs(). > > Well, best is probably to do just that though, but call it something > like ppc_md.orphan_irq() or something like that instead. Another option > as you mention is to try to scrub queues, but that's trickier to do due > to the lockless nature of the queue handling.
When the IRQ is shutdown, couldn't we cleanup the CPU EQ by filtering all the dangling entries, and replacing them with zeroes ? That would be alternative 1, but I don't think we need to scan all cpus. The last target should be enough. C.