<div dir="ltr">Please read this comment.</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><br>Best Regards, Tikhomirov Pavel.</div></div>
<br><br><div class="gmail_quote">2014-04-15 17:43 GMT+04:00 Pavel Tikhomirov <span dir="ltr">&lt;<a href="mailto:snorcht@gmail.com" target="_blank">snorcht@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Ok, but what if parent writes to memory first and gets COW&#39;ed,<div>and child gets writable memory when access it.</div><div>It can result in no PF.</div><div><br></div><div>Just an Idea, need to understand COW mechanism more precisely.</div>

</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><br>Best Regards, Tikhomirov Pavel.</div></div>
<br><br><div class="gmail_quote">2014-04-15 17:03 GMT+04:00 Cyrill Gorcunov <span dir="ltr">&lt;<a href="mailto:gorcunov@gmail.com" target="_blank">gorcunov@gmail.com</a>&gt;</span>:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Tue, Apr 15, 2014 at 04:48:33PM +0400, Pavel Tikhomirov wrote:<br>
&gt;    It seem to me, that clear_soft_dirty function for pte in kernel is called<br>
&gt;    only<br>
&gt;    if we had explicit write to /proc/pid/clear_refs. Only after that all<br>
&gt;    pages will<br>
&gt;    become write-protected and dirty tracking realy works, if new process was<br>
&gt;    created between snapshots, some part of its memory can be not write<br>
&gt;    protected so no PF generated for this part and some soft-dirty bits not<br>
&gt;    set,<br>
&gt;    isn&#39;t it?<br>
<br>
</div>No, when new process created and executed -- new memory will all be marked<br>
as soft-dirty. If new process is created with fork() then its pages will<br>
be COW&#39;ed and once write fault happened the page will be marked as soft<br>
dirty as far as I remember.<br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>