On Mon, Aug 19, 2024 at 6:46 PM Andrew Morton wrote:
>
> On Mon, 19 Aug 2024 21:40:34 +0100 Matthew Wilcox wrote:
>
> > On Mon, Aug 19, 2024 at 01:39:16PM -0700, Suren Baghdasaryan wrote:
> > > On Mon, Aug 19, 2024 at 12:34 PM Matthew Wilcox
> > > wrote:
> > > > So if ALLOC_TAG_REF_WIDTH is big
On Mon, 19 Aug 2024 21:40:34 +0100 Matthew Wilcox wrote:
> On Mon, Aug 19, 2024 at 01:39:16PM -0700, Suren Baghdasaryan wrote:
> > On Mon, Aug 19, 2024 at 12:34 PM Matthew Wilcox wrote:
> > > So if ALLOC_TAG_REF_WIDTH is big enough, it's going to force last_cpupid
> > > into struct page.
> >
>
On Mon, Aug 19, 2024 at 01:39:16PM -0700, Suren Baghdasaryan wrote:
> On Mon, Aug 19, 2024 at 12:34 PM Matthew Wilcox wrote:
> > 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
On Mon, Aug 19, 2024 at 12:34 PM Matthew Wilcox 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_LON
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 + LAS
Add CONFIG_PGALLOC_TAG_USE_PAGEFLAGS to store allocation tag
references directly in the page flags. This removes dependency on
page_ext and results in better performance for page allocations as
well as reduced page_ext memory overhead.
CONFIG_PGALLOC_TAG_REF_BITS controls the number of bits require
Introduce CONFIG_PGALLOC_TAG_REF_BITS to control the size of the
page allocation tag references. When the size is configured to be
less than a direct pointer, the tags are searched using an index
stored as the tag reference.
Signed-off-by: Suren Baghdasaryan
---
include/linux/alloc_tag.h | 10
To simplify later changes to page tag references, introduce new
pgalloc_tag_ref and pgtag_ref_handle types. This allows easy
replacement of page_ext as a storage of page allocation tags
Signed-off-by: Suren Baghdasaryan
---
include/linux/pgalloc_tag.h | 144 +++-
To simplify further refactoring, open-code the only two callers
of alloc_tag_ref_set().
Signed-off-by: Suren Baghdasaryan
---
include/linux/alloc_tag.h | 25 ++---
include/linux/pgalloc_tag.h | 12 +++-
2 files changed, 13 insertions(+), 24 deletions(-)
diff --git
When a module gets unloaded there is a possibility that some of the
allocations it made are still used and therefore the allocation tags
corresponding to these allocations are still referenced. As such, the
memory for these tags can't be freed. This is currently handled as an
abnormal situation and
This patchset implements several improvements:
1. Gracefully handles module unloading while there are used allocations
allocated from that module;
2. Provides an option to reduce memory overhead from storing page
allocation references by indexing allocation tags;
3. Provides an option to store page
11 matches
Mail list logo