Re: [linus:master] [atomic] 80047d84ee: WARNING:at_include/linux/instrumented.h:#__split_huge_pmd_locked
From: Andrew Morton
Date: Tue Nov 03 2026 - 11:04:13 EST
On Tue, 3 Nov 2026 13:26:47 +0100 Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> AFAICT this is pxx_xchg64() from the PAE code operating on an on-stack
> pmd value.
>
> The below 'fixes' it, but the question is of course, WTF are we using an
> on-stack pmd value for set_pmd().
>
> --- a/arch/x86/include/asm/pgtable-3level_types.h
> +++ b/arch/x86/include/asm/pgtable-3level_types.h
> @@ -5,12 +5,12 @@
> #ifndef __ASSEMBLER__
> #include <linux/types.h>
>
> -typedef u64 pteval_t;
> -typedef u64 pmdval_t;
> -typedef u64 pudval_t;
> -typedef u64 p4dval_t;
> -typedef u64 pgdval_t;
> -typedef u64 pgprotval_t;
> +typedef u64 __aligned(8) pteval_t;
> +typedef u64 __aligned(8) pmdval_t;
> +typedef u64 __aligned(8) pudval_t;
> +typedef u64 __aligned(8) p4dval_t;
> +typedef u64 __aligned(8) pgdval_t;
> +typedef u64 __aligned(8) pgprotval_t;
>
(cc Dave)
fwiw this was discussed a couple of years ago but nothing really came
of it.
https://lore.kernel.org/20240401185451.6897208962d3fc47a12ffb5a@xxxxxxxx