On 1 March 2014 23:05, wrote: > how is this possible? the old page is locked during the call > to duppage(). so duppage() will not run concurrently on the > same page. > there's a race to decide whether to do it, and what happens to the page once it has. it reaches back into the page load code. you can easily end up with many copies of the same page. worse, duppage calls a putmmu/mmuput, which in some implementations calls newpage, which can lead to deadlock, since duppage has the conch. the whole thing is meant well, but misconceived. i can't even remember the details since it's so long since i cut out all that stuff.