debuggers.hg
changeset 11065:147144f9ec51
[IA64] fix vDSO paravirtualization.
sometimes it fails to clear event mask. It results in domain's unstability.
And one typo.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
sometimes it fails to clear event mask. It results in domain's unstability.
And one typo.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author | awilliam@xenbuild.aw |
---|---|
date | Thu Aug 03 11:10:53 2006 -0600 (2006-08-03) |
parents | 47a5dfd1bcd6 |
children | 3d6c1af609bf |
files | linux-2.6-xen-sparse/arch/ia64/kernel/gate.S linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/ia64/kernel/gate.S Thu Aug 03 11:05:59 2006 -0600 1.2 +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/gate.S Thu Aug 03 11:10:53 2006 -0600 1.3 @@ -130,7 +130,7 @@ GLOBAL_ENTRY(__kernel_syscall_via_epc) 1.4 // r20 = 1 1.5 // r22 = &vcpu->evtchn_mask 1.6 // r23 = &vpsr.ic 1.7 - // r24 = vcpu->pending_interruption 1.8 + // r24 = &vcpu->pending_interruption 1.9 // r25 = tmp 1.10 // r28 = &running_on_xen 1.11 // r30 = running_on_xen
2.1 --- a/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S Thu Aug 03 11:05:59 2006 -0600 2.2 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S Thu Aug 03 11:10:53 2006 -0600 2.3 @@ -379,30 +379,35 @@ GLOBAL_ENTRY(xen_get_psr) 2.4 ;; 2.5 END(xen_get_psr) 2.6 2.7 + // see xen_ssm_i() in privop.h 2.8 + // r22 = &vcpu->evtchn_mask 2.9 + // r23 = &vpsr.ic 2.10 + // r24 = &vcpu->pending_interruption 2.11 + // r25 = tmp 2.12 + // r31 = tmp 2.13 + // p11 = tmp 2.14 + // p14 = tmp 2.15 +#define XEN_SET_PSR_I \ 2.16 + ld4 r31=[r22]; \ 2.17 + ld4 r25=[r24]; \ 2.18 + ;; \ 2.19 + st4 [r22]=r0; \ 2.20 + cmp.ne.unc p14,p0=r0,r31; \ 2.21 + ;; \ 2.22 +(p14) cmp.ne.unc p11,p0=r0,r25; \ 2.23 + ;; \ 2.24 +(p11) st4 [r22]=r20; \ 2.25 +(p11) st4 [r23]=r0; \ 2.26 +(p11) XEN_HYPER_SSM_I; 2.27 + 2.28 GLOBAL_ENTRY(xen_ssm_i_0) 2.29 - st4 [r22]=r20 2.30 - ld4 r25=[r24] 2.31 - ;; 2.32 - cmp.ne.unc p11,p0=r0, r25 2.33 - ;; 2.34 -(p11) st4 [r22]=r0 2.35 -(p11) st4 [r23]=r0 2.36 -(p11) XEN_HYPER_SSM_I 2.37 - 2.38 + XEN_SET_PSR_I 2.39 brl.cond.sptk .vdso_ssm_i_0_ret 2.40 ;; 2.41 END(xen_ssm_i_0) 2.42 2.43 GLOBAL_ENTRY(xen_ssm_i_1) 2.44 - st4 [r22]=r20 2.45 - ld4 r25=[r24] 2.46 - ;; 2.47 - cmp.ne.unc p11,p0=r0, r25 2.48 - ;; 2.49 -(p11) st4 [r22]=r0 2.50 -(p11) st4 [r23]=r0 2.51 -(p11) XEN_HYPER_SSM_I 2.52 - ;; 2.53 + XEN_SET_PSR_I 2.54 brl.cond.sptk .vdso_ssm_i_1_ret 2.55 ;; 2.56 END(xen_ssm_i_1)