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
>> >
>>
>> 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
>
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
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
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
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
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
--