[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] PATCH: vti bugs fix
>From: Tristan Gingold >Sent: 2006?8?10? 19:21 >To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx; Alex Williamson >Subject: [Xen-ia64-devel] PATCH: vti bugs fix > >Hi, > >this patch fixes two bugs in vti code: >* guest_vhpt_lookup fails on long-format vhpt instead of reading it as > a short-format one. > This patch could be improved by reading the entry. This is future work. Yes, guest long format vhpt needs to be handled. >* vtlb_purge loops infinitly if VA is high enough and some high bits are set >in psbits. Below fixes may be more efficient, and there was this logic, but was removed by accident diff -r 6f02c4b9a9d0 xen/arch/ia64/vmx/vtlb.c 135 --- a/xen/arch/ia64/vmx/vtlb.c Wed Aug 09 12:05:13 2006 +0800 136 +++ b/xen/arch/ia64/vmx/vtlb.c Fri Aug 11 09:54:37 2006 +0800 137 @@ -250,7 +250,7 @@ void vtlb_purge(VCPU *v, u64 va, u64 ps) 138 psbits = VMX(v, psbits[(va >> 61)]); 139 size = PSIZE(ps); 140 start = va & (-size); 141 - end = start + size; 142 + end = start + size -1; 143 while (psbits) { 144 curadr = start; 145 ps = __ffs(psbits); 146 @@ -281,7 +281,7 @@ static void vhpt_purge(VCPU *v, u64 va, 147 ia64_rr rr; 148 size = PSIZE(ps); 149 start = va & (-size); 150 - end = start + size; 151 + end = start + size -1; 152 rr.rrval = ia64_get_rr(va); 153 size = PSIZE(rr.ps); 154 while(start < end){ > >Tested by running a VTi domain with a long-format vhpt. Which guest OS do you run, which supports long-format vhpt? virtualizing/handling protect key may be needed to support guest long-format vhpt. Thanks, Anthony > >Tristan. _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |