svn commit: r254509 - in head/sys: cddl/dev/dtrace/powerpc modules/dtrace

Justin Hibbits jhibbits at FreeBSD.org
Mon Aug 19 05:10:47 UTC 2013


Author: jhibbits
Date: Mon Aug 19 05:10:46 2013
New Revision: 254509
URL: http://svnweb.freebsd.org/changeset/base/254509

Log:
  Fix some ppc64 dtrace bugs, and enable systrace_freebsd32 for ppc64.

Modified:
  head/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S
  head/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c
  head/sys/modules/dtrace/Makefile

Modified: head/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S
==============================================================================
--- head/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S	Mon Aug 19 04:56:03 2013	(r254508)
+++ head/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S	Mon Aug 19 05:10:46 2013	(r254509)
@@ -50,6 +50,7 @@
 void dtrace_membar_producer(void)
 */
 ASENTRY_NOPROF(dtrace_membar_producer)
+	sync
 	blr
 END(dtrace_membar_producer)
 
@@ -57,6 +58,7 @@ END(dtrace_membar_producer)
 void dtrace_membar_consumer(void)
 */
 ASENTRY_NOPROF(dtrace_membar_consumer)
+	isync
 	blr
 END(dtrace_membar_consumer)
 
@@ -97,12 +99,21 @@ void *
 dtrace_casptr(void *target, void *cmp, void *new)
 */
 ASENTRY_NOPROF(dtrace_casptr)
+#ifdef __powerpc64__
+1:
+	ldarx	%r0,0,%r3
+	cmpd	%r4,%r0
+	bne	2f
+	stdcx.	%r5,0,%r3
+	bne	1b
+#else
 1:
 	lwarx	%r0,0,%r3
 	cmpw	%r4,%r0
 	bne	2f
 	stwcx.	%r5,0,%r3
 	bne	1b
+#endif
 2:	mr	%r3,%r0
 	blr
 END(dtrace_casptr)

Modified: head/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c
==============================================================================
--- head/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c	Mon Aug 19 04:56:03 2013	(r254508)
+++ head/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c	Mon Aug 19 05:10:46 2013	(r254509)
@@ -80,7 +80,11 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 		if (!INKERNEL((long) sp))
 			break;
 
+#ifdef __powerpc64__
+		callpc = *(uintptr_t *)(sp + RETURN_OFFSET64);
+#else
 		callpc = *(uintptr_t *)(sp + RETURN_OFFSET);
+#endif
 
 		if (!INKERNEL(callpc))
 			break;

Modified: head/sys/modules/dtrace/Makefile
==============================================================================
--- head/sys/modules/dtrace/Makefile	Mon Aug 19 04:56:03 2013	(r254508)
+++ head/sys/modules/dtrace/Makefile	Mon Aug 19 05:10:46 2013	(r254509)
@@ -22,7 +22,7 @@ SUBDIR+=	fasttrap fbt systrace_linux32
 .if ${MACHINE_CPUARCH} == "powerpc"
 SUBDIR+=	fbt
 .endif
-.if ${MACHINE_CPUARCH} == "amd64"
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64"
 SUBDIR+=	systrace_freebsd32
 .endif
 


More information about the svn-src-head mailing list