Re: [PATCH v3] genirq: avoid long loops in handle_edge_irq

From: Thomas Gleixner
Date: Fri Oct 13 2023 - 04:44:42 EST


On Thu, Oct 12 2023 at 21:39, Wei Gong wrote:
> O Mon, Oct 09, 2023 at 04:32:10PM +0200, Thomas Gleixner wrote:
>> Now $COND is not true due to the affinity change and the edge handler
>> returns. As a consequence nothing acks the device and no further
>> interrupts are sent by the device.
>>
>> That might not be true for your case, but that's a generic function and the
>> zoo of hardware which uses that is massive.
>>
>> So no, we are not taking a risk here.
>>
>> Thanks,
>>
>> tglx
>>
>>
> By maintaining the original loop exit condition, if a mask mismatch is
> detected within the loop, we will not perform the unmask_irq operation.
> Instead, we will wait until the loop exits before executing unmask_irq.
> Could this approach potentially solve the issue of lost interrupts?

How so exactly?