PERFORCE change 29931 for review

Marcel Moolenaar marcel at FreeBSD.org
Sun Apr 27 22:35:09 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=29931

Change 29931 by marcel at marcel_nfs on 2003/04/27 22:34:48

	We have an annoying race when using EPC syscalls which results
	in a general exception in cpu_switch(). We obviously get an
	interrupt when setting up the trapframe, but why and how this
	result in cloberring is not know yet. So, apply the equivalent
	of a 9-inch nail and disable interrupts. I need to understand
	what is happening exactly so that I can create a real fix (or
	acknowledge that this is in fact the fix). For now it simply
	makes EPC syscalls reliable enough to make the switch.

Affected files ...

.. //depot/projects/ia64_epc/sys/ia64/ia64/syscall.s#13 edit

Differences ...

==== //depot/projects/ia64_epc/sys/ia64/ia64/syscall.s#13 (text+ko) ====

@@ -224,6 +224,8 @@
 	.section	.text.syscall, "ax"
 
 ENTRY(epc_syscall, 8)
+	rsm		psr.i
+	;;
 {	.mmi
 	mov		r16=ar.rsc
 	mov		ar.rsc=0
@@ -359,7 +361,7 @@
 	;;
 }
 {	.mlx
-	ssm		psr.dfh|psr.ac
+	ssm		psr.dfh|psr.ac|psr.i
 	movl		gp=__gp
 	;;
 }


More information about the p4-projects mailing list