On Wed, 19 Sep 2007 10:35:08 -0700 (PDT) David Miller <[EMAIL PROTECTED]> wrote:
> From: David Miller <[EMAIL PROTECTED]> > Date: Wed, 19 Sep 2007 09:58:25 -0700 (PDT) > > > Probably a good way to deal with this is to simply make the quota > > handling stateless. > > > > The only reason we handle partial quota usage is to handle the > > global netdev_budget. But we can simply "round up" and let > > netdev_budget get oversubscribed by one napi->quota's worth > > if necessary. > > > > At that point, n->quota only holds two states when used, full > > and empty. And at that point there is no reason to maintain > > it's value at all. Only the weight is necessary. > > > > I'll try to post a patch which implements this later today. > > Ok, here is the patch and I've checked it into net-2.6.24 as well. > > There really shouldn't be any fundamental synchronization issues > in the new NAPI stuff any longer. I'm pretty sure any problems > remaining can only be caused by drivers bugs but we'll see :-) > > I went over the list handling several times and it looks bulletproof. > Only the thread of control that sets the NAPI_STATE_SCHED bit > atomically will do list modifications, until the thread of control > that decides unconditionally to clear the bit, which will do a > list_del() immediately before clearing that bit. > > There might be a future problem if some driver decided to change weight often on the fly? Perhaps you need to sample it once in start of napi_schedule. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html