From: Jeff Garzik <jeff@garzik.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
Michael Buesch <mb@bu3sch.de>
Cc: Dan Williams <dcbw@redhat.com>,
Johannes Berg <johannes@sipsolutions.net>,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org
Subject: Re: Linux 2.6.24-rc7
Date: Fri, 25 Jan 2008 18:22:12 -0500 [thread overview]
Message-ID: <479A6F24.9030306@garzik.org> (raw)
In-Reply-To: <alpine.LFD.1.00.0801251045430.2979@hp.linux-foundation.org>
Linus Torvalds wrote:
>
> On Fri, 25 Jan 2008, Michael Buesch wrote:
>> The problem is _not_ the wireless header access, but the alignment of the embedded
>> protocol stack, if the header does not have a size aligned to 4.
>> Do we want to clutter the whole networking stack below wireless with
>> get_unaligned() or attribute(packed) or something like that?
>
> That's what all the other protocols do, isn't it?
>
> For example, on PowerPC, NET_IP_ALIGN is 0 - explicitly so that the *dma*
> from the card should be aligned, even if that in turn means that the IP
> payload itself is then just two-byte aligned rather than word-aligned
> (14-byte ethernet headers and all that).
>
> [ Side note - I _used_ to know the networking code. That was about eight
> to ten years ago. I'm really happy having a maintainer for it and not
> having to know all the details any more, so maybe things have changed. ]
>
> I do think that we generally should try to make the drivers do as little
> complex stuff as humanly possible, and expect as little from hardware (and
> firmware counts in that group) as we can. If some higher-level thing
> really needs things aligned in order to not have to have lots of ugly
> code, it should generally extract that alignment itself.
Actually... grep for rx_copybreak in networking drivers.
For certain ethernet NIC hardware, given standard packet headers, your
data will always be unaligned, which -does- have a cost, even on Intel.
On such hardware, this is required because the RX packet must start on
a 32-bit (sometimes 64-bit) DMA boundary.
Since RX SKBs are pre-allocated, we use the driver-wide 'rx_copybreak'
variable to determine the point at which an unaligned packet is painful
enough that we should copy into a newly allocated, properly aligned skb
(NET_IP_ALIGN, etc.)
Sane architectures can set rx_copybreak to MTU size. Other
architectures (at compile time) set the rx_copybreak default to
something smaller.
Jeff
next prev parent reply other threads:[~2008-01-25 23:22 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <alpine.LFD.1.00.0801061410290.3148@woody.linux-foundation.org>
2008-01-07 16:14 ` Linux 2.6.24-rc7 Alejandro Riveira Fernández
2008-01-07 16:24 ` Michael Buesch
2008-01-07 16:52 ` Alejandro Riveira Fernández
2008-01-07 17:30 ` Michael Buesch
2008-01-07 20:23 ` Alejandro Riveira Fernández
2008-01-08 15:30 ` Michael Buesch
2008-01-08 15:55 ` Alejandro Riveira Fernández
2008-01-24 20:27 ` Linus Torvalds
2008-01-24 21:07 ` John W. Linville
2008-01-24 21:34 ` Linus Torvalds
2008-01-25 12:29 ` Johannes Berg
2008-01-25 16:08 ` Linus Torvalds
2008-01-25 16:23 ` Michael Buesch
2008-01-25 16:43 ` Linus Torvalds
2008-01-25 17:27 ` Dan Williams
2008-01-25 17:38 ` Linus Torvalds
2008-01-25 17:42 ` Dan Williams
2008-02-05 20:55 ` Russell S. Senior
2008-01-25 18:22 ` Linus Torvalds
2008-01-25 18:30 ` Michael Buesch
2008-01-25 19:07 ` Linus Torvalds
2008-01-25 19:34 ` Michael Buesch
2008-01-25 19:48 ` John W. Linville
2008-01-25 19:50 ` John W. Linville
2008-01-25 21:18 ` John W. Linville
2008-01-25 21:56 ` Linus Torvalds
2008-01-25 22:46 ` John W. Linville
2008-01-25 23:20 ` Guy Cohen
2008-01-26 13:53 ` David Miller
2008-01-26 13:47 ` David Miller
2008-01-25 22:02 ` Guy Cohen
2008-01-26 13:40 ` David Miller
2008-01-25 20:28 ` Linus Torvalds
2008-01-26 13:37 ` David Miller
2008-01-27 6:32 ` Linus Torvalds
2008-01-27 7:16 ` Jeff Garzik
2008-01-27 7:24 ` David Miller
2008-01-27 7:54 ` Linus Torvalds
2008-01-28 3:15 ` David Miller
2008-01-25 23:22 ` Jeff Garzik [this message]
2008-01-26 13:27 ` David Miller
2008-01-27 6:25 ` Linus Torvalds
2008-01-26 13:22 ` David Miller
2008-01-25 18:21 ` Michael Buesch
2008-01-25 18:34 ` Linus Torvalds
2008-01-25 18:41 ` Michael Buesch
2008-01-25 21:11 ` Inaky Perez-Gonzalez
2008-01-25 21:21 ` Michael Buesch
2008-01-25 21:28 ` Inaky Perez-Gonzalez
2008-01-26 13:42 ` David Miller
2008-01-27 2:26 ` Luis R. Rodriguez
2008-01-29 19:07 ` Inaky Perez-Gonzalez
2008-01-25 21:46 ` John W. Linville
2008-01-25 22:15 ` Michael Buesch
2008-01-25 22:34 ` Tomas Winkler
2008-01-26 13:49 ` David Miller
2008-01-25 21:46 ` Guy Cohen
2008-01-25 21:54 ` Linus Torvalds
2008-01-26 13:46 ` David Miller
2008-01-25 18:34 ` John W. Linville
2008-01-24 22:17 ` Michael Buesch
2008-01-24 22:26 ` Linus Torvalds
2008-01-24 22:33 ` Michael Buesch
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=479A6F24.9030306@garzik.org \
--to=jeff@garzik.org \
--cc=dcbw@redhat.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mb@bu3sch.de \
--cc=torvalds@linux-foundation.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).