direct-io.hg

changeset 12414:77bf1d1628a7

[IA64] Fix a bug in INIT handler

I found a bug in INIT handler. This bug sometimes occurs on
the following conditions.
1. Create a domVTi
2. Run a user program on domVTi
3. Push to INIT switch

When this bug occurs, Xen shows error messages.

This bug occurs if a vCPU of domVTi runs on a pCPU where its
INIT interruption have not occurred yet. It is because
"arch._thread.on_ustack" member in vcpu structure is always
zero and, accordingly, ar.bspstore doesn't switch to Xen RBS
in the MINSTATE_START_SAVE_MIN_PHYS.

This patch adds a checking of ipsr.vm bit into the
MINSTATE_START_SAVE_MIN_PHYS for domVTi. If ipsr.vm bit is 1,
ar.bspstore is switched to Xen RBS.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
author awilliam@xenbuild.aw
date Tue Oct 31 22:25:21 2006 -0700 (2006-10-31)
parents 37a8dbe24201
children 1eb880e9ff94
files xen/arch/ia64/linux-xen/minstate.h
line diff
     1.1 --- a/xen/arch/ia64/linux-xen/minstate.h	Tue Oct 31 22:25:17 2006 -0700
     1.2 +++ b/xen/arch/ia64/linux-xen/minstate.h	Tue Oct 31 22:25:21 2006 -0700
     1.3 @@ -38,6 +38,8 @@
     1.4   */
     1.5  #ifdef XEN
     1.6  # define MINSTATE_START_SAVE_MIN_PHYS								\
     1.7 +(pKStk)	tbit.z pKStk,pUStk=r29,IA64_PSR_VM_BIT;							\
     1.8 +	;;											\
     1.9  (pKStk)	movl r3=THIS_CPU(ia64_mca_data);;							\
    1.10  (pKStk)	tpa r3 = r3;;										\
    1.11  (pKStk)	ld8 r3 = [r3];;										\