summaryrefslogtreecommitdiff
path: root/include/linux/gfp.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2002-10-29 23:35:53 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-10-29 23:35:53 -0800
commita206231bbe6ffb988cdf9fcbdfd98e49abaf4819 (patch)
tree640f23350e83ff491f5cc970e79e9cd619704f6f /include/linux/gfp.h
parent1d2652dd2c3e942e75dc3137b3cb1774b43ae377 (diff)
[PATCH] hot-n-cold pages: page allocator core
Hot/Cold pages and zone->lock amortisation
Diffstat (limited to 'include/linux/gfp.h')
-rw-r--r--include/linux/gfp.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index c340b447a963..8e093813e4f7 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -17,6 +17,7 @@
#define __GFP_IO 0x40 /* Can start low memory physical IO? */
#define __GFP_HIGHIO 0x80 /* Can start high mem physical IO? */
#define __GFP_FS 0x100 /* Can call down to low-level FS? */
+#define __GFP_COLD 0x200 /* Cache-cold page required */
#define GFP_NOHIGHIO ( __GFP_WAIT | __GFP_IO)
#define GFP_NOIO ( __GFP_WAIT)
@@ -32,6 +33,7 @@
#define GFP_DMA __GFP_DMA
+
/*
* There is only one page-allocator function, and two main namespaces to
* it. The alloc_page*() variants return 'struct page *' and as such
@@ -77,11 +79,10 @@ extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
#define __get_dma_pages(gfp_mask, order) \
__get_free_pages((gfp_mask) | GFP_DMA,(order))
-/*
- * There is only one 'core' page-freeing function.
- */
extern void FASTCALL(__free_pages(struct page *page, unsigned int order));
extern void FASTCALL(free_pages(unsigned long addr, unsigned int order));
+extern void FASTCALL(free_hot_page(struct page *page));
+extern void FASTCALL(free_cold_page(struct page *page));
#define __free_page(page) __free_pages((page), 0)
#define free_page(addr) free_pages((addr),0)