Thread (34 messages) 34 messages, 7 authors, 2017-03-02

Re: [PATCH v2 net] net: solve a NAPI race

From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2017-03-01 00:40:36

David Miller [off-list ref] :
From: Eric Dumazet <redacted>
Date: Mon, 27 Feb 2017 08:44:14 -0800
quoted
Any point doing a napi_schedule() not from device hard irq handler
is subject to the race for NIC using some kind of edge trigger
interrupts.

Since we do not provide a ndo to disable device interrupts, the
following can happen.
Ok, now I understand.

I think even without considering the race you are trying to solve,
this situation is really dangerous.

I am sure that every ->poll() handler out there was written by an
author who completely assumed that if they are executing then the
device's interrupts for that NAPI instance are disabled.  And this is
with very few, if any, exceptions.
Shareable pci irq used to remind author that such an assumption was
not always right. Otoh it was still manageable as long as level only
triggered irq were involved.

-- 
Ueimor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help