diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-11-28 03:58:46 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-11-28 03:58:46 +0000 |
commit | b63ad0882a16a5d28003e57f2b0b81dee3fb322b (patch) | |
tree | 0a343ce219e2b8b38a5d702d66032c57b83d9720 /Documentation/cachetlb.txt | |
parent | a9d7bff9a84dba79609a0002e5321b74c4d64c64 (diff) |
Merge with 2.4.0-test11.
Diffstat (limited to 'Documentation/cachetlb.txt')
-rw-r--r-- | Documentation/cachetlb.txt | 30 |
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. |