On Wed, Oct 16, 2002 at 04:53:47PM -0700, Kip Walker wrote: To add a few technical details ... > 1) 'flush_cache_page' seems to be intended for flushing virtually > indexed dcaches when a virtual->physical mapping changes (based on > PAddr) Yes. > 2) 'flush_page_to_ram' is also related to avoiding virtual aliasing in > the dcache (based on VAddr) Yes again. Note that flush_page_to_ram is deprecated and should be implement as empty function for all architecture and the other flushing mechanisms be used instead. > 3) 'flush_icache_page' seems to be intended for making the icache > coherent with the dcache after an executable page has been filled Yes. > 4) 'break_cow' may copy an executable page that is marked executable, > for example a stack page (which has VM_EXEC) and might contain a live > signal trampoline Yes. > On a CPU with writeback physically indexed/tagged dcache and virtually > indexed icache that isn't coherent with the dcache, (1) and (2) are NOPs > and (3) must writeback the dcache and flush the icache. Yes, where this is getting complicated by some CPUs where remote i-caches are coherent but the local isn't. Ralf