From: Omar Sandoval <osandov@osandov.com>
To: Stephen Brennan <stephen.s.brennan@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
David Hildenbrand <david@redhat.com>, Hao Ge <gehao@kylinos.cn>,
Vlastimil Babka <vbabka@suse.cz>,
"Vishal Moola (Oracle)" <vishal.moola@gmail.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
linux-debuggers@vger.kernel.org
Subject: Re: [PATCH] mm: convert page type macros to enum
Date: Thu, 6 Jun 2024 10:34:33 -0700 [thread overview]
Message-ID: <ZmHzKRkgKOGW8Xmk@telecaster.dhcp.thefacebook.com> (raw)
In-Reply-To: <20240606172530.829790-1-stephen.s.brennan@oracle.com>
On Thu, Jun 06, 2024 at 10:25:29AM -0700, Stephen Brennan wrote:
> Changing PG_slab from a page flag to a page type in commit 46df8e73a4a3
> ("mm: free up PG_slab") in has the unintended consequence of removing
> the PG_slab constant from kernel debuginfo. The commit does add the
> value to the vmcoreinfo note, which allows debuggers to find the value
> without hardcoding it. However it's most flexible to continue
> representing the constant with an enum. To that end, convert the page
> type fields into an enum. Debuggers will now be able to detect that
> PG_slab's type has changed from enum pageflags to enum page_type.
>
> Fixes: 46df8e73a4a3 ("mm: free up PG_slab")
>
> Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com>
> ---
> include/linux/page-flags.h | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> index 104078afe0b16..64fc191a75e8d 100644
> --- a/include/linux/page-flags.h
> +++ b/include/linux/page-flags.h
> @@ -947,12 +947,15 @@ PAGEFLAG_FALSE(HasHWPoisoned, has_hwpoisoned)
> #define PAGE_TYPE_BASE 0xf0000000
> /* Reserve 0x0000007f to catch underflows of _mapcount */
> #define PAGE_MAPCOUNT_RESERVE -128
Adding linux-debuggers to Cc.
Can we also get PAGE_TYPE_BASE and PAGE_MAPCOUNT_RESERVE as enums? That
would make it possible for debuggers to implement PageType() and
page_has_type().
> -#define PG_buddy 0x00000080
> -#define PG_offline 0x00000100
> -#define PG_table 0x00000200
> -#define PG_guard 0x00000400
> -#define PG_hugetlb 0x00000800
> -#define PG_slab 0x00001000
> +
> +enum page_type {
> + PG_buddy = 0x00000080,
> + PG_offline = 0x00000100,
> + PG_table = 0x00000200,
> + PG_guard = 0x00000400,
> + PG_hugetlb = 0x00000800,
> + PG_slab = 0x00001000,
> +};
>
> #define PageType(page, flag) \
> ((page->page_type & (PAGE_TYPE_BASE | flag)) == PAGE_TYPE_BASE)
> --
> 2.43.0
>
prev parent reply other threads:[~2024-06-06 17:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-06 17:25 Stephen Brennan
2024-06-06 17:34 ` Omar Sandoval [this message]
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=ZmHzKRkgKOGW8Xmk@telecaster.dhcp.thefacebook.com \
--to=osandov@osandov.com \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=gehao@kylinos.cn \
--cc=linux-debuggers@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=stephen.s.brennan@oracle.com \
--cc=vbabka@suse.cz \
--cc=vishal.moola@gmail.com \
--cc=willy@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox