All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yafang Shao <laoar.shao@gmail.com>
To: cl@linux.com, penberg@kernel.org, rientjes@google.com,
	iamjoonsoo.kim@lge.com, akpm@linux-foundation.org,
	willy@infradead.org, hannes@cmpxchg.org, mhocko@suse.com,
	david@redhat.com, osalvador@suse.de, linmiaohe@huawei.com,
	steven.price@arm.com, guro@fb.com,
	alexander.h.duyck@linux.intel.com, ying.huang@intel.com
Cc: linux-mm@kvack.org, Yafang Shao <laoar.shao@gmail.com>
Subject: [PATCH 2/2] mm: introduce PAGE_FLAGS() to make output of page flags better
Date: Fri, 15 Jan 2021 14:13:49 +0800	[thread overview]
Message-ID: <20210115061349.67386-3-laoar.shao@gmail.com> (raw)
In-Reply-To: <20210115061349.67386-1-laoar.shao@gmail.com>

There're totally __NR_PAGEFLAGS page flags, but the type of page->flags is
unsigned long, that makes the value of page->flags a little misleading when
it is printed to the user. We'd better print the real pages flags, instead
of the whole 64bits including the random values in the useless high bits.

There're two choices to achieve that, one of which is clear the useless
high bits when we initlize the page->flags, the other is don't print the
high bits when it is showed to the user. The latter one is better because
it is in the slow path and the performance won't be impacted.

Before that change, the output is,
[ 8846.517809] INFO: Slab 0x00000000f42a2c60 objects=33 used=3 fp=0x0000000060d32ca8 flags=0x17ffffc0010200(slab|head)

After that change, the output is,
[ 8843.757770] INFO: Slab 0x00000000f0e98335 objects=33 used=3 fp=0x00000000b643c7d8 flags=0x10200(slab|head)

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
---
 include/linux/page-flags.h | 2 ++
 mm/slub.c                  | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index ec5d029..db5c017 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -175,6 +175,8 @@ enum pageflags {
 	PG_reported = PG_uptodate,
 };
 
+#define PAGE_FLAGS(flags) (flags & ((1 << __NR_PAGEFLAGS) - 1))
+
 #ifndef __GENERATING_BOUNDS_H
 
 struct page;	/* forward declaration */
diff --git a/mm/slub.c b/mm/slub.c
index 901a45a..a93a03c 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -643,7 +643,7 @@ static void print_page_info(struct page *page)
 {
 	pr_err("INFO: Slab 0x%p objects=%u used=%u fp=0x%p flags=%#lx(%pGp)\n",
 	       page, page->objects, page->inuse, page->freelist,
-	       page->flags, &page->flags);
+	       PAGE_FLAGS(page->flags), &page->flags);
 
 }
 
-- 
1.8.3.1



  parent reply	other threads:[~2021-01-15  6:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-15  6:13 [PATCH 0/2] mm: improve the output of print_page_info() Yafang Shao
2021-01-15  6:13 ` [PATCH 1/2] mm, slub: use pGp to print page flags Yafang Shao
2021-01-15  8:46   ` David Hildenbrand
2021-01-15 10:14     ` Yafang Shao
2021-01-15  6:13 ` Yafang Shao [this message]
2021-01-15  8:39   ` [PATCH 2/2] mm: introduce PAGE_FLAGS() to make output of page flags better David Hildenbrand
2021-01-15 10:10     ` Yafang Shao
2021-01-15 10:15       ` David Hildenbrand
2021-01-15 10:17         ` Yafang Shao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210115061349.67386-3-laoar.shao@gmail.com \
    --to=laoar.shao@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=cl@linux.com \
    --cc=david@redhat.com \
    --cc=guro@fb.com \
    --cc=hannes@cmpxchg.org \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=osalvador@suse.de \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.com \
    --cc=steven.price@arm.com \
    --cc=willy@infradead.org \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.