Re: [PATCH] atomic: Specify natural alignment for atomic_t

From: Eero Tamminen
Date: Tue Aug 26 2025 - 11:31:30 EST


Hi Finn & Lance,

On 25.8.2025 5.03, Finn Thain wrote:
Some recent commits incorrectly assumed the natural alignment of locks.
That assumption fails on Linux/m68k (and, interestingly, would have failed
on Linux/cris also). This leads to spurious warnings from the hang check
code. Fix this bug by adding the necessary 'aligned' attribute.
[...]
Reported-by: Eero Tamminen <oak@xxxxxxxxxxxxxx>
Closes: https://lore.kernel.org/lkml/CAMuHMdW7Ab13DdGs2acMQcix5ObJK0O2dG_Fxzr8_g58Rc1_0g@xxxxxxxxxxxxxx/
Fixes: e711faaafbe5 ("hung_task: replace blocker_mutex with encoded blocker")
Signed-off-by: Finn Thain <fthain@xxxxxxxxxxxxxx>
---
I tested this on m68k using GCC and it fixed the problem for me. AFAIK,
the other architectures naturally align ints already so I'm expecting to
see no effect there.

Yes, it fixes both of the issues (warnings & broken console):
Tested-by: Eero Tamminen <oak@xxxxxxxxxxxxxx>

(Emulated Atari Falcon) boot up performance with this is within normal variation.


On 23.8.2025 10.49, Lance Yang wrote:
> Anyway, I've prepared two patches for discussion, either of which should
> fix the alignment issue :)
>
> Patch A[1] adjusts the runtime checks to handle unaligned pointers.
> Patch B[2] enforces 4-byte alignment on the core lock structures.
>
> Both tested on x86-64.
>
> [1] https://lore.kernel.org/lkml/20250823050036.7748-1-lance.yang@xxxxxxxxx
> [2] https://lore.kernel.org/lkml/20250823074048.92498-1-
> lance.yang@xxxxxxxxx

Same goes for both of these, except that removing warnings makes minimal kernel boot 1-2% faster than 4-aligning the whole struct.


- Eero