Subject: Re: [PATCH] NET: Multiqueue network device support.

From: Stephen Hemminger <[email-masked]>
Date: Thu, 7 Jun 2007 09:08:40 -0700

On Wed, 06 Jun 2007 16:56:02 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: jamal <[email-masked]>
> Date: Wed, 06 Jun 2007 19:35:46 -0400
> 
> > There is no potential for parallelizing on transmit that i can think of.
> > Dave, please explain it slowly so i can understand it.
> > 
> > There is huge potential for parallelizing on receive. But i am certainly
> > missing the value in the transmit.
> 
> I gave an example in another response, you have N processes
> queueing up data for TCP or UDP or whatever in parallel on
> different cpus, all going out the same 10gbit device.
> 
> All of them enter into ->hard_start_xmit(), and thus all of them try
> to take the same netdev->tx_lock
> 
> If they have multiple TX queues, independantly programmable, that
> single lock is stupid.
> 
> We could use per-queue TX locks for such hardware, but we can't
> support that currently.

There could be bad packet reordering with this (like some SMP routers used to do).

-- 
Stephen Hemminger <[email-masked]>