WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

RE: [Xen-ia64-devel][PATCH] vcpu_get_psr fix

To: "Isaku Yamahata" <yamahata@xxxxxxxxxxxxx>
Subject: RE: [Xen-ia64-devel][PATCH] vcpu_get_psr fix
From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
Date: Fri, 22 Dec 2006 10:13:33 +0800
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 21 Dec 2006 18:13:22 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acck5DOLZvpcnbaQTraJy95rkQZjTwAiGKXw
Thread-topic: [Xen-ia64-devel][PATCH] vcpu_get_psr fix
Isaku Yamahata write on 2006年12月21日 17:41:
> On Thu, Dec 21, 2006 at 01:13:45PM +0800, Xu, Anthony wrote:
> 
> Could you elaborate?
> I don't see why it causes booting trouble and masking vpsr resolves
> it. 

Hi Isaku,

__kernel_syscall_via_epc will call fsys_bubble_down

Below code is used to form cr.ipsr
It wants to set ipsr.ri=1,

If (r29).ri=0 or 1, that's ok
But if (r29).ri=2, then ipsr.ri=3 issue happens


        /*
         * Reading psr.l gives us only bits 0-31, psr.it, and psr.mc.
         * The rest we have to synthesize.
         */
#       define PSR_ONE_BITS             ((3 << IA64_PSR_CPL0_BIT)       \
                                         | (0x1 << IA64_PSR_RI_BIT)     \
                                         | IA64_PSR_BN | IA64_PSR_I)

        movl r8=PSR_ONE_BITS                    // X
        ;;
        mov r25=ar.unat                         // M2 (5 cyc) save ar.unat
        mov r19=b6                              // I0   save b6 (2 cyc)
        mov r20=r1                              // A    save caller's gp in r20
        ;;
        or r29=r8,r29                           // A    construct cr.ipsr value 
to save
        mov b6=r18                              // I0   copy syscall 
entry-point to b6 (7 cyc)

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