Re: [PATCH 5/5] alloc_tag: config to store page allocation tag refs in page flags
From: Suren Baghdasaryan
Date: Mon Aug 19 2024 - 16:39:40 EST
On Mon, Aug 19, 2024 at 12:34 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Mon, Aug 19, 2024 at 08:15:11AM -0700, Suren Baghdasaryan wrote:
> > @@ -91,7 +97,7 @@
> > #endif
> >
> > #if ZONES_WIDTH + LRU_GEN_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + \
> > - KASAN_TAG_WIDTH + LAST_CPUPID_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
> > + KASAN_TAG_WIDTH + ALLOC_TAG_REF_WIDTH + LAST_CPUPID_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
> > #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT
> > #else
> > #define LAST_CPUPID_WIDTH 0
>
> So if ALLOC_TAG_REF_WIDTH is big enough, it's going to force last_cpupid
> into struct page.
Thanks for taking a look!
Yes, but how is this field different from say KASAN_TAG_WIDTH which
can also force last_cpupid out of page flags?
> That will misalign struct page and disable HVO -- with no warning!
mminit_verify_pageflags_layout already has a mminit_dprintk() to
indicate this condition. Is that not enough?
>