All of lore.kernel.org
 help / color / mirror / Atom feed
* [parisc-linux] Question about cache flushing and fork
@ 2003-12-16  4:40 ` Randolph Chung
  0 siblings, 0 replies; 21+ messages in thread
From: Randolph Chung @ 2003-12-16  4:40 UTC (permalink / raw)
  To: linux-kernel, parisc-linux

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/

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [parisc-linux] Question about cache flushing and fork
@ 2003-12-16  4:40 Randolph Chung
  0 siblings, 0 replies; 21+ messages in thread
From: Randolph Chung @ 2003-12-16  4:40 UTC (permalink / raw)
  To: linux-kernel, parisc-linux

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/

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2003-12-17  1:46 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-12-16  4:40 [parisc-linux] Question about cache flushing and fork Randolph Chung
2003-12-16  4:40 ` Randolph Chung
2003-12-16  4:48 ` [parisc-linux] " David S. Miller
2003-12-16  4:48   ` David S. Miller
2003-12-16 15:53   ` [parisc-linux] " LaMont Jones
2003-12-16 15:53   ` LaMont Jones
2003-12-16  4:48 ` David S. Miller
2003-12-16  4:56 ` Linus Torvalds
2003-12-16  4:56   ` Linus Torvalds
2003-12-16  4:56 ` [parisc-linux] " Linus Torvalds
2003-12-16  5:06 ` [parisc-linux] " John David Anglin
2003-12-16 16:03   ` LaMont Jones
2003-12-16 22:51     ` John David Anglin
2003-12-16 23:23       ` Stan Sieler
2003-12-17  0:30       ` LaMont Jones
2003-12-17  1:03         ` Stan Sieler
2003-12-17  0:36   ` James Bottomley
2003-12-17  0:57     ` John David Anglin
2003-12-17  1:16       ` LaMont Jones
2003-12-17  1:46         ` John David Anglin
  -- strict thread matches above, loose matches on Subject: below --
2003-12-16  4:40 Randolph Chung

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.