Re: [E1000-devel] e1000 rx_ring[0] protection

2009-07-01 Thread Brandeburg, Jesse
On Mon, 8 Jun 2009, Lal wrote: > >> I am using 2.6.21 kernel and CONFIG_E1000_NAPI is defined. It's a > >> multi-core system. > >> > >> In e1000_intr the interface, over which packet is received, is queued > >> in poll_list (per cpu based). > > > > this is the key. > > > >> Later net_rx_action invo

Re: [E1000-devel] e1000 rx_ring[0] protection

2009-06-08 Thread Lal
>> > >> >> I am using 2.6.21 kernel and CONFIG_E1000_NAPI is defined. It's a >> multi-core system. >> >> In e1000_intr the interface, over which packet is received, is queued >> in poll_list (per cpu based). > > this is the key. > >> Later net_rx_action invokes dev->poll which invokes e1000_clean >

Re: [E1000-devel] e1000 rx_ring[0] protection

2009-06-03 Thread Brandeburg, Jesse
On Wed, 3 Jun 2009, Lal wrote: > On Mon, Jun 1, 2009 at 9:21 PM, Brandeburg, Jesse > wrote: > > Peter, you're correct, however the tx queue interface is protected by > > locks (qdisc lock, netdev lock) in the stack.  And newer kernel > > versions of e1000 don't even have the tx_ring lock any

Re: [E1000-devel] e1000 rx_ring[0] protection

2009-06-03 Thread Lal
On Mon, Jun 1, 2009 at 9:21 PM, Brandeburg, Jesse wrote: > Peter, you're correct, however the tx queue interface is protected by locks > (qdisc lock, netdev lock) in the stack.  And newer kernel versions of e1000 > don't even have the tx_ring lock any more (in the driver). > > On the receive sid

Re: [E1000-devel] e1000 rx_ring[0] protection

2009-06-01 Thread Brandeburg, Jesse
r from re-entrancy using the napi struct. Jesse -Original Message- From: Peter Teoh [mailto:htmldevelo...@gmail.com] Sent: Sunday, May 31, 2009 4:46 PM To: Lal Cc: e1000-devel@lists.sourceforge.net; Kernelnewbies Subject: Re: [E1000-devel] e1000 rx_ring[0] protection interesting question/o

Re: [E1000-devel] e1000 rx_ring[0] protection

2009-05-31 Thread Peter Teoh
interesting question/observation...never noticed this...just making a guess: when sending out.multiple CPUs may simultaneously want to send out together... but when coming back.per network card.all packet is already serialized by the hardwareso since this driver is per-piece of har

[E1000-devel] e1000 rx_ring[0] protection

2009-05-29 Thread Lal
In e1000_clean function in drivers/net/e1000_main.c file, tx_ring[0] is protected by spin lock to prevent from being cleaned by multiple cpus simultaneously, but rx_ring[0] is not. Why rx_ring[0] is not protected from multiple cpus ? Thanks -Lal --