[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Clarifiation about WP bit CR0 and copy on write in Xen



Hello,

I see in xen/arch/x86/mm.c a note (at the very beginning of
the file) which says that Xen sets to 1 the WP bit of CR0
so that processors operationg in CPL 1 and 2 will be unable
to write read-only pages.
(When WP bit of CR0 is cleared (0) it says to ignore write protection
so all pages are writable in Supervisor more).

From what is written there I understand that
this is done in order to prevent OS opetaing in CPL 1 and CPL 2 from
writing into the page tables (I assume the page tables are read only
and only the HyperVisor can update them).

Later, it says : "this is very unlikely to cause a problem for guest
OS's, which will generally use the WP bit to simplify copy-on-write
implementation (in that case, OS wants a fault when it writes to
an application-supplied buffer)."

As I remember ,and I am not sure abouth the details,
in Linux (and other *NIX), when a process calls
fork() it creates another process , and the pages of the old process
are mapped to the new process; But they are marked
as read only (for the new process)) and only when the process tries to write to the page then a new page is created. (There is a page fault).So this fork()
method uses "copy on write".

Can anybody please elaborate more on this ? what is the simplification
of "Copy on Write" here? How does it uses the WP bit ?
Does XenoLinux (for example) has a different implementation of clone() than the usual implementation?


Regards,
Sting

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.