From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: [PATCH 0 of 4] mm+paravirt+xen: add pte read-modify-write abstraction Date: Sat, 24 May 2008 10:25:43 -0700 (PDT) Message-ID: References: <48372C2F.1090704@goop.org> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Return-path: In-Reply-To: <48372C2F.1090704@goop.org> Sender: linux-kernel-owner@vger.kernel.org To: Jeremy Fitzhardinge Cc: Ingo Molnar , LKML , xen-devel , Thomas Gleixner , Hugh Dickins , Zachary Amsden , kvm-devel , Virtualization Mailing List , Rusty Russell , Peter Zijlstra List-Id: virtualization@lists.linuxfoundation.org On Fri, 23 May 2008, Jeremy Fitzhardinge wrote: > > Well, you could use it to update the page and protection bits while preserving > the AD bits, but I don't think that's very useful. It's not that it's not "very useful" - it's that it would be TOTALLY WRONG. If you change the page and the AD bits can change randomly while you do so, that means that the AD bits are now _undefined_. Which of the two pages did it happen to? The old one? The new one? Nobody can know. So you'd effectively have dirty bits that could be associated with the wrong physical page, which means that some page may be dirty, but the kernel would have it marked clean. That would be beyond bad. That would be a *serious* VM bug, with very subtle data corruption issues. So no, you cannot, and absolutely must not use this to update the actual page mapping. Ever. It is only valid for the protection bits. Linus