Search Linux Wireless

Re: [RFC/RFT 3/4] mac80211: use GSO for fragmentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2008-05-07 at 15:10 +0800, Herbert Xu wrote:
> On Wed, Apr 30, 2008 at 02:40:58PM +0200, Johannes Berg wrote:
> > This patch makes mac80211 use the GSO infrastructure for segmentation,
> > but not really all of it because we do not register a protocol handler
> > (nor can do that easily since a lot of functions need to be done before
> > segmentation and another bunch afterwards, and we need to keep rcu-
> > protected structures for both.)
> 
> Your idea of using skb_segment to remove duplicate code is great.
> 
> However, using skb->gso_skb for the push-back doesn't work.  For
> example, what is going to happen when I enable software GSO on a
> wireless device and then send a real GSO packet to it where each
> GSO fragment also required wireless fragmentation?

Good point. Somehow I thought this couldn't happen but of course it can
since we don't do hw GSO.

> I suggest that you just use skb_segment for the actual fragmentation
> but keep the original infrastructure for handling the fragments.

But I want to get rid of that much more than I want to get rid of the
fragmentation code :/ Also, if I need to keep that code, I will
absolutely not use skb_segment either as it's more efficient to just
trim the existing skb to make the first segment out of it (like the code
does now) rather than reallocate that too.

However, I'm sure it's buggy under certain circumstances we never
understood (as indicated by a WARN_ON triggering that shouldn't and lots
of reports about that) and I don't like the extra tasklet. I guess I
could remove it and copy the existing code into the wireless qdisc, but
that would be weird.

But you're right, it doesn't work this way. I'll have to think of
something. Maybe I can rip out all the retry logic and just store an skb
myself (like dev->gso_skb) and return NETDEV_TX_BUSY when I used that
one and the queue got full because of it. That'll requeue a lot when
non-gso skbs are coming in, but mind you this is not a common case, most
of the time fragmentation will not be enabled and even when it is device
queues should be long enough.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux