[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070419163520.11948.15503.sendpatchset@schroedinger.engr.sgi.com>
Date: Thu, 19 Apr 2007 09:35:20 -0700 (PDT)
From: Christoph Lameter <clameter@....com>
To: linux-kernel@...r.kernel.org
Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Nick Piggin <nickpiggin@...oo.com.au>, Andi Kleen <ak@...e.de>,
Paul Jackson <pj@....com>, Dave Chinner <dgc@....com>,
Christoph Lameter <clameter@....com>
Subject: [RFC 3/8] Flushing and zeroing higher order page cache pages
---
include/linux/pagemap.h | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
Index: linux-2.6.21-rc7/include/linux/pagemap.h
===================================================================
--- linux-2.6.21-rc7.orig/include/linux/pagemap.h 2007-04-18 22:08:36.000000000 -0700
+++ linux-2.6.21-rc7/include/linux/pagemap.h 2007-04-18 22:09:13.000000000 -0700
@@ -210,6 +210,33 @@ static inline void wait_on_page_writebac
extern void end_page_writeback(struct page *page);
+/* Support for clearing higher order pages */
+static inline void clear_mapping_page(struct address_space *a,
+ struct page *page)
+{
+ int nr_pages = 1 << a->order;
+ int i;
+
+ for (i = 0; i < nr_pages; i++)
+ clear_highpage(page + i);
+}
+
+/*
+ * Support for flushing higher order pages.
+ *
+ * A bit stupid: On many platforms flushing the first page
+ * will flush any TLB starting there
+ */
+static inline void flush_mapping_page(struct address_space *a,
+ struct page *page)
+{
+ int nr_pages = 1 << a->order;
+ int i;
+
+ for (i = 0; i < nr_pages; i++)
+ flush_dcache_page(page + i);
+}
+
/*
* Fault a userspace page into pagetables. Return non-zero on a fault.
*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists