netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
To: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org,
	mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: mac80211 truesize bugs
Date: Sun, 04 May 2008 03:42:34 +0200	[thread overview]
Message-ID: <1209865354.6210.23.camel@johannes.berg> (raw)
In-Reply-To: <20080503.180300.10562559.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2549 bytes --]


> > Why don't we update the socket allocation when doing pskb_expand_head()?
> > Sure, it could become negative, but is that so bad?
> 
> The socket locked state at this time is variable and unknown.
> 
> The socket must be locked in order to modify these values.
> And such locks cannot be taken, for example, from HW interrupt
> context, amongst other restrictions.

Ok, that makes sense.

> > We need more space though. Should we then just increase the built-in
> > headroom?
> 
> I simply don't know what to suggest at this point, that's why
> we are having this discussion :-)

I'm still not sure about the dependencies between LL_MAX_HEADER,
dev->hard_header_len and similar. Why, for example, does ipip set it to
LL_MAX_HEADER + sizeof(struct iphdr)? Because it doesn't know better
since the packets it creates could be routed anywhere?

Could mac80211 announce it needs a very long hard_header_len (say 48 (or
54) bytes)? Am I right in thinking that then we'd have to increase
LL_MAX_HEADER as well? I haven't found a check somewhere that warns you
if you set dev->hard_header_len > LL_MAX_HEADER, should there be one?

If I increase dev->hard_header_len, will that have any negative impact
on the caching since I'm still just using regular ethernet headers?


As far as I understand we have a few options:

 (a) go along with it as we do now, use pskb_expand_head, just call
     skb_orphan before. I assume this has a number of requirements just
     like sock size accounting would have, does this work from within a
     hard_start_xmit path? I haven't seen any problems with it so far
     anyway.
 (b) clone the skb and free the original. pretty much equivalent
 (c) increase hard_header_len/LL_MAX_HEADER constants to 48 (54).

Options (a) and (b) make the accounting pretty useless since that would
drop the charge to the socket quite early. (c) doesn't seem to work, I
tried just increasing LL_MAX_HEADER doesn't seem to help although
MAX_TCP_HEADER suggests it should be getting enough headroom then.

Ideally, we'd have enough headroom in the skb to start with, since right
now we're apparently reallocating a lot, especially encrypted frames.
Not that I understand why we don't get a truesize bug (without the
monitors) when we do that.

