From: Mel Gorman <mel@csn.ul.ie>
To: Hugh Dickins <hugh@veritas.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org
Subject: Re: [PATCH 3/7] mm: remove GFP_HIGHUSER_PAGECACHE
Date: Thu, 20 Nov 2008 16:43:04 +0000 [thread overview]
Message-ID: <20081120164304.GA9777@csn.ul.ie> (raw)
In-Reply-To: <Pine.LNX.4.64.0811200115050.19216@blonde.site>
Hi Hugh,
On Thu, Nov 20, 2008 at 01:16:16AM +0000, Hugh Dickins wrote:
> GFP_HIGHUSER_PAGECACHE is just an alias for GFP_HIGHUSER_MOVABLE,
> making that harder to track down: remove it, and its out-of-work
> brothers GFP_NOFS_PAGECACHE and GFP_USER_PAGECACHE.
>
> Since we're making that improvement to hotremove_migrate_alloc(),
> I think we can now also remove one of the "o"s from its comment.
>
The use of GFP_HIGHUSER_PAGECACHE instead of GFP_HIGHUSER_MOVABLE was a
deliberate decision at the time. I do not have an exact patch to point
you at but the intention behind GFP_HIGHUSER_PAGECACHE was that it be
self-documenting. i.e. one could easily find what GFP placement decisions
have been made for page-cache allocations.
GFP_NOFS_PAGECACHE is redundant and should have been dropped around the
time grow_dev_page() stopped using GFP_NOFS. GFP_USER_PAGECACHE is
similarly useless as bdget() no longer uses it which it did during some
point of patch revision.
So, I'm happy with GFP_NOFS_PAGECACHE and GFP_USER_PAGECACHE going away and
it makes perfect sense. GFP_HIGHUSER_PAGECACHE I'm not as keen on backing
out. I like it's self-documenting aspect but aliases sometimes make peoples
teeth itch. If it's really hated, then could a comment to the affect of
"Marked movable for a page cache allocation" be placed near the call-sites
instead?
> Signed-off-by: Hugh Dickins <hugh@veritas.com>
> ---
>
> fs/inode.c | 4 ++--
> include/linux/gfp.h | 6 ------
> mm/memory_hotplug.c | 9 +++------
> 3 files changed, 5 insertions(+), 14 deletions(-)
>
> --- mmclean2/fs/inode.c 2008-11-19 15:25:12.000000000 +0000
> +++ mmclean3/fs/inode.c 2008-11-19 15:26:16.000000000 +0000
> @@ -164,7 +164,7 @@ struct inode *inode_init_always(struct s
> mapping->a_ops = &empty_aops;
> mapping->host = inode;
> mapping->flags = 0;
> - mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE);
> + mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE);
> mapping->assoc_mapping = NULL;
> mapping->backing_dev_info = &default_backing_dev_info;
> mapping->writeback_index = 0;
> @@ -599,7 +599,7 @@ EXPORT_SYMBOL_GPL(inode_add_to_lists);
> * @sb: superblock
> *
> * Allocates a new inode for given superblock. The default gfp_mask
> - * for allocations related to inode->i_mapping is GFP_HIGHUSER_PAGECACHE.
> + * for allocations related to inode->i_mapping is GFP_HIGHUSER_MOVABLE.
> * If HIGHMEM pages are unsuitable or it is known that pages allocated
> * for the page cache are not reclaimable or migratable,
> * mapping_set_gfp_mask() must be called with suitable flags on the
> --- mmclean2/include/linux/gfp.h 2008-11-19 15:25:12.000000000 +0000
> +++ mmclean3/include/linux/gfp.h 2008-11-19 15:26:16.000000000 +0000
> @@ -70,12 +70,6 @@ struct vm_area_struct;
> #define GFP_HIGHUSER_MOVABLE (__GFP_WAIT | __GFP_IO | __GFP_FS | \
> __GFP_HARDWALL | __GFP_HIGHMEM | \
> __GFP_MOVABLE)
> -#define GFP_NOFS_PAGECACHE (__GFP_WAIT | __GFP_IO | __GFP_MOVABLE)
> -#define GFP_USER_PAGECACHE (__GFP_WAIT | __GFP_IO | __GFP_FS | \
> - __GFP_HARDWALL | __GFP_MOVABLE)
> -#define GFP_HIGHUSER_PAGECACHE (__GFP_WAIT | __GFP_IO | __GFP_FS | \
> - __GFP_HARDWALL | __GFP_HIGHMEM | \
> - __GFP_MOVABLE)
>
> #ifdef CONFIG_NUMA
> #define GFP_THISNODE (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY)
> --- mmclean2/mm/memory_hotplug.c 2008-11-19 15:25:12.000000000 +0000
> +++ mmclean3/mm/memory_hotplug.c 2008-11-19 15:26:16.000000000 +0000
> @@ -626,15 +626,12 @@ int scan_lru_pages(unsigned long start,
> }
>
> static struct page *
> -hotremove_migrate_alloc(struct page *page,
> - unsigned long private,
> - int **x)
> +hotremove_migrate_alloc(struct page *page, unsigned long private, int **x)
> {
> - /* This should be improoooooved!! */
> - return alloc_page(GFP_HIGHUSER_PAGECACHE);
> + /* This should be improooooved!! */
> + return alloc_page(GFP_HIGHUSER_MOVABLE);
> }
>
> -
> #define NR_OFFLINE_AT_ONCE_PAGES (256)
> static int
> do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
>
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-11-20 16:43 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-20 1:10 [PATCH 0/7] mm: cleanups Hugh Dickins
2008-11-20 1:11 ` [PATCH 1/7] mm: remove cgroup_mm_owner_callbacks Hugh Dickins
2008-11-20 1:23 ` Paul Menage
2008-11-20 1:26 ` Hugh Dickins
2008-11-20 16:41 ` Balbir Singh
2008-11-20 1:14 ` [PATCH 2/7] mm: remove AOP_WRITEPAGE_ACTIVATE Hugh Dickins
2008-11-20 1:16 ` [PATCH 3/7] mm: remove GFP_HIGHUSER_PAGECACHE Hugh Dickins
2008-11-20 16:43 ` Mel Gorman [this message]
2008-11-20 18:58 ` Hugh Dickins
2008-11-21 10:46 ` Mel Gorman
2008-11-20 1:17 ` [PATCH 4/7] mm: add Set,ClearPageSwapCache stubs Hugh Dickins
2008-11-20 18:08 ` Christoph Lameter
2008-11-20 1:20 ` [PATCH 5/7] mm: replace some BUG_ONs by VM_BUG_ONs Hugh Dickins
2008-11-20 18:09 ` Christoph Lameter
2008-11-20 1:22 ` [PATCH 6/7] mm: add_active_or_unevictable into rmap Hugh Dickins
2008-11-20 2:08 ` Rik van Riel
2008-11-20 15:18 ` Lee Schermerhorn
2008-11-23 21:51 ` [PATCH 8/7] mm: further cleanup page_add_new_anon_rmap Hugh Dickins
2008-11-23 21:56 ` Rik van Riel
2008-11-23 22:18 ` Hugh Dickins
2008-11-23 22:41 ` Rik van Riel
2008-11-20 1:24 ` [PATCH 7/7] mm: make page_lock_anon_vma static Hugh Dickins
2008-11-21 8:29 ` KOSAKI Motohiro
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=20081120164304.GA9777@csn.ul.ie \
--to=mel@csn.ul.ie \
--cc=akpm@linux-foundation.org \
--cc=hugh@veritas.com \
--cc=linux-mm@kvack.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