[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-ia64-devel][PATCH] windows 2003 specific optimization


  • To: "Alex Williamson" <alex.williamson@xxxxxx>
  • From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
  • Date: Tue, 15 May 2007 10:52:02 +0800
  • Cc: Xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 14 May 2007 19:50:23 -0700
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AceWVJdmhZeRwJkdTNqrGWSNOAMR8QAR0qYg
  • Thread-topic: [Xen-ia64-devel][PATCH] windows 2003 specific optimization

The new one per your comments

Thanks,
Anthony



>-----Original Message-----
>From: Alex Williamson [mailto:alex.williamson@xxxxxx]
>Sent: 2007年5月15日 2:21
>To: Xu, Anthony
>Cc: Xen-ia64-devel
>Subject: 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.

Attachment: winopt0515.patch
Description: winopt0515.patch

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.