Minor source code cleanup of page flags in mm/page_alloc.c.
There is no functional change.Signed-off-by: Russ Anderson <rja@sgi.com>
---
include/linux/page-flags.h | 9 +++++++++
mm/page_alloc.c | 34 +++-------------------------------
2 files changed, 12 insertions(+), 31 deletions(-)Index: linus/mm/page_alloc.c
===================================================================
--- linus.orig/mm/page_alloc.c 2008-05-12 14:23:07.711484337 -0500
+++ linus/mm/page_alloc.c 2008-05-13 10:26:46.513459253 -0500
@@ -237,16 +237,7 @@ static void bad_page(struct page *page)
printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n"
KERN_EMERG "Backtrace:\n");
dump_stack();
- page->flags &= ~(1 << PG_lru |
- 1 << PG_private |
- 1 << PG_locked |
- 1 << PG_active |
- 1 << PG_dirty |
- 1 << PG_reclaim |
- 1 << PG_slab |
- 1 << PG_swapcache |
- 1 << PG_writeback |
- 1 << PG_buddy );
+ page->flags &= ~(PAGE_FLAGS_RECLAIM);
set_page_count(page, 0);
reset_page_mapcount(page);
page->mapping = NULL;
@@ -463,16 +454,7 @@ static inline int free_pages_check(struc
(page->mapping != NULL) |
(page_get_page_cgroup(page) != NULL) |
(page_count(page) != 0) |
- (page->flags & (
- 1 << PG_lru |
- 1 << PG_private |
- 1 << PG_locked |
- 1 << PG_active |
- 1 << PG_slab |
- 1 << PG_swapcache |
- 1 << PG_writeback |
- 1 << PG_reserved |
- 1 << PG_buddy ))))
+ (page->flags & (PAGE_FLAGS_RESERVE))))
bad_page(page);
if (PageDirty(page))
__ClearPageDirty(page);
@@ -616,17 +598,7 @@ static int prep_new_page(struct page *pa
(page->mapping != NULL) |
(page_get_page_cgroup(page) != NULL) |
(page_count(page) != 0) |
- (page->flags & (
- 1 << PG_lru |
- 1 << PG_private |
- 1 << PG_locked |
- 1 <&...
Could we (a) make the naming reflect the *use* rather than the flags
involved and (b) perhaps add a comment about that use at the point ofBecause here I'm now otherwise looking at the code, and I wonder
- why the extra odd parenthesis?
- what does PAGE_FLAG_RECLAIM mean?and it would be much nicer (I think) if the mask was instead called
something that reflected what it was all about, ie something along theSame exact thing. I wonder
- why are those parenthesis there
- what does "PAGE_FLAGS_RESERVE" mean?Woudln't it be much more readable if it was called
"PAGE_FLAGS_CHECK_AT_FREE" or something? That says "those flags will be
checked when the page is free'd", and now the use _and_ the definitionThis part would also be more explainable - rather than being a random
collection of flags, wouldn't it be more natural to think of them as
"flags I check at free", or "flags that I clear when they are corrupt" or
"flags that I check before I pass on a new page allocation".Right now it is _totally_ unclear why we should call something
PAGE_FLAGS_DIRTY when it has a lot of other bits set than just PG_dirty.
Hmm?Linus
--
Yes, will do. The reason for the cleanup is the following patch
defines PG_memerror, but only on configs with extended page flags.
So checking them in page_alloc.c would require adding #ifdef, which
would be rather ugly. Moving the definitions into page-flags.h
allows the #ifdef to be in the header file rather than the C code.From page.discard.v4:
+#ifdef CONFIG_PAGEFLAGS_EXTENDED
+PAGEFLAG(MemError, memerror)
+#define PAGE_FLAGS (PAGE_FLAGS_BASE | 1UL << PG_memerror)
+#else
+PAGEFLAG_FALSE(MemError)
+#define PAGE_FLAGS (PAGE_FLAGS_BASE)I'll make those changes.
--
Russ Anderson, OS RAS/Partitioning Project Lead
SGI - Silicon Graphics Inc rja@sgi.com
--
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
git: | |
| Alexey Dobriyan | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [BUG] New Kernel Bugs |
