[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6D0F6BDFEE@AcuExch.aculab.com>
Date: Wed, 12 Feb 2014 16:38:36 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Michal Simek' <michal.simek@...inx.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: Srikanth Thokala <sthokal@...inx.com>,
Peter Crosthwaite <peter.crosthwaite@...inx.com>,
Michal Simek <monstr@...str.eu>,
"Anirudha Sarangi" <anirudh@...inx.com>,
John Linn <John.Linn@...inx.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 05/14] net: axienet: Service completion interrupts ASAP
From: Michal Simek
> From: Peter Crosthwaite <peter.crosthwaite@...inx.com>
>
> The packet completion interrupts for TX and RX should be serviced before
> the packets are consumed. This ensures against the degenerate case when a
> new completion interrupt is raised after the handler has exited but before
> the interrupts are cleared. In this case its possible for the ISR to clear
> an unhandled interrupt (leading to potential deadlock).
I would clear the IRQ after processing the last packet, and then do a final
check for another packet.
That reduces the number of interrupts you take and then find there is
no work (because it was done on the previous interrupt).
There is a slight 'gotcha' in that the write to clear the IRQ can easily
get delayed enough the that cpu exits the ISR before the IRQ line
actually drops - leading the unwanted and unclaimed interrupts.
A posted write over PCIe could easily take long enough.
Maybe a hybrid scheme where the IRQ is cleared when the next entry
is still owned by the device would work.
David
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists