[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080807.154453.14005681.davem@davemloft.net>
Date: Thu, 07 Aug 2008 15:44:53 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: rick.jones2@...com
Cc: herbert@...dor.apana.org.au, bhutchings@...arflare.com,
buytenh@...tstofly.org, netdev@...r.kernel.org,
akarkare@...vell.com, nico@....org, dale@...nsworth.org
Subject: Re: using software TSO on non-TSO capable netdevices
From: Rick Jones <rick.jones2@...com>
Date: Thu, 07 Aug 2008 13:32:05 -0700
> David Miller wrote:
> > So I had this idea. My goal is to minimize the number of DMA
> > mappings the driver has to make.
> >
> > We don't touch anything in the original TSO skb. However we expand
> > the headroom (if necessary) and in the area in front of skb->data we
> > build the header areas for the sub-TSO frames, one by one.
> >
> > We give the driver some iterator functions that walk through the
> > header areas and compute offset/length pairs into the
> > skb_shared_info() page list.
>
> Is that like Solaris Multi Data Transmit?
No, it's slightly different.
Solaris just accumulates a list of packets and gives them all to the
device at once. It doesn't do anything interesting to optimize
the DMA mappings or anything clever like we'll be doing here.
Here, the TCP stack will be working with TSO frames, which cuts down
per-packet overhead and whatnot. Solaris works with just normal MSS
sized frames when it does it's batching thing. And that's all it is,
batching.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists