lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 07 May 2008 10:50:17 +0200
From:	Johannes Berg <johannes@...solutions.net>
To:	Herbert Xu <herbert@...dor.apana.org.au>
Cc:	linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
	Ron Rindjunsky <ron.rindjunsky@...el.com>,
	Tomas Winkler <tomasw@...il.com>,
	Ivo van Doorn <ivdoorn@...il.com>,
	Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@...el.com>
Subject: Re: [RFC/RFT 3/4] mac80211: use GSO for fragmentation

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

Download attachment "signature.asc" of type "application/pgp-signature" (829 bytes)

Powered by blists - more mailing lists