Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 15 Dec 2003 20:40:33 -0800 | From | Randolph Chung <> | Subject | Question about cache flushing and fork |
| |
Hi,
Can someone please explain why it is necessary to flush the cache during fork()? (i.e. call to flush_cache_mm() in dup_mmap)
It seems that after fork, the parent and child have access to the same vm, so it should be sufficient to flush the tlb, and create two pte's for the processes. I can see that during COW processing there can be kernel/user cache aliasing issues on virtually indexed caches, but that seems to be taken care of by copy_cow_page().
I've read through cachetlb.txt, but it just says:
This interface is used to handle whole address space page table operations such as what happens during fork, exit, and exec.
I can see why this is needed for exit(), but why fork()? and i don't see this used for exec() ?
Also is there an updated version of the "Linux Cache Flush Architecture" document? (http://en.tldp.org/LDP/khg/HyperNews/get/memory/flush.html) This is a very nicely written doc, but it seems a bit out of date for 2.6 (e.g. flush_page_to_ram is gone)
thanks randolph -- Randolph Chung Debian GNU/Linux Developer, hppa/ia64 ports http://www.tausq.org/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |