]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
alloc_tag: skip pgalloc_tag_swap if profiling is disabled
authorSuren Baghdasaryan <surenb@google.com>
Thu, 26 Dec 2024 21:16:39 +0000 (13:16 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 16 Jan 2025 05:15:43 +0000 (21:15 -0800)
When memory allocation profiling is disabled, there is no need to swap
allocation tags during migration.  Skip it to avoid unnecessary overhead.

Once I added these checks, the overhead of the mode when memory profiling
is enabled but turned off went down by about 50%.

Link: https://lkml.kernel.org/r/20241226211639.1357704-2-surenb@google.com
Fixes: e0a955bf7f61 ("mm/codetag: add pgalloc_tag_copy()")
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Cc: David Wang <00107082@163.com>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Yu Zhao <yuzhao@google.com>
Cc: Zhenhua Huang <quic_zhenhuah@quicinc.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/alloc_tag.c

index 7dcebf118a3e64ac50a0ab9071623daca9a8aee8..65e706e1bc199c2dec97ffd86e2e147eb9692ba9 100644 (file)
@@ -195,6 +195,9 @@ void pgalloc_tag_swap(struct folio *new, struct folio *old)
        union codetag_ref ref_old, ref_new;
        struct alloc_tag *tag_old, *tag_new;
 
+       if (!mem_alloc_profiling_enabled())
+               return;
+
        tag_old = pgalloc_tag_get(&old->page);
        if (!tag_old)
                return;