summaryrefslogtreecommitdiffstats
path: root/Documentation/cachetlb.txt
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
commitb63ad0882a16a5d28003e57f2b0b81dee3fb322b (patch)
tree0a343ce219e2b8b38a5d702d66032c57b83d9720 /Documentation/cachetlb.txt
parenta9d7bff9a84dba79609a0002e5321b74c4d64c64 (diff)
Merge with 2.4.0-test11.
Diffstat (limited to 'Documentation/cachetlb.txt')
-rw-r--r--Documentation/cachetlb.txt30
1 files changed, 17 insertions, 13 deletions
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt
index 952dbc652..5201a2f54 100644
--- a/Documentation/cachetlb.txt
+++ b/Documentation/cachetlb.txt
@@ -305,19 +305,23 @@ Here is the new interface:
If D-cache aliasing is not an issue, this routine may
simply be defined as a nop on that architecture.
- TODO: If we set aside a few bits in page->flags as
- "architecture private", these interfaces could
- be implemented much more efficiently. This would
- allow one to "defer" (perhaps indefinitely) the
- actual flush if there are currently no user processes
- mapping this page.
-
- The idea is, first at flush_dcache_page() time, if
- page->mapping->i_mmap is an empty list, just mark
- one of the architecture private page flag bits.
- Later, in update_mmu_cache(), a check could be made
- of this flag bit, and if set the flush is done
- and the flag bit is cleared.
+ There is a bit set aside in page->flags (PG_arch_1) as
+ "architecture private". The kernel guarentees that,
+ for pagecache pages, it will clear this bit when such
+ a page first enters the pagecache.
+
+ This allows these interfaces to be implemented much more
+ efficiently. It allows one to "defer" (perhaps indefinitely)
+ the actual flush if there are currently no user processes
+ mapping this page. See sparc64's flush_dcache_page and
+ update_mmu_cache implementations for an example of how to go
+ about doing this.
+
+ The idea is, first at flush_dcache_page() time, if
+ page->mapping->i_mmap{,_shared} are empty lists, just mark the
+ architecture private page flag bit. Later, in
+ update_mmu_cache(), a check is made of this flag bit, and if
+ set the flush is done and the flag bit is cleared.
XXX Not documented: flush_icache_page(), need to talk to Paul
Mackerras, David Mosberger-Tang, et al.