[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.1.10.0805241022210.3081@woody.linux-foundation.org>
Date: Sat, 24 May 2008 10:25:43 -0700 (PDT)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Jeremy Fitzhardinge <jeremy@...p.org>
cc: Ingo Molnar <mingo@...e.hu>, LKML <linux-kernel@...r.kernel.org>,
xen-devel <xen-devel@...ts.xensource.com>,
Thomas Gleixner <tglx@...utronix.de>,
Hugh Dickins <hugh@...itas.com>,
Zachary Amsden <zach@...are.com>,
kvm-devel <kvm-devel@...ts.sourceforge.net>,
Virtualization Mailing List <virtualization@...ts.osdl.org>,
Rusty Russell <rusty@...tcorp.com.au>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Subject: Re: [PATCH 0 of 4] mm+paravirt+xen: add pte read-modify-write
abstraction
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists