[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel][PATCH] windows 2003 specific optimization
Hi Anthony, On Mon, 2007-05-14 at 15:43 +0800, Xu, Anthony wrote: > > if(!vhpt_enabled(v, vadr, misr.rs?RSE_REF:DATA_REF)){ > + if(GOS_WINDOWS(v)){ > + //windows use region 4 and 5 for identity mapping > + if(REGION_NUMBER(vadr)==4 && !(regs->cr_ipsr & IA64_PSR_CPL) > + && (REGION_OFFSET(vadr)<= _PAGE_PPN_MASK)){ > + pteval = PAGEALIGN(REGION_OFFSET(vadr),13)| 0x461; ^^^^^ > + if(thash_purge_and_insert(v, pteval, 13<<2, vadr, type)) > + goto try_again; > + return IA64_NO_FAULT; > + } > + > + if(REGION_NUMBER(vadr)==5 && !(regs->cr_ipsr & IA64_PSR_CPL) > + && (REGION_OFFSET(vadr)<= _PAGE_PPN_MASK)){ > + pteval = PAGEALIGN(REGION_OFFSET(vadr),13)| 0x471; ^^^^^ Can you define these bits of magic with macros please? > + if(thash_purge_and_insert(v, pteval, 13<<2, vadr, type)) > + goto try_again; > + return IA64_NO_FAULT; > + } > + } > if(vpsr.ic){ > vcpu_set_isr(v, misr.val); > alt_dtlb(v, vadr); > @@ -367,7 +386,7 @@ vmx_hpw_miss(u64 vadr , u64 vec, REGS* r > } > > /* avoid recursively walking (short format) VHPT */ > - if ((((vadr ^ vpta.val) << 3) >> (vpta.size + 3)) == 0) { > + if (GOS_LINUX(v)&&(((vadr^vpta.val)<<3)>>(vpta.size+3)) == 0) { Is this truly a Linux path, or maybe a !GOS_WINDOWS() test? We want to be sure we run OSes that don't support _OSI too. Thanks, Alex -- Alex Williamson HP Open Source & Linux Org. _______________________________________________ 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 |