From: Finn Thain <fthain@linux-m68k.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
Peter Zijlstra <peterz@infradead.org>,
Will Deacon <will@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Boqun Feng <boqun.feng@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Mark Rutland <mark.rutland@arm.com>,
linux-kernel@vger.kernel.org,
Linux-Arch <linux-arch@vger.kernel.org>,
linux-m68k@vger.kernel.org, Lance Yang <lance.yang@linux.dev>
Subject: Re: [RFC v2 2/3] atomic: Specify alignment for atomic_t and atomic64_t
Date: Tue, 23 Sep 2025 16:28:38 +1000 (AEST) [thread overview]
Message-ID: <86be5cf0-065e-d55d-fdb6-b9cf6655165e@linux-m68k.org> (raw)
In-Reply-To: <57ac401b-222b-4c85-b719-9e671a4617cf@app.fastmail.com>
On Mon, 22 Sep 2025, Arnd Bergmann wrote:
> On Mon, Sep 22, 2025, at 10:16, Finn Thain wrote:
> >
> > Yes, I noticed that also, after I started building with defconfigs.
> > I pushed a new patch to my github repo.
> >
> > https://github.com/fthain/linux/tree/atomic_t
>
> I had a look at that repository, and I think the extra annotations you
> added on a lot of structures have the same mistake that I made when
> looking at annotating ABI structures for -malign-int earlier:
>
> Adding __aligned__((sizeof(long))) to a structure definition only
> changes the /outer/ alignment of the structure itself,
Right. I should have dropped those changes earlier.
@@ -8,7 +8,7 @@ struct vfsmount;
struct path {
struct vfsmount *mnt;
struct dentry *dentry;
-} __randomize_layout;
+} __aligned(sizeof(long)) __randomize_layout;
There's no need: struct path contains a struct dentry, which contains a
seqcount_spinlock_t, which contains a spinlock_t which contains an
atomic_t member, which is explicitly aligned.
Despite that, there's still some kmem cache or other allocator somewhere
that has produced some misaligned path and dentry structures. So we get
misaligned atomics somewhere in the VFS and TTY layers. I was unable to
find those allocations.
> so e.g.
>
> struct {
> short a;
> int b;
> } __attribute__((aligned(sizeof(long))));
>
> creates a structure with 4-byte alignment and 8-byte
> size when building with -mno-align-int, but the padding
> is added after 'b', which is still misaligned.
>
Sure but -mno-align-int isn't particularly relevant here as it's only for
m68k. Besides, I'd like to avoid the mess that would create.
The basic aim here is to naturally align both atomic_t and atomic64_t on
all architectures (my testing is confined to m68k) and to try to find out
what that would cost and what benefit it might bring.
The patches you're reviewing were a hack to try to silence the WARN from
CONFIG_DEBUG_ATOMIC, because that way I could try to assess the
cost/benefit.
next prev parent reply other threads:[~2025-09-23 6:28 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-14 0:45 [RFC v2 0/3] Align atomic storage Finn Thain
2025-09-14 0:45 ` [RFC v2 3/3] atomic: Add alignment check to instrumented atomic operations Finn Thain
2025-09-15 8:00 ` Peter Zijlstra
2025-09-15 9:38 ` Finn Thain
2025-09-15 10:06 ` Peter Zijlstra
2025-09-15 10:37 ` Finn Thain
2025-09-15 11:20 ` Arnd Bergmann
2025-09-16 0:16 ` Finn Thain
2025-09-16 10:10 ` Geert Uytterhoeven
2025-09-17 1:23 ` Finn Thain
2025-09-16 12:37 ` Arnd Bergmann
2025-09-16 21:38 ` Brad Boyer
2025-09-17 16:54 ` Andreas Schwab
2025-09-17 2:14 ` Finn Thain
2025-09-22 15:49 ` Arnd Bergmann
2025-09-23 6:39 ` Finn Thain
2025-09-14 0:45 ` [RFC v2 2/3] atomic: Specify alignment for atomic_t and atomic64_t Finn Thain
2025-09-15 7:13 ` Geert Uytterhoeven
2025-09-15 7:35 ` Arnd Bergmann
2025-09-15 8:06 ` Peter Zijlstra
2025-09-15 9:26 ` Finn Thain
2025-09-15 9:29 ` Arnd Bergmann
2025-09-22 7:06 ` Geert Uytterhoeven
2025-09-22 8:16 ` Finn Thain
2025-09-22 9:29 ` Geert Uytterhoeven
2025-09-22 15:21 ` Arnd Bergmann
2025-09-23 6:28 ` Finn Thain [this message]
2025-09-23 6:41 ` Arnd Bergmann
2025-09-23 8:05 ` Finn Thain
2025-09-23 19:11 ` Arnd Bergmann
2025-09-30 2:18 ` Finn Thain
2025-09-30 6:35 ` Arnd Bergmann
2025-10-01 1:03 ` Finn Thain
2025-10-01 6:44 ` Arnd Bergmann
2025-10-06 9:25 ` Finn Thain
2025-10-06 9:25 ` Finn Thain
2025-10-06 10:07 ` Arnd Bergmann
2025-10-06 10:22 ` Peter Zijlstra
2025-10-06 11:09 ` Arnd Bergmann
2025-10-06 9:37 ` Peter Zijlstra
2025-09-30 7:41 ` Geert Uytterhoeven
2025-10-01 1:46 ` Finn Thain
2025-10-01 7:08 ` Geert Uytterhoeven
2025-09-14 0:45 ` [RFC v2 1/3] documentation: Discourage alignment assumptions Finn Thain
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=86be5cf0-065e-d55d-fdb6-b9cf6655165e@linux-m68k.org \
--to=fthain@linux-m68k.org \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=corbet@lwn.net \
--cc=geert@linux-m68k.org \
--cc=lance.yang@linux.dev \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=peterz@infradead.org \
--cc=will@kernel.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
all inboxes | Powered by JetHome®