public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Copy on write and page initialization
@ 2009-02-24  4:50 sidc7
  2009-02-24  9:17 ` Nick Piggin
  0 siblings, 1 reply; 4+ messages in thread
From: sidc7 @ 2009-02-24  4:50 UTC (permalink / raw)
  To: linux-kernel


Hi,

As far as I understand, Linux uses the COW optimization so parent and child
process share the same address space, till one of them writes to it, at
which point the kernel creates a copy of the page written to. This is done
through the function do_wp_page which in turn calls cow_user_page. 

I created a simple program, where the child and parent process write to a
variable differently. I have instrumented the kernel at cow_user_page. On
inserting the kprobe module and running the fork program, I do not get a
call to cow_user_page. I had several questions:
1. Does this mean that the kernel is not doing COW optimization? 
2. Is COW enabled by default, if not, how do we turn it on? 
3. Any other point in the kernel, where cow is done, other than
cow_user_page?

Regarding page initialization, if I understand it correctly, the kernel
calls get_zeroed_page when it has to allocated a zeroed page, once again in
my kernel module, I have probes the kernel at get_zeroed_page, but get no
calls, even on running the system for a long time, any other place where the
kernel gets zeroed pages to return the applications ?



Any help would be appreciated, thanks in advance
SC
-- 
View this message in context: http://www.nabble.com/Copy-on-write-and-page-initialization-tp22175803p22175803.html
Sent from the linux-kernel mailing list archive at Nabble.com.


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

end of thread, other threads:[~2009-02-26 21:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-24  4:50 Copy on write and page initialization sidc7
2009-02-24  9:17 ` Nick Piggin
2009-02-24  9:47   ` sidc7
2009-02-26 21:26     ` Frank Ch. Eigler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox