mm: page_owner: fetch backtrace only for tracked pages
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 30 Apr 2021 05:55:02 +0000 (22:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Apr 2021 18:20:36 +0000 (11:20 -0700)
Very minor optimization.

Link: https://lkml.kernel.org/r/20210401212445.3534721-1-slyfox@gentoo.org
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_owner.c

index b29a049..590c2c8 100644 (file)
@@ -147,15 +147,15 @@ void __reset_page_owner(struct page *page, unsigned int order)
 {
        int i;
        struct page_ext *page_ext;
-       depot_stack_handle_t handle = 0;
+       depot_stack_handle_t handle;
        struct page_owner *page_owner;
        u64 free_ts_nsec = local_clock();
 
-       handle = save_stack(GFP_NOWAIT | __GFP_NOWARN);
-
        page_ext = lookup_page_ext(page);
        if (unlikely(!page_ext))
                return;
+
+       handle = save_stack(GFP_NOWAIT | __GFP_NOWARN);
        for (i = 0; i < (1 << order); i++) {
                __clear_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags);
                page_owner = get_page_owner(page_ext);