|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] PAE xen + linux kernel boots ...
> On the linux side of things we have the following in pgtable-3level.h:
>
> #if 1 /* writable pagetables */
> static inline void set_pte(pte_t *ptep, pte_t pte)
> {
> ptep->pte_high = pte.pte_high;
> smp_wmb();
> ptep->pte_low = pte.pte_low;
> }
> ...
Note there is also set_pte_atomic ...
> 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.
Having a close look at the emulation is on my todo list.
Note that ptwr_emulated_update takes "unsigned long", i.e. 32-bit
values (on x86_32) as parameters, so chances are pretty good that
there are issues with 64bit updates. It works fine for me nevertheless,
for some reason, maybe just pure luck ;)
Turning off emulation works fine for me as well btw. (just delete
the tree lines which force the emulation path for PAE), so I obviously
got the PGT_va backref stuff right ;)
Gerd
PS: there is revision #6 of the patches on the usual location,
I hadn't announced those yet.
--
#define printk(args...) fprintf(stderr, ## args)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|