From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: linux-kernel@vger.kernel.org, Dave Hansen <haveblue@us.ibm.com>,
"Hariprasad Nellitheertha [imap]" <hari@in.ibm.com>
Subject: [RFC][PATCH] nameing reserved pages [1/3]
Date: Wed, 20 Apr 2005 21:08:52 +0900 [thread overview]
Message-ID: <42664654.5080409@jp.fujitsu.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 43 bytes --]
inline functions for naming pages.
-- Kame
[-- Attachment #2: name_reserved.patch --]
[-- Type: text/plain, Size: 1804 bytes --]
Adding page_type definitions and funcs for naming reserved pages.
Reserved page's information is stored into page->private.
This is a weak naming method and anyone can overwrite it.
This information is used in /dev/memstate in following patch.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
linux-2.6.12-rc2-kamezawa/include/linux/mm.h | 31 +++++++++++++++++++++++++++
1 files changed, 31 insertions(+)
diff -puN include/linux/mm.h~name_reserved include/linux/mm.h
--- linux-2.6.12-rc2/include/linux/mm.h~name_reserved 2005-04-20 09:37:48.000000000 +0900
+++ linux-2.6.12-rc2-kamezawa/include/linux/mm.h 2005-04-20 10:38:01.000000000 +0900
@@ -348,6 +348,37 @@ static inline void put_page(struct page
#endif /* CONFIG_HUGETLB_PAGE */
/*
+ * Type of Pages. This is used in /dev/memstate.
+ * value range is 0-255.
+ */
+enum page_type {
+ Page_Common = 0,
+ Min_Reserved_Types = 1,
+ Rserved_Unknwon = 1,
+ Reserved_At_Boot,
+ Max_Reserved_Types,
+ Page_Invalid = 0xff
+};
+/*
+ * Basically, page->private has no meaning without PG_private.
+ * Here, we use page->private for PG_reserved pages to record type of a page.
+ * Because a page is reserved, anyone will not modify page->private.
+ * When it is freed, page->private will be overwritten by some code.
+ */
+static inline void set_page_reserved(struct page *page, unsigned char type)
+{
+ SetPageReserved(page);
+ page->private = type;
+}
+
+static inline unsigned char reserved_page_type(struct page *page)
+{
+ if (!PageReserved(page))
+ return 0;
+ return (unsigned char)page->private;
+}
+
+/*
* Multiple processes may "see" the same page. E.g. for untouched
* mappings of /dev/null, all processes see the same page full of
* zeroes, and text pages of executables and shared libraries have
_
next reply other threads:[~2005-04-20 12:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-20 12:08 KAMEZAWA Hiroyuki [this message]
2005-04-20 21:10 ` [RFC][PATCH] nameing reserved pages [1/3] Pavel Machek
2005-04-20 23:54 ` KAMEZAWA Hiroyuki
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=42664654.5080409@jp.fujitsu.com \
--to=kamezawa.hiroyu@jp.fujitsu.com \
--cc=hari@in.ibm.com \
--cc=haveblue@us.ibm.com \
--cc=linux-kernel@vger.kernel.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