[ofa-general] Re: [Bug, PATCH and another Bug] Was: Fix refcounting problem with netif_rx_reschedule()

David Miller davem at davemloft.net
Thu Sep 20 11:12:28 PDT 2007


From: Krishna Kumar2 <krkumar2 at in.ibm.com>
Date: Thu, 20 Sep 2007 10:48:15 +0530

> About the "list deletion occurs", isn't the race I mentioned still present?
> If done < budget, the driver does netif_rx_complete (at which time some
> other cpu can add this NAPI to their list). But the first cpu might do some more
> actions on the napi, like ipoib_poll() calls request_notify_cq(priv->cq),
> when other cpu might have started using this napi.
> 
> (net_rx_action's 'list_move' however will not execute since work != weight)

It is the driver's responsibility to adhere to the fact that once
netif_rx_complete() is called, the driver is explicitly relinquishing
ownership of the NAPI state.

It therefore must not access that NAPI state until it has successfully
acquired the NAPI_STATE_SCHED bit atomically, via a sched or resched.




More information about the general mailing list