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 _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"