On Mon, May 26, 2025 at 11:10:33PM +0200, Rasmus Villemoes wrote: > On Sun, May 25 2025, Tom Rini <tr...@konsulko.com> wrote: > > > On Sun, May 25, 2025 at 10:07:56PM +0200, Rasmus Villemoes wrote: > >> > >> :( so we've been relying on that prefetch() laundering away the > >> volatile. > >> > >> Which really begs the question: Why, exactly, is it that gd even has > >> that volatile qualifier in the first place? > > > > The answer is likely early 2000s GCC. > > > >> I'm 98% certain that we could drop that and get better code generation > >> and avoid a ton of places where we cast away that volatile which > >> shouldn't really be there anyway. > > > > It would be a good thing to experiment with now and maybe try for real > > in a near-future merge window. > > So since it's declared per architecture I just tried with arm for now, > and this > > diff --git a/arch/arm/include/asm/global_data.h > b/arch/arm/include/asm/global_data.h > index 45401d5e3c8..f7a47204b7c 100644 > --- a/arch/arm/include/asm/global_data.h > +++ b/arch/arm/include/asm/global_data.h > @@ -133,9 +133,9 @@ static inline gd_t *get_gd(void) > #else > > #ifdef CONFIG_ARM64 > -#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd > asm ("x18") > +#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("x18") > #else > -#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd > asm ("r9") > +#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r9") > #endif > #endif > > > builds, boots to linux, and passes our test suite on our > beagleboneblack, imx7 SabreSD, RPi 3, RPi 4, RPi-cm4, wandboard, > imx8mp-evk; i.e. a good mix of 32 and 64 bit arm.
That's a good set of datapoints, thanks. Do you want to post a real series at some point or should I do it and Suggested-by you? Thanks. -- Tom
signature.asc
Description: PGP signature