[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070919.090557.24612742.davem@davemloft.net>
Date: Wed, 19 Sep 2007 09:05:57 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: krkumar2@...ibm.com
Cc: netdev@...r.kernel.org, rdreier@...co.com,
general@...ts.openfabrics.org
Subject: Re: [Bug, PATCH and another Bug] Was: Fix refcounting problem with
netif_rx_reschedule()
From: Krishna Kumar <krkumar2@...ibm.com>
Date: Wed, 19 Sep 2007 17:24:03 +0530
> Note: during steps F-H and C-E, priv/napi is read/modified by both cpu's
> which is another bug relating to the same race.
>
> I guess the above patch is not required if this bug (in IPoIB) is fixed?
The NAPI_STATE_SCHED flag bit should provide all of the necessary
synchornization.
Only the setter of that bit should add the NAPI instance to the
polling list.
The polling loop runs atomically on the cpu where the NAPI instance
got added to the per-cpu polling list. And therefore decisions to
complete NAPI are serialized too.
That serialized completion decision is also when the list deletion
occurs.
I'm starting to suspect the whole problem comes from the resched
facility, and now I really don't blame Stephen for trying to delete
it. Semantically it really makes things very difficult, especially
wrt. to the atomicity of the list handling.
-
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