Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jul 2006 15:46:25 GMT
From:      Howard Su <howardsu@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 102002 for review
Message-ID:  <200607201546.k6KFkPtY014046@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=102002

Change 102002 by howardsu@su_vm on 2006/07/20 15:45:59

	Fix sdt probe's stack. We need set caller pc.
	disable verbose output by default.

Affected files ...

.. //depot/projects/dtrace/src/sys/cddl/dev/sdt/sdt.c#7 edit

Differences ...

==== //depot/projects/dtrace/src/sys/cddl/dev/sdt/sdt.c#7 (text+ko) ====

@@ -103,12 +103,13 @@
 static sdt_probe_t		**sdt_probetab;
 static int			sdt_probetab_size;
 static int			sdt_probetab_mask;
-static int			sdt_verbose = 1;
+static int			sdt_verbose = 0;
 
 static int
 sdt_invop(uintptr_t addr, uintptr_t *stack, uintptr_t rval)
 {
- 	uintptr_t stack0, stack1, stack2, stack3, stack4;
+	struct pcpu *cpu = pcpu_find(curcpu);
+	uintptr_t stack0, stack1, stack2, stack3, stack4;
  	sdt_probe_t *sdt = sdt_probetab[SDT_ADDR2NDX(addr)];
 
  	 for (; sdt != NULL; sdt = sdt->sdp_hashnext) {
@@ -122,7 +123,8 @@
 	   		 * disabled.
 	   		 */
 	  		DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);
-	  		stack0 = stack[i++];
+			cpu->pc_dtrace_caller = addr;
+			stack0 = stack[i++];
 	  		stack1 = stack[i++];
 	  		stack2 = stack[i++];
 	  		stack3 = stack[i++];



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607201546.k6KFkPtY014046>