From: Charlie Jenkins <charlie@rivosinc.com>
To: David Laight <David.Laight@aculab.com>
Cc: 'Russell King' <linux@armlinux.org.uk>,
Guenter Roeck <linux@roeck-us.net>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Palmer Dabbelt <palmer@dabbelt.com>,
Andrew Morton <akpm@linux-foundation.org>,
Helge Deller <deller@gmx.de>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Parisc List <linux-parisc@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Palmer Dabbelt <palmer@rivosinc.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v10] lib: checksum: Use aligned accesses for ip_fast_csum and csum_ipv6_magic tests
Date: Mon, 26 Feb 2024 15:17:05 -0800 [thread overview]
Message-ID: <Zd0b8SDT8hrG/0yW@ghost> (raw)
In-Reply-To: <b13b8847977d4cfa99b6a0c9a0fcbbcf@AcuMS.aculab.com>
On Mon, Feb 26, 2024 at 10:33:56PM +0000, David Laight wrote:
> ...
> > I think you misunderstand. "NET_IP_ALIGN offset is what the kernel
> > defines to be supported" is a gross misinterpretation. It is not
> > "defined to be supported" at all. It is the _preferred_ alignment
> > nothing more, nothing less.
This distinction is arbitrary in practice, but I am open to being proven
wrong if you have data to back up this statement. If the driver chooses
to not follow this, then the driver might not work. ARM defines the
NET_IP_ALIGN to be 2 to pad out the header to be on the supported
alignment. If the driver chooses to pad with one byte instead of 2
bytes, the driver may fail to work as the CPU may stall after the
misaligned access.
>
> I'm sure I've seen code that would realign IP headers to a 4 byte
> boundary before processing them - but that might not have been in
> Linux.
>
> I'm also sure there are cpu which will fault double length misaligned
> memory transfers - which might be used to marginally speed up code.
> Assuming more than 4 byte alignment for the IP header is likely
> 'wishful thinking'.
>
> There is plenty of ethernet hardware that can only write frames
> to even boundaries and plenty of cpu that fault misaligned accesses.
> There are even cases of both on the same silicon die.
>
> You also pretty much never want a fault handler to fixup misaligned
> ethernet frames (or really anything else for that matter).
> It is always going to be better to check in the code itself.
>
> x86 has just made people 'sloppy' :-)
>
> David
>
> -
> Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
> Registration No: 1397386 (Wales)
>
If somebody has a solution they deem to be better, I am happy to change
this test case. Otherwise, I would appreciate a maintainer resolving
this discussion and apply this fix.
- Charlie
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-02-26 23:17 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20240223-fix_sparse_errors_checksum_tests-v10-1-b6a45914b7d8@rivosinc.com>
2024-02-26 11:34 ` [PATCH v10] lib: checksum: Use aligned accesses for ip_fast_csum and csum_ipv6_magic tests Christophe Leroy
2024-02-26 11:47 ` Russell King (Oracle)
2024-02-26 11:57 ` Christophe Leroy
2024-02-26 12:03 ` Russell King (Oracle)
2024-02-26 16:44 ` Guenter Roeck
2024-02-26 17:50 ` Russell King (Oracle)
2024-02-26 18:35 ` Charlie Jenkins
2024-02-26 19:06 ` Russell King (Oracle)
2024-02-26 19:19 ` Charlie Jenkins
2024-02-26 22:33 ` David Laight
2024-02-26 23:17 ` Charlie Jenkins [this message]
2024-02-26 23:48 ` Guenter Roeck
2024-02-27 6:47 ` Christophe Leroy
2024-02-27 10:28 ` Russell King (Oracle)
2024-02-27 11:32 ` Christophe Leroy
2024-02-27 17:54 ` Charlie Jenkins
2024-02-27 18:11 ` Christophe Leroy
2024-02-27 18:21 ` Charlie Jenkins
2024-02-27 18:35 ` Christophe Leroy
2024-02-27 19:04 ` Charlie Jenkins
2024-02-27 19:31 ` Guenter Roeck
2024-02-27 22:44 ` David Laight
2024-02-28 5:19 ` Guenter Roeck
2024-02-28 0:24 ` Charlie Jenkins
2024-02-28 0:21 ` Charlie Jenkins
2024-02-28 7:25 ` Christophe Leroy
2024-02-28 7:59 ` Guenter Roeck
2024-02-28 10:15 ` Geert Uytterhoeven
2024-02-28 15:40 ` Guenter Roeck
2024-02-29 8:07 ` David Gow
2024-02-29 19:38 ` Charlie Jenkins
2024-02-29 20:22 ` Guenter Roeck
2024-03-01 7:00 ` Christophe Leroy
2024-03-01 6:46 ` Christophe Leroy
2024-03-01 16:24 ` Guenter Roeck
2024-03-01 20:47 ` Guenter Roeck
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=Zd0b8SDT8hrG/0yW@ghost \
--to=charlie@rivosinc.com \
--cc=David.Laight@aculab.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=christophe.leroy@csgroup.eu \
--cc=deller@gmx.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linux@roeck-us.net \
--cc=palmer@dabbelt.com \
--cc=palmer@rivosinc.com \
/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).