On Sat, Apr 30, 2005 at 11:54:06AM +0100, Keir Fraser wrote:
>
> On 30 Apr 2005, at 10:51, Scott Parish wrote:
>
> >Switch to xen, which is going to emulate some instructions and fake
> >the writing. We eventually end up in ptwr_emulated_update(), who among
> >other things, tries to copy the full l1_pgentry_t (64bits), but from
> >the 4 byte offset, that is the 4 high bytes and then 4 bytes of
> >undefined memory that may even be in another page.
>
> There's code in the 32-bit ptwr_emulated_update() to turn a sub-pte
> access into a full-pte access. Either this is missing/broken in the
> 64-bit version, or the emulator is broken and passing the wrong
> operand size.
The bitshifting stuff in ptwr_emulated_update() had some problems,
although its possible that it somehow worked for whatever cases it
was needed for before.
Adding a physaddr_t, and fixing the bitshifting took care of the
problem.
While i was at it, i wired up support for cmpxchg8b emulation under
PAE, and then tried to use set_pte_atomic(). That didn't quite do
the trick, but killing the machine_to_physical() conversion in
pte_val() got things working.
I was getting to dom0 prompt under the pae 5th patch release, testing
my patches under the 6th, the kernel fell apart in very late
boot. Haven't looked into this just yet.
sRp
--
Scott Parish
ptwr-em-up.diff
Description: Text document
bez-m2p.diff
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|