With smart hardware like b43 we could even think about putting the
802.11 header stuff into a separate buffer and have the hardware to
gather-dma but there are so many dumb usb devices that this won't help
much anyway.

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  parent reply	other threads:[~2008-05-04  1:42 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-01  2:02 mac80211 truesize bugs Johannes Berg
     [not found] ` <1209607368.7173.20.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-01  8:58   ` Michael Buesch
2008-05-01  9:08     ` Johannes Berg
     [not found]       ` <1209632886.4008.8.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-01  9:20         ` David Miller
2008-05-01  9:32           ` Johannes Berg
2008-05-01  9:43             ` David Miller
     [not found]               ` <20080501.024320.212547875.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-01  9:48                 ` Johannes Berg
2008-05-01  9:56                   ` David Miller
     [not found]                     ` <20080501.025635.216053297.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-01 10:08                       ` Johannes Berg
2008-05-01 10:32                         ` David Miller
     [not found]                           ` <20080501.033221.193705040.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-01 10:45                             ` Johannes Berg
2008-05-01 10:36                 ` Herbert Xu
2008-05-01 10:49                   ` David Miller
2008-05-01 10:53                     ` David Miller
2008-05-01 10:58                       ` Johannes Berg
     [not found]                         ` <1209639500.7067.0.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-01 11:03                           ` Herbert Xu
2008-05-02 20:38                             ` Johannes Berg
     [not found]                               ` <1209760731.3608.17.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-02 23:33                                 ` David Miller
2008-05-03  9:37                                   ` Johannes Berg
2008-05-03 14:25                                     ` Johannes Berg
2008-05-13  3:17                                       ` David Miller
     [not found]                                         ` <20080512.201751.114868351.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-13 20:39                                           ` John W. Linville
2008-05-13 20:59                                             ` Johannes Berg
2008-05-13 21:12                                               ` Tomas Winkler
2008-05-13 21:37                                                 ` Johannes Berg
     [not found]                                                   ` <1210714643.4279.27.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-13 22:09                                                     ` David Miller
2008-05-03 11:52                                   ` Johannes Berg
     [not found]                                     ` <1209815533.3987.21.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  1:03                                       ` David Miller
     [not found]                                         ` <20080503.180300.10562559.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-04  1:42                                           ` Johannes Berg [this message]
     [not found]                                             ` <1209865354.6210.23.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  2:02                                               ` Herbert Xu
     [not found]                                                 ` <20080504020203.GA30514-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-04  2:08                                                   ` Johannes Berg
     [not found]                                                     ` <1209866916.6210.39.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  2:12                                                       ` Herbert Xu
     [not found]                                                         ` <20080504021213.GA30660-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-04  2:22                                                           ` Johannes Berg
     [not found]                                                             ` <1209867740.6210.46.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  3:16                                                               ` Herbert Xu
     [not found]                                                                 ` <20080504031652.GA30993-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-04  8:47                                                                   ` Johannes Berg
     [not found]                                                                     ` <1209890847.6210.51.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  9:14                                                                       ` Johannes Berg
     [not found]                                                                         ` <1209892489.6210.56.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04  9:44                                                                           ` Herbert Xu
2008-05-04  9:52                                                                             ` Johannes Berg
2008-05-04 11:25                                                                               ` Johannes Berg
     [not found]                                                                                 ` <1209900355.6210.64.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04 12:28                                                                                   ` Johannes Berg
2008-05-04 12:45                                                                                     ` Herbert Xu
     [not found]                                                                                       ` <20080504124542.GA1455-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-04 12:48                                                                                         ` Johannes Berg
2008-05-04 12:52                                                                                         ` Johannes Berg
     [not found]                                                                                           ` <1209905561.4065.23.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04 12:56                                                                                             ` Herbert Xu
     [not found]                                                                                               ` <20080504125652.GA1618-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-04 13:00                                                                                                 ` Johannes Berg
2008-05-04 14:06                                                                                         ` Johannes Berg
     [not found]                                                                                           ` <1209909990.3753.0.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04 16:03                                                                                             ` Johannes Berg
     [not found]                                                                                               ` <1209917006.3753.2.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-04 17:47                                                                                                 ` Johannes Berg
2008-05-04 22:45                                                                                             ` David Miller
     [not found]                                                                                               ` <20080504.154540.214129591.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-04 22:48                                                                                                 ` Johannes Berg
2008-05-04 22:38                                                                 ` David Miller
2008-05-04  2:09                                               ` Johannes Berg
     [not found]                             ` <20080501110341.GD7490-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-03 12:38                               ` Johannes Berg
2008-05-03 12:59                                 ` Herbert Xu
     [not found]                                   ` <20080503125940.GA26199-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2008-05-03 16:03                                     ` Johannes Berg
     [not found]                                       ` <1209830582.3673.8.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-03 22:56                                         ` Johannes Berg
2008-05-03 23:07                                           ` David Miller
     [not found]                                             ` <20080503.160705.78111001.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-03 23:15                                               ` Johannes Berg
     [not found]                     ` <20080501.034950.261408566.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-01 11:02                       ` Herbert Xu
2008-05-01 11:38                       ` Johannes Berg
     [not found]                         ` <1209641914.3904.0.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-03 23:24                           ` Johannes Berg
     [not found]                             ` <1209857088.3920.4.camel-YfaajirXv214zXjbi5bjpg@public.gmane.org>
2008-05-03 23:32                               ` David Miller
     [not found]                                 ` <20080503.163202.48704621.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-05-03 23:43                                   ` Johannes Berg
2008-05-01 11:49                       ` Johannes Berg
2008-05-01 12:05                     ` Johannes Berg
2008-05-01  9:32         ` Michael Buesch
     [not found]           ` <200805011132.24399.mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org>
2008-05-01  9:34             ` Johannes Berg
2008-05-04  1:55 ` frame status API? (was: mac80211 truesize bugs) 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=1209865354.6210.23.camel@johannes.berg \
    --to=johannes-cdvu00un1vgdhxzaddlk8q@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org \
    --cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mb-fseUSCV1ubazQB+pC5nmwQ@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).