Re: [PATCH] page flags: prioritize kasan bits over last-cpuid

From: Arnd Bergmann
Date: Mon Aug 05 2019 - 15:58:18 EST


On Mon, Aug 5, 2019 at 8:52 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> On Mon, Aug 05, 2019 at 08:35:40PM +0200, Arnd Bergmann wrote:
> > On Mon, Aug 5, 2019 at 6:51 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> > > On Fri, Aug 02, 2019 at 09:49:02PM -0700, Arnd Bergmann wrote:
> > > > ARM64 randdconfig builds regularly run into a build error, especially
> > > > when NUMA_BALANCING and SPARSEMEM are enabled but not SPARSEMEM_VMEMMAP:
> > > >
> > > > #error "KASAN: not enough bits in page flags for tag"
> > > >
> > > > The last-cpuid bits are already contitional on the available space, so
> > > > the result of the calculation is a bit random on whether they were
> > > > already left out or not.
> > > >
> > > > Adding the kasan tag bits before last-cpuid makes it much more likely to
> > > > end up with a successful build here, and should be reliable for
> > > > randconfig at least, as long as that does not randomize NR_CPUS or
> > > > NODES_SHIFT but uses the defaults.
> > > >
> > > > In order for the modified check to not trigger in the x86 vdso32 code
> > > > where all constants are wrong (building with -m32), enclose all the
> > > > definitions with an #ifdef.
> > > >
> > >
> > > This results in
> > >
> > > ./include/linux/page-flags-layout.h:95:2: error: #error "Not enough bits in page flags"
> > > #error "Not enough bits in page flags"
> > >
> > > when trying to build mipsel64:fuloong2e_defconfig.
> >
> > Do you have my follow-up fix applied?
> >
> > https://ozlabs.org/~akpm/mmots/broken-out/page-flags-prioritize-kasan-bits-over-last-cpuid-fix.patch
> >
>
> No. I see the failure in next-20190729..next-20190805.
>
> I didn't try to apply that patch, but I don't see
> arch/mips/vdso/vdso.h in the tree. I only see
>
> arch/mips/include/asm/vdso.h
> arch/mips/include/asm/vdso/vdso.h
>
> Are you sure that your patch can be applied as-is ?

Ah, right, we now have support for the generic vdso on mips,
so the file got moved from arch/mips/vdso/vdso.h to
arch/mips/include/asm/vdso/vdso.h

Try applying it to the new location then. I think it should still apply,
but have not tried it.

Arnd