On 8/7/2017 1:43 AM, Johannes Thumshirn wrote:
On Fri, Aug 04, 2017 at 05:47:23PM -0700, James Smart wrote:
From: Dick Kennedy <dick.kennedy@xxxxxxxxxxxx>
Various oops being seen on being in the ISR too long and cpu
lockups, when under heavy load.
The amount of work being posted off of completion queues kept
the ISR running almost all the time
Correct the issue by limiting the amount of work per itteration.
Have you considered using the IRQ poll mechanism for this? It deferres the
heavy lifing into the Soft-IRQ layer and this could help you a lot here. IIRC
I've sent James the "Slides" from my LSF/MM session which have the function
protoypes on 'em. See 'lib/irq_poll.c' or the be2iscsi driver for further
details.
We considered it, so far declined it - preferring the behavior of the
dynamic hw coalescing we have. That said, we're already considering the
softirq approach, which shouldn't be that large of a delta. However,
we've chosen to delay that change while we harden the overall stability.
-- james