On Thu, Nov 30, 2006 at 01:11:51PM +0800, Xu, Anthony wrote:
>
> I found following code segment in function vcpu_itc_no_srlz,
> If inserted into VHPT, the pagesize is forced to PAGE_SHIFT.
I have compiled Xen with PAGE_SHIFT=12, otherwise yes 4KB pages would
not work. But I consider that a limitation not a bug :)
However at the bottom of that function (vcpu_itc_no_srlz) there is:
vcpu_set_tr_entry(&PSCBX(vcpu,dtlb),mp_pte,ps<<2,vaddr);
Assume itc.d inserts a large page (say 16MB). mp_pte.ppn is the
original value passed to itc.d - the bottom of the large page. vaddr is
the original ifa - maybe in the middle of the large page. However, ps
has been forced to PAGE_SHIFT. The result is a bad mapping in the
1-entry DTLB (&PSCBX(vcpu,dtlb)). That is what my patch fixes.
Matt
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|