From: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
To: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC v2] mac80211: assign needed_headroom/tailroom for netdevs
Date: Mon, 05 May 2008 09:22:19 +0200 [thread overview]
Message-ID: <1209972139.3655.9.camel@johannes.berg> (raw)
In-Reply-To: <20080504.173051.133197507.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2020 bytes --]
> Where is the patch that adds these new members to struct netdevice,
> and where is the code that uses these new values?
Inlined below this time.
> Anyways I see your basic idea and this may be the best way to handle
> the problem. The invariants would be:
>
> 1) LL_MAX_HEADER has to include all of these bits.
Yes. Well, it has to be long enough for it, yes, but mac80211 has
drivers that want 100 bytes more headroom for themselves and probably
won't get added to LL_MAX_HEADER. But still putting that much into
needed_headroom is beneficial for many cases even if that means that
some packets will have to be copy-expanded. This, however, means that
you cannot put an assertion into dev_queue_xmit.
Also, taking into account tailroom isn't trivial because you need to
reserve the headroom but not the tailroom etc. I'm still thinking of a
way to avoid reserving tailroom completely when the hardware will handle
the crypto-checksumming but right now we don't have hardware that does
all crypto, only some algorithms. But we can even update
needed_headroom/tailroom on the fly.
> 2) LL_RESERVED_SPACE*() has to take the new needed_headroom
> into account.
Check. I added LL_ALLOCATED_SPACE() for the tailroom and used that in
places for the allocation. I'm fairly sure I didn't get all of them
though.
> Your patch which I can't find, which adds netdev->needed_*, probably
> does all of that. But I'm just making sure :-)
>
> Note that what would be really nice is if we could assert, in
> dev_queue_xmit, that the SKB has all of the necessary headroom, and
> give a WARN_ON_ONCE() backtrace if not.
>
> If we can ensure that, things like mac80211 and others will not need
> to skb_realloc_headroom() or anything like that unless they need to
> modify packet contents after skb->data and the packet is shared
> (ie. the pskb_expand_headroom(skb, 0, 0, GFP_*) case the TSO drivers
> use).
That would be nice, but I don't think it's possible.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2008-05-05 7:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-04 21:24 [RFC] mac80211: assign needed_headroom/tailroom for netdevs Johannes Berg
[not found] ` <1209936253.7304.10.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04 21:31 ` Johannes Berg
2008-05-04 21:32 ` [RFC v2] " Johannes Berg
[not found] ` <1209936745.7304.16.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 0:30 ` David Miller
[not found] ` <20080504.173051.133197507.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-05 7:22 ` Johannes Berg [this message]
[not found] ` <1209972139.3655.9.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 14:27 ` Tomas Winkler
[not found] ` <1ba2fa240805050727r2060b0b4x3a9b3240647b66b1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-05 15:22 ` Johannes Berg
[not found] ` <1210000923.8245.26.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 17:15 ` Tomas Winkler
2008-05-05 17:57 ` Johannes Berg
2008-05-05 18:58 ` David Miller
[not found] ` <20080505.115855.137964071.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-05 19:05 ` Johannes Berg
2008-05-05 19:50 ` David Miller
2008-05-05 19:57 ` Johannes Berg
2008-05-05 20:02 ` David Miller
2008-05-05 20:10 ` Johannes Berg
[not found] ` <1210018214.4181.27.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 20:44 ` David Miller
2008-05-05 20:57 ` Johannes Berg
[not found] ` <1210021066.4181.41.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 21:01 ` David Miller
2008-05-05 22:37 ` David Miller
2008-05-05 22:44 ` Johannes Berg
[not found] ` <1210027447.8012.15.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 23:14 ` David Miller
[not found] ` <20080505.161458.46071527.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-05 23:23 ` Johannes Berg
[not found] ` <1210029835.8012.30.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 23:39 ` David Miller
[not found] ` <20080505.163916.239187195.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-06 0:01 ` Johannes Berg
[not found] ` <1210032076.8012.49.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-06 0:08 ` David Miller
[not found] ` <20080505.170805.127854312.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-06 11:13 ` Johannes Berg
2008-05-06 1:32 ` Herbert Xu
2008-05-13 5:01 ` David Miller
2008-05-05 23:03 ` David Miller
[not found] ` <20080505.160328.203996832.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-05 23:17 ` Johannes Berg
[not found] ` <1210029435.8012.25.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 23:24 ` David Miller
[not found] ` <20080505.162424.176435653.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-05 23:30 ` Johannes Berg
2008-05-05 23:36 ` Johannes Berg
[not found] ` <1210030591.8012.41.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-05 23:40 ` David Miller
2008-05-13 3:52 ` David Miller
[not found] ` <20080512.205224.12536510.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-13 9:01 ` Johannes Berg
[not found] ` <1210669273.3646.51.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-13 9:45 ` David Miller
2008-05-13 10:07 ` Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1209972139.3655.9.camel@johannes.berg \
--to=johannes-cdvu00un1vgdhxzaddlk8q@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).