Re: [PATCH 5/5] alloc_tag: config to store page allocation tag refs in page flags
From: Matthew Wilcox
Date: Mon Aug 19 2024 - 15:35:28 EST
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. That will misalign struct page and disable HVO --
with no warning!