]> xenbits.xensource.com Git - xen.git/commit
i386: fix handling of Xen entries in final L2 page table
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 15 Jul 2009 12:07:30 +0000 (13:07 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 15 Jul 2009 12:07:30 +0000 (13:07 +0100)
commitdad74b0f9e62824dc1b902a0352a4a5f966472ac
tree1c9baa69ae00df5abbd207f7598417f548d9bb33
parent172805bb4be485016e278595700e68df355d374e
i386: fix handling of Xen entries in final L2 page table

Running Xen on top of KVM exposed an issue that latently also exists
on real hardware: So far, updating any L3 entry resulted in the Xen
owned part of the L2 table referenced by the final L3 one to be re-
initialized. This was not only unnecessary, it actually resulted in
Xen relying on the TLB entry which maps the L2 page that's being
updated not going away intermediately, since as a first step the full
range of Xen owned entries in the L2 were replaced by the respective
ones from the idle page table, and only then the per-domain entries
got re- written to their intended values.

This part of the initialization really is sufficient to be done once,
when the page becomes an L2-with-Xen-entries (PGT_pae_xen_l2) one,
i.e. can be moved to alloc_l2_table(). Only the linear page table
setup has to remain where it always was.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/mm.c