Re: [PATCH RFX]: napi_struct V3

2007-07-28 Thread David Miller
From: Roland Dreier <[EMAIL PROTECTED]> Date: Sat, 28 Jul 2007 08:21:58 -0700 > > Another area of consternation are drivers that were using > > netif_rx_reschedule(), as that interface was removed because it > > doesn't fit well with the caller managing the dev->quota et al. I > > left race c

Re: [PATCH RFX]: napi_struct V3

2007-07-28 Thread Roland Dreier
I've been on vacation so I missed most of this thread. I'm just catching up now... > Ok I converted everything with Rusty's suggestion to move napi_struct > out of net_device, this was mostly mechanical but some devices took > some unanticipated amount of work. Actually you missed drivers/inf

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: Rusty Russell <[EMAIL PROTECTED]> Date: Wed, 25 Jul 2007 15:09:55 +1000 > Not pretty 8( Not at all and cmpxchg() isn't really a generically usable primitive. Yes all platforms provide atomic_cmpxchg() in one form or another, but it's really barbaric and inefficient on some cpu types. Let'

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread Rusty Russell
On Tue, 2007-07-24 at 21:29 -0700, David Miller wrote: > From: Rusty Russell <[EMAIL PROTECTED]> > Date: Wed, 25 Jul 2007 12:33:14 +1000 > > > Maybe by adding YA state bit? Hold on, this might get ugly... > > > > Say netif_rx_schedule_prep() sets the MORE_TODO bit (atomically instead > > of sett

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: David Miller <[EMAIL PROTECTED]> Date: Tue, 24 Jul 2007 18:47:59 -0700 (PDT) > EHEA is another case, in fact EHEA doesn't disable interrupts at > all. > > The reason is that EHEA has several NAPI sources behind one single > hardware interrupt. > > That driver's issues were discussed long ag

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: Rusty Russell <[EMAIL PROTECTED]> Date: Wed, 25 Jul 2007 12:33:14 +1000 > Maybe by adding YA state bit? Hold on, this might get ugly... > > Say netif_rx_schedule_prep() sets the MORE_TODO bit (atomically instead > of setting __LINK_STATE_RX_SCHED) if it's going to fail, and > netif_rx_comp

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread Rusty Russell
On Tue, 2007-07-24 at 18:47 -0700, David Miller wrote: > One thing that's peculiar is that when netif_rx_schedule_prep() > fails, we don't disable interrupts but we also don't clear the > condition that is causing the interrupt to occur. I think we're ok, but this stuff is tricky. In the driver i

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: Rusty Russell <[EMAIL PROTECTED]> Date: Wed, 25 Jul 2007 11:15:49 +1000 > If I understand correctly, you're looking at a general model like the > following: > > while (more_packets()) { ... netif_receive_skb() } > > enable_rx_and_rxnobuf_ints(); > > /* Lock protects agai

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread Rusty Russell
On Tue, 2007-07-24 at 17:45 -0700, David Miller wrote: > I'm now going to go over the other resched cases and make sure > things can be similarly handled in those drivers as well. > To be honest I'm quite confident this will be the case. If I understand correctly, you're looking at a general model

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: Rusty Russell <[EMAIL PROTECTED]> Date: Tue, 24 Jul 2007 16:21:43 +1000 > On Mon, 2007-07-23 at 22:47 -0700, David Miller wrote: > > Any objections? > > On the contrary, this looks good. It turns out the explicit restart logic isn't necessary. On the first driver I tried to "convert" this

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread David Miller
From: Francois Romieu <[EMAIL PROTECTED]> Date: Tue, 24 Jul 2007 09:12:01 +0200 > David Miller <[EMAIL PROTECTED]> : > [...] > > I also didn't play with turning off NAPI in kconfig where drivers > > allow that, can we just get rid of that crap already? :-/ > > Would it be accepted for 2.6.23 or m

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread Jeff Garzik
Francois Romieu wrote: David Miller <[EMAIL PROTECTED]> : [...] I also didn't play with turning off NAPI in kconfig where drivers allow that, can we just get rid of that crap already? :-/ Would it be accepted for 2.6.23 or must it be considered post-2.6.23 ? The merge window is closed, so no

Re: [PATCH RFX]: napi_struct V3

2007-07-24 Thread Francois Romieu
David Miller <[EMAIL PROTECTED]> : [...] > I also didn't play with turning off NAPI in kconfig where drivers > allow that, can we just get rid of that crap already? :-/ Would it be accepted for 2.6.23 or must it be considered post-2.6.23 ? -- Ueimor - To unsubscribe from this list: send the line

Re: [PATCH RFX]: napi_struct V3

2007-07-23 Thread Rusty Russell
On Mon, 2007-07-23 at 22:47 -0700, David Miller wrote: > I don't think it's wise to implement this over and over again in each > driver, since we already know at least a handfull of drivers will use > this. Yep. Alternative is a napi_struct_with_restart, but I don't think it's worth the few-byte

Re: [PATCH RFX]: napi_struct V3

2007-07-23 Thread David Miller
From: Rusty Russell <[EMAIL PROTECTED]> Date: Tue, 24 Jul 2007 14:47:19 +1000 > On Mon, 2007-07-23 at 21:07 -0700, David Miller wrote: > > Another area of consternation are drivers that were using > > netif_rx_reschedule(), as that interface was removed because it > > doesn't fit well with the cal

Re: [PATCH RFX]: napi_struct V3

2007-07-23 Thread Rusty Russell
On Mon, 2007-07-23 at 21:07 -0700, David Miller wrote: > Another area of consternation are drivers that were using > netif_rx_reschedule(), as that interface was removed because it > doesn't fit well with the caller managing the dev->quota et al. I > left race conditions in the drivers that were u