CVS commit: src/external/cddl/osnet/dev/dtrace/mips

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Wed Apr  7 01:54:32 UTC 2021

Modified Files:
src/external/cddl/osnet/dev/dtrace/mips: dtrace_isa.c

Log Message:
Use NAL (nop-and-link) to get the current PC.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.2
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1	Mon Mar 29 05:17:09 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c	Wed Apr  7 01:54:31 2021
@@ -107,9 +107,8 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 	ra = (register_t)(intptr_t)__builtin_return_address(0);
 
	__asm __volatile(
-		"jal 99f\n"
-		"nop\n"
-		"99:\n"
+		"nal\n"
+		" nop\n"
 		"move %0, $31\n" /* get ra */
 		"move $31, %1\n" /* restore ra */
 		: "=r" (pc)



CVS commit: src/external/cddl/osnet/dev/dtrace

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 12:48:59 UTC 2021

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c
src/external/cddl/osnet/dev/dtrace/arm: dtrace_subr.c
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
sizeof(*var) instead of sizeof(type)


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.14 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.15
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.14	Fri Nov  8 11:06:21 2019
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.14 2019/11/08 11:06:21 hannken Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.15 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -78,7 +78,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -108,7 +108,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.5
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.4 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -94,7 +94,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -124,7 +124,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.13
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12	Wed Feb 13 08:46:40 2019
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.12 2019/02/13 08:46:40 rin Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.13 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -86,7 +86,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -116,7 +116,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 void



CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 12:48:36 UTC 2021

Modified Files:
src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c

Log Message:
sizeof(*var) instead of sizeof(type)
Call kmem_free() with size of data being freed.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.5
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4	Thu Nov 12 02:15:56 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Tue Apr  6 12:48:36 2021
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:36 simonb Exp $");
 
 #include 
 #include 
@@ -87,7 +87,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -120,7 +120,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, 0);
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/



CVS commit: src/external/cddl/osnet/dev/dtrace/mips

2021-04-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr  6 12:10:21 UTC 2021

Modified Files:
src/external/cddl/osnet/dev/dtrace/mips: dtrace_subr.c

Log Message:
sizeof(*var) instead of sizeof(type)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2	Tue Apr  6 04:19:15 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c	Tue Apr  6 08:10:21 2021
@@ -88,7 +88,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/



CVS commit: src/external/cddl/osnet/dev/dtrace/mips

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 08:19:15 UTC 2021

Modified Files:
src/external/cddl/osnet/dev/dtrace/mips: dtrace_subr.c

Log Message:
Call kmem_free() with the size of the thing we are freeing.  Fixes panic
when unloading the ktrace module on MIPS.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1	Mon Mar 29 05:17:09 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c	Tue Apr  6 08:19:15 2021
@@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, 0);
+	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
 }
 
 /*ARGSUSED*/



CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64

2020-11-11 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Thu Nov 12 02:15:56 UTC 2020

Modified Files:
src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c

Log Message:
One more catch up with ``aarch64 is not mips'' change.
Fix evbarm-aarch64 build.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3	Wed Feb 12 06:05:23 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Thu Nov 12 02:15:56 2020
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $");
 
 #include 
 #include 
@@ -128,7 +128,7 @@ void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
 
-	(*func)(0, (uintptr_t)AARCH64_KSEG_START);
+	(*func)(0, (uintptr_t)AARCH64_DIRECTMAP_START);
 	(*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0);
 }
 



CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 06:05:23 UTC 2020

Modified Files:
src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c

Log Message:
Change the address ranges that aarch64 considers toxic for dtrace.

`Toxic' means dtrace forbids D scripts from even attempting to read
or write at them.

Previously we considered [0, VM_MIN_KERNEL_ADDRESS) toxic, but
VM_MIN_KERNEL_ADDRESS is only the minimum address of the kernel map;
the direct-mapped region lies below it, and with PMAP_MAP_POOLPAGE we
allocate virtual pages for pool backing directly from physical pages
through the direct-mapped region.  Also, this did not consider I/O
mappings to be toxic, which they probably should be.

Instead, treat:

[0, AARCH64_KSEG_START)
and
[VM_KERNEL_IO_ADDRESS, 0xfff...ff)

as toxic.  (The upper bound for 0xfff...ff ought to be inclusive, not
exclusive, but I think we'll need another mechanism for expressing
that to dtrace!)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2	Wed Feb 12 01:09:38 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Wed Feb 12 06:05:23 2020
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.2 2020/02/12 01:09:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $");
 
 #include 
 #include 
@@ -128,7 +128,8 @@ void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
 
-	(*func)(0, (uintptr_t)VM_MIN_KERNEL_ADDRESS);
+	(*func)(0, (uintptr_t)AARCH64_KSEG_START);
+	(*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0);
 }
 
 static void



CVS commit: src/external/cddl/osnet/dev/dtrace/aarch64

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:10:16 UTC 2020

Modified Files:
src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_isa.c

Log Message:
Teach dtrace about el1_trap_exit frames on aarch64.

Implement dtrace_getarg and dtrace_getreg while here.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.2
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c	Wed Feb 12 01:10:16 2020
@@ -89,52 +89,60 @@ void
 dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes,
 uint32_t *intrpc)
 {
-	struct unwind_state state;
-	int scp_offset;
-	register_t sp, fp;
-	int depth;
-
-	depth = 0;
-
-	if (intrpc != 0) {
-		pcstack[depth++] = (pc_t) intrpc;
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	int i = 0;
+
+	if (intrpc) {
+		if (i < pcstack_limit)
+			pcstack[i++] = (pc_t)intrpc;
 	}
 
-	aframes++;
-
-	__asm __volatile("mov %0, sp" : "=" (sp));
-
-	state.fp = (uint64_t)__builtin_frame_address(0);
-	state.sp = sp;
-	state.pc = (uint64_t)dtrace_getpcstack;
-
-	while (depth < pcstack_limit) {
-		if (!INKERNEL(state.pc) || !INKERNEL(state.fp))
-			break;
-
-		fp = state.fp;
-		state.sp = fp + 0x10;
-		/* FP to previous frame (X29) */
-		state.fp = *(register_t *)(fp);
-		/* LR (X30) */
-		state.pc = *(register_t *)(fp + 8) - 4;
-
-		/*
-		 * NB: Unlike some other architectures, we don't need to
-		 * explicitly insert cpu_dtrace_caller as it appears in the
-		 * normal kernel stack trace rather than a special trap frame.
-		 */
-		if (aframes > 0) {
+	/*
+	 * fp[0] = x29 (saved frame pointer)
+	 * fp[1] = x30 (saved link register == return address)
+	 */
+	fp = __builtin_frame_address(0);
+	while (i < pcstack_limit && INKERNEL(fp[0]) && INKERNEL(fp[1])) {
+		/* Skip the specified number of artificial frames.  */
+		if (aframes > 0)
 			aframes--;
+		else
+			pcstack[i++] = fp[1];
+
+		/* Check whether this frame is handling a trap.  */
+		if (fp[1] == (register_t)el1_trap_exit) {
+			/*
+			 * Trap from kernel.  The trapframe is the
+			 * saved frame pointer of the call to the trap
+			 * handler whose return address is
+			 * el1_trap_exit.  The frame pointer of the
+			 * interrupted code is in x29 stashed in the
+			 * trapframe, alongside its pc.
+			 */
+			const struct trapframe *tf = (const void *)fp[0];
+			/* x29 = frame pointer */
+			fp = (const void *)tf->tf_regs.r_reg[29];
+			if (INKERNEL(tf->tf_pc)) {
+if (i >= pcstack_limit)
+	break;
+if (aframes > 0)
+	aframes--;
+else
+	pcstack[i++] = tf->tf_pc;
+			}
 		} else {
-			pcstack[depth++] = state.pc;
+			/*
+			 * Not a trap.  Keep going with fp[0] as the
+			 * parent frame pointer.
+			 */
+			fp = (const void *)fp[0];
 		}
-
 	}
 
-	for (; depth < pcstack_limit; depth++) {
-		pcstack[depth] = 0;
-	}
+	/* Zero the rest of the return address stack.  (Paranoia?)  */
+	while (i < pcstack_limit)
+		pcstack[i++] = 0;
 }
 
 static int
@@ -282,48 +290,78 @@ dtrace_getufpstack(uint64_t *pcstack, ui
 uint64_t
 dtrace_getarg(int arg, int aframes)
 {
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	const struct trapframe *tf = NULL;
+	int i = 0;
 
-	printf("IMPLEMENT ME: %s\n", __func__);
+	/*
+	 * The first arguments are passed in x0,...,x7.  The rest are
+	 * on the stack, too much trouble to figure out.
+	 *
+	 * XXX Shouldn't we ask ctf or dwarf or something to figure
+	 * this stuff out for us?
+	 */
+	KASSERT(arg >= 0);
+	if (arg >= 8)
+		return 0;
+
+	fp = __builtin_frame_address(0);
+	while (i < 1000 && INKERNEL(fp[0]) && INKERNEL(fp[1])) {
+		if (aframes > 0)
+			aframes--;
+		else
+			i++;
+		if (fp[1] == (register_t)el1_trap_exit) {
+			tf = (const void *)fp[0];
+			break;
+		} else {
+			fp = (const void *)fp[0];
+		}
+	}
 
-	return (0);
+	/* If we didn't find a trap frame, give up.  */
+	if (tf == NULL)
+		return 0;
+
+	/* Arg0, arg1, ..., arg7 are in registers x0, x1, ..., x7.  */
+	return tf->tf_regs.r_reg[arg];
 }
 
 int
 dtrace_getstackdepth(int aframes)
 {
-	struct unwind_state state;
-	int scp_offset;
-	register_t sp;
-	int depth;
-	int done;
-
-	depth = 1;
-	done = 0;
-
-	__asm __volatile("mov %0, sp" : "=" (sp));
-
-	state.fp = (uint64_t)__builtin_frame_address(0);
-	state.sp = sp;
-	state.pc = (uint64_t)dtrace_getstackdepth;
-
-	do {
-		done = unwind_frame();
-		if (!INKERNEL(state.pc) || !INKERNEL(state.fp))
-			break;
-		depth++;
-	} while (!done);
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	int i = 0;
+
+	fp = __builtin_frame_address(0);

CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2019-02-13 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Wed Feb 13 08:46:40 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
Fix DIAGNOSTIC build; replace FreeBSD-specific function with ours.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11	Mon Jun  4 21:35:29 2018
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Wed Feb 13 08:46:40 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.11 2018/06/04 21:35:29 christos Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.12 2019/02/13 08:46:40 rin Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -424,7 +424,8 @@ dtrace_trap(struct trapframe *frame, u_i
 	 */
 	nofault = (cpu_core[cpuid].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0;
 	if (nofault) {
-		KASSERTMSG((read_eflags() & PSL_I) == 0, "interrupts enabled");
+		KASSERTMSG((x86_read_flags() & PSL_I) == 0,
+		"interrupts enabled");
 
 		/*
 		 * There are only a couple of trap types that are expected.



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2019-01-12 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Jan 12 10:41:31 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c

Log Message:
There is no such function read_rflags(), probably meant x86_read_flags().


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11	Thu Aug 16 14:14:51 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Sat Jan 12 10:41:31 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.11 2018/08/16 14:14:51 christos Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.12 2019/01/12 10:41:31 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -412,7 +412,7 @@ dtrace_trap(struct trapframe *frame, u_i
 	 */
 	nofault = (cpu_core[cpuid].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0;
 	if (nofault) {
-		KASSERTMSG((read_rflags() & PSL_I) == 0, "interrupts enabled");
+		KASSERTMSG((x86_read_flags() & PSL_I) == 0, "interrupts enabled");
 
 		/*
 		 * There are only a couple of trap types that are expected.



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2018-08-16 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Aug 16 14:14:52 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c dtrace_subr.c

Log Message:
get rid of kernelbase


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c
cvs rdiff -u -r1.10 -r1.11 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.10
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9	Sun Aug 12 12:07:27 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c	Thu Aug 16 10:14:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_isa.c,v 1.9 2018/08/12 16:07:27 christos Exp $	*/
+/*	$NetBSD: dtrace_isa.c,v 1.10 2018/08/16 14:14:51 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -45,12 +45,6 @@ uint16_t dtrace_fuword16_nocheck(void *)
 uint32_t dtrace_fuword32_nocheck(void *);
 uint64_t dtrace_fuword64_nocheck(void *);
 
-#ifdef VM_MIN_KERNEL_ADDRESS_DEFAULT
-__strong_alias(kernelbase, vm_min_kernel_address)
-#else
-uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS;
-#endif
-
 #define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */
 
 struct amd64_frame {

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.11
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10	Tue Jun  5 08:04:19 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Thu Aug 16 10:14:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.10 2018/06/05 12:04:19 christos Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.11 2018/08/16 14:14:51 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -48,8 +48,6 @@
 #include 
 #include 
 
-extern uintptr_t 	kernelbase;
-
 int dtrace_invop(uintptr_t, struct trapframe *, uintptr_t);
 
 typedef struct dtrace_invop_hdlr {
@@ -117,7 +115,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
-	(*func)(0, kernelbase);
+	(*func)(0, VM_MIN_KERNEL_ADDRESS);
 }
 
 static void



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2018-08-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Aug 12 16:07:27 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c

Log Message:
handle variable kernel vm min address


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.9
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8	Fri Jul 27 03:32:59 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c	Sun Aug 12 12:07:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_isa.c,v 1.8 2018/07/27 07:32:59 maxv Exp $	*/
+/*	$NetBSD: dtrace_isa.c,v 1.9 2018/08/12 16:07:27 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -45,7 +45,11 @@ uint16_t dtrace_fuword16_nocheck(void *)
 uint32_t dtrace_fuword32_nocheck(void *);
 uint64_t dtrace_fuword64_nocheck(void *);
 
+#ifdef VM_MIN_KERNEL_ADDRESS_DEFAULT
+__strong_alias(kernelbase, vm_min_kernel_address)
+#else
 uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS;
+#endif
 
 #define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */
 



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2018-07-27 Thread Maxime Villard
Module Name:src
Committed By:   maxv
Date:   Fri Jul 27 07:32:59 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_isa.c

Log Message:
Replace KERN_BASE by VM_MIN_KERNEL_ADDRESS. Also add XXX on INKERNEL.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.7 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.8
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.7	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c	Fri Jul 27 07:32:59 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_isa.c,v 1.7 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_isa.c,v 1.8 2018/07/27 07:32:59 maxv Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -45,9 +45,9 @@ uint16_t dtrace_fuword16_nocheck(void *)
 uint32_t dtrace_fuword32_nocheck(void *);
 uint64_t dtrace_fuword64_nocheck(void *);
 
-uintptr_t kernelbase = (uintptr_t)KERN_BASE;
+uintptr_t kernelbase = (uintptr_t)VM_MIN_KERNEL_ADDRESS;
 
-#define INKERNEL(va) ((intptr_t)(va) < 0)
+#define INKERNEL(va) ((intptr_t)(va) < 0) /* XXX horror */
 
 struct amd64_frame {
 	struct amd64_frame	*f_frame;



CVS commit: src/external/cddl/osnet/dev/dtrace/x86

2018-06-06 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Wed Jun  6 17:16:56 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/x86: dis_tables.c

Log Message:
Correct compilation of osnet/dev/dtrace/x86/dis_tables.c under Clang

Constify dgr_suffix.

This could be done with -W flags, but they are incompatible between
compilers.

This is a step forward functional MKLLVM=yes HAVE_LLVM=yes build.

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c
diff -u src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.1 src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.2
--- src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c:1.1	Mon May 28 23:47:39 2018
+++ src/external/cddl/osnet/dev/dtrace/x86/dis_tables.c	Wed Jun  6 17:16:56 2018
@@ -2345,7 +2345,7 @@ typedef struct dis_gather_regs {
 	uint_t dgr_arg0;	/* src reg */
 	uint_t dgr_arg1;	/* vsib reg */
 	uint_t dgr_arg2;	/* dst reg */
-	char   *dgr_suffix;	/* suffix to append */
+	const char   *dgr_suffix;	/* suffix to append */
 } dis_gather_regs_t;
 
 static dis_gather_regs_t dis_vgather[4][2][2] = {



CVS commit: src/external/cddl/osnet/dev/dtrace

2018-06-06 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Wed Jun  6 15:54:03 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_hacks.c

Log Message:
Correct compilation of osnet/dev/dtrace/dtrace_hacks.c under Clang

Use __UNCONST() to remove const from an argument.

This could be done with -W flags, but they are incompatible between
compilers.

This is a step forward functional MKLLVM=yes HAVE_LLVM=yes build.

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.6 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.7
--- src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.6	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c	Wed Jun  6 15:54:03 2018
@@ -1,13 +1,15 @@
-/*	$NetBSD: dtrace_hacks.c,v 1.6 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_hacks.c,v 1.7 2018/06/06 15:54:03 kamil Exp $	*/
 
 /* $FreeBSD: head/sys/cddl/dev/dtrace/dtrace_hacks.c 281916 2015-04-24 03:19:30Z markj $ */
 /* XXX Hacks */
 
+#include 
+
 dtrace_cacheid_t dtrace_predcache_id;
 
 boolean_t
 priv_policy_only(const cred_t *cr, int b, boolean_t c)
 {
 
-	return kauth_authorize_generic(cr, KAUTH_GENERIC_ISSUSER, NULL) == 0;
+	return kauth_authorize_generic(__UNCONST(cr), KAUTH_GENERIC_ISSUSER, NULL) == 0;
 }



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2018-06-05 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Jun  5 12:04:19 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c

Log Message:
remove  done in the dtrace header now.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.9 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.10
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.9	Mon May 28 17:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Tue Jun  5 08:04:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.9 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.10 2018/06/05 12:04:19 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -33,7 +33,6 @@
  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
  */
 
-#include 
 #include 
 #include 
 #include 



CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2018-06-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jun  4 21:35:29 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
better to put this () in the dtrace header where the definitions
are needed.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.11
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10	Mon Jun  4 16:12:45 2018
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Mon Jun  4 17:35:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.10 2018/06/04 20:12:45 kre Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.11 2018/06/04 21:35:29 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -33,7 +33,6 @@
  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
  */
 
-#include 
 #include 
 #include 
 #include 



CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2018-06-04 Thread Robert Elz
Module Name:src
Committed By:   kre
Date:   Mon Jun  4 20:12:46 UTC 2018

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
The (dtrace version of)  is needed for kthread_t
(same as the amd64 version).   This should fix (one of) the
current i386 build breakages.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.9 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.10
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.9	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Mon Jun  4 20:12:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.9 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.10 2018/06/04 20:12:45 kre Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -33,6 +33,7 @@
  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
  */
 
+#include 
 #include 
 #include 
 #include 



CVS commit: src/external/cddl/osnet/dev/dtrace

2016-06-23 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Thu Jun 23 06:44:52 UTC 2016

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_hacks.c

Log Message:
One more removal of a redefined symbol while loading dtrace module.

Should finish the issues with PR kern/51265


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.5
--- src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c:1.4	Thu Jun 23 04:35:35 2016
+++ src/external/cddl/osnet/dev/dtrace/dtrace_hacks.c	Thu Jun 23 06:44:52 2016
@@ -1,12 +1,10 @@
-/*	$NetBSD: dtrace_hacks.c,v 1.4 2016/06/23 04:35:35 pgoyette Exp $	*/
+/*	$NetBSD: dtrace_hacks.c,v 1.5 2016/06/23 06:44:52 pgoyette Exp $	*/
 
 /* $FreeBSD: src/sys/cddl/dev/dtrace/dtrace_hacks.c,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $ */
 /* XXX Hacks */
 
 dtrace_cacheid_t dtrace_predcache_id;
 
-cpu_core_t	cpu_core[MAXCPUS];
-
 boolean_t
 priv_policy_only(const cred_t *a, int b, boolean_t c)
 {



CVS commit: src/external/cddl/osnet/dev/dtrace

2015-11-28 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sat Nov 28 22:41:36 UTC 2015

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_modevent.c

Log Message:
When loading the module, if devsw_attach() fails, call dtrace_unload()
to undo the effects of dtrace_load().  And if dtrace_unload() fails,
panic (since we can't get the system back to its earlier stable state).

When unloading the module, call devsw_detach() first, to lock out any
new access.  Then call dtrace_unload().  If dgtrace_unload() fails,
reattach the devsw, and if that fails, panic.

Implements fixes described in PR kern/43032


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.5
--- src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.4	Thu Feb 26 09:10:52 2015
+++ src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c	Sat Nov 28 22:41:36 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_modevent.c,v 1.4 2015/02/26 09:10:52 ozaki-r Exp $	*/
+/*	$NetBSD: dtrace_modevent.c,v 1.5 2015/11/28 22:41:36 pgoyette Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -34,13 +34,26 @@ dtrace_modcmd(modcmd_t cmd, void *data)
 	switch (cmd) {
 	case MODULE_CMD_INIT:
 		dtrace_load(NULL);
-		return devsw_attach("dtrace", NULL, ,
+		error = devsw_attach("dtrace", NULL, ,
 		_cdevsw, );
+		if (error != 0)
+			if (dtrace_unload() != 0)
+panic("failed to unload dtrace");
+		return error;
+
 	case MODULE_CMD_FINI:
-		error = dtrace_unload();
+		error = devsw_detach(NULL, _cdevsw);
 		if (error != 0)
 			return error;
-		return devsw_detach(NULL, _cdevsw);
+
+		error = dtrace_unload();
+		if (error != 0) {
+			if (devsw_attach("dtrace", NULL, ,
+	 _cdevsw, ) != 0)
+panic("failed to reattach dtrace_devsw");
+		}
+		return error;
+
 	case MODULE_CMD_AUTOUNLOAD:
 		return EBUSY;
 	default:



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2015-10-02 Thread Jeff Rizzo
Module Name:src
Committed By:   riz
Date:   Fri Oct  2 22:15:18 UTC 2015

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c

Log Message:
Update signature of unimplemented function to match prototype.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.5
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4	Sat Mar 15 07:43:01 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c	Fri Oct  2 22:15:18 2015
@@ -225,7 +225,7 @@ dtrace_getstackdepth(int aframes)
 }
 
 ulong_t
-dtrace_getreg(struct regs *regs, uint_t reg)
+dtrace_getreg(struct trapframe *rp, uint_t reg)
 {
 
 	return (0);



CVS commit: src/external/cddl/osnet/dev/dtrace

2015-09-30 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Sep 30 20:59:13 UTC 2015

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c

Log Message:
recognize the proc provider as belonging to sdt


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.6
--- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5	Thu Jun 18 22:33:00 2015
+++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c	Wed Sep 30 16:59:13 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_ioctl.c,v 1.5 2015/06/19 02:33:00 riastradh Exp $	*/
+/*	$NetBSD: dtrace_ioctl.c,v 1.6 2015/09/30 20:59:13 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -660,9 +660,14 @@ again:
 
 		if (pvp == NULL && error == 0) {
 			char name[NAME_MAX];
+			const char *provider;
+			if (strcmp(pvd->dtvd_name, "proc") == 0)
+provider = "sdt";
+			else
+provider = pvd->dtvd_name;
 
 			if (snprintf(name, sizeof name, "dtrace_%s",
-			pvd->dtvd_name) < sizeof name) {
+			provider) < sizeof name) {
 error = module_autoload(name,
 MODULE_CLASS_MISC);
 if (error == 0)



CVS commit: src/external/cddl/osnet/dev/dtrace

2015-06-18 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Jun 19 02:33:00 UTC 2015

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c

Log Message:
Fix dtrace module autoload.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.5
--- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4	Sun Mar  3 18:16:35 2013
+++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c	Fri Jun 19 02:33:00 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_ioctl.c,v 1.4 2013/03/03 18:16:35 christos Exp $	*/
+/*	$NetBSD: dtrace_ioctl.c,v 1.5 2015/06/19 02:33:00 riastradh Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -659,10 +659,15 @@ again:
 		mutex_exit(dtrace_provider_lock);
 
 		if (pvp == NULL  error == 0) {
-			error = module_autoload(pvd-dtvd_name,
-			MODULE_CLASS_MISC);
-			if (error == 0)
-goto again;
+			char name[NAME_MAX];
+
+			if (snprintf(name, sizeof name, dtrace_%s,
+			pvd-dtvd_name)  sizeof name) {
+error = module_autoload(name,
+MODULE_CLASS_MISC);
+if (error == 0)
+	goto again;
+			}
 		}
 
 		if (pvp == NULL)



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2015-05-18 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon May 18 14:41:41 UTC 2015

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_asm.S

Log Message:
don't re-define END() now that amd64 defines it


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.4 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.5
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.4	Mon Jun 11 11:18:05 2012
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S	Mon May 18 10:41:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_asm.S,v 1.4 2012/06/11 15:18:05 chs Exp $	*/
+/*	$NetBSD: dtrace_asm.S,v 1.5 2015/05/18 14:41:41 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -35,7 +35,6 @@
 #include sys/cpuvar_defs.h
 #include sys/dtrace.h
 #include machine/asm.h
-#define END(a)
 #define MEXITCOUNT
 
 #include assym.h



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-15 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Sat Mar 15 07:43:01 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c

Log Message:
Make arm/dtrace_isa.c buildable

This is a band-aid for build, but it works anyway.
We have to do a real fix in the future.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.4
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3	Sat Mar  8 11:46:01 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c	Sat Mar 15 07:43:01 2014
@@ -39,6 +39,17 @@
 #include ddb/db_sym.h
 #include ddb/ddb.h
 
+uintptr_t kernelbase = (uintptr_t)KERNEL_BASE;
+
+/* TODO: support AAPCS */
+/* XXX: copied from sys/arch/arm/arm/db_trace.c */
+#define INKERNEL(va)	(((vaddr_t)(va)) = VM_MIN_KERNEL_ADDRESS)
+
+#define FR_SCP	(0)
+#define FR_RLV	(-1)
+#define FR_RSP	(-2)
+#define FR_RFP	(-3)
+
 #include regset.h
 
 /*



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-15 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Sat Mar 15 07:49:15 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S

Log Message:
Enable invop handler on module load

It sets a fbt handler to dtrace_invop_jump_addr on module load,
which is used to call the dtrace probing function from the trap
handler.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.5
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4	Mon Mar 10 06:38:22 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S	Sat Mar 15 07:49:15 2014
@@ -202,13 +202,24 @@ END(dtrace_copystr)
 void dtrace_invop_init(void)
 */
 ENTRY(dtrace_invop_init)
+	ldr	r1, .Ldtrace_invop
+	ldr	r2, .Ldtrace_invop_jump_addr
+	str	r1, [r2]
 	RET
+	.align	0
+.Ldtrace_invop:
+	.word	dtrace_invop
+.Ldtrace_invop_jump_addr:
+	.word	dtrace_invop_jump_addr
 END(dtrace_invop_init)
 
 /*
 void dtrace_invop_uninit(void)
 */
 ENTRY(dtrace_invop_uninit)
+	mov	r0, #0
+	ldr	r1, .Ldtrace_invop_jump_addr
+	str	r0, [r1]
 	RET
 END(dtrace_invop_uninit)
 



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-10 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Mon Mar 10 06:38:22 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S

Log Message:
Fix header inclusions


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.4
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3	Wed Mar  5 03:09:17 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S	Mon Mar 10 06:38:22 2014
@@ -34,8 +34,7 @@
 #include sys/dtrace.h
 
 #include machine/asm.h
-
-#include assym.s
+#include arm/armreg.h
 
 /*
 void dtrace_membar_producer(void)



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-09 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Mon Mar 10 03:04:57 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_subr.c

Log Message:
Make arm/dtrace_subr.c buildable

The change just imports the code from
http://people.freebsd.org/~gonzo/arm/dtrace-arm.diff
and tweaks for NetBSD.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.2
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.1	Fri Jun 21 19:16:00 2013
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c	Mon Mar 10 03:04:57 2014
@@ -1,3 +1,5 @@
+/*	$NetBSD: dtrace_subr.c,v 1.2 2014/03/10 03:04:57 ozaki-r Exp $	*/
+
 /*
  * CDDL HEADER START
  *
@@ -27,25 +29,25 @@
  * Use is subject to license terms.
  */
 
-#include sys/cdefs.h
-__FBSDID($FreeBSD$);
-
 #include sys/param.h
 #include sys/systm.h
 #include sys/types.h
 #include sys/kernel.h
 #include sys/malloc.h
 #include sys/kmem.h
-#include sys/smp.h
+#include sys/xcall.h
+#include sys/cpu.h
+#include sys/cpuvar.h
 #include sys/dtrace_impl.h
 #include sys/dtrace_bsd.h
-#include machine/clock.h
+#include machine/cpu.h
 #include machine/frame.h
-#include machine/trap.h
-#include vm/pmap.h
+#include machine/vmparam.h
+#include uvm/uvm_pglist.h
+#include uvm/uvm_prot.h
+#include uvm/uvm_pmap.h
 
-#define	DELAYBRANCH(x)	((int)(x)  0)
-		
+extern uintptr_t 	kernelbase;
 extern uintptr_t 	dtrace_in_probe_addr;
 extern int		dtrace_in_probe;
 extern dtrace_id_t	dtrace_probeid_error;
@@ -59,6 +61,8 @@ typedef struct dtrace_invop_hdlr {
 
 dtrace_invop_hdlr_t *dtrace_invop_hdlr;
 
+void dtrace_gethrtime_init(void *arg);
+
 int
 dtrace_invop(uintptr_t addr, uintptr_t *stack, uintptr_t eax)
 {
@@ -72,26 +76,76 @@ dtrace_invop(uintptr_t addr, uintptr_t *
 	return (0);
 }
 
+void
+dtrace_invop_add(int (*func)(uintptr_t, uintptr_t *, uintptr_t))
+{
+	dtrace_invop_hdlr_t *hdlr;
+
+	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr-dtih_func = func;
+	hdlr-dtih_next = dtrace_invop_hdlr;
+	dtrace_invop_hdlr = hdlr;
+}
+
+void
+dtrace_invop_remove(int (*func)(uintptr_t, uintptr_t *, uintptr_t))
+{
+	dtrace_invop_hdlr_t *hdlr = dtrace_invop_hdlr, *prev = NULL;
+
+	for (;;) {
+		if (hdlr == NULL)
+			panic(attempt to remove non-existent invop handler);
+
+		if (hdlr-dtih_func == func)
+			break;
+
+		prev = hdlr;
+		hdlr = hdlr-dtih_next;
+	}
+
+	if (prev == NULL) {
+		ASSERT(dtrace_invop_hdlr == hdlr);
+		dtrace_invop_hdlr = hdlr-dtih_next;
+	} else {
+		ASSERT(dtrace_invop_hdlr != hdlr);
+		prev-dtih_next = hdlr-dtih_next;
+	}
+
+	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+}
 
-/*ARGSUSED*/
 void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
-	printf(IMPLEMENT ME: dtrace_toxic_ranges\n);
+	(*func)(0, kernelbase);
+}
+
+static void
+xcall_func(void *arg0, void *arg1)
+{
+	dtrace_xcall_t func = arg0;
+
+	(*func)(arg1);
 }
 
 void
 dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
 {
-	cpuset_t cpus;
+	uint64_t where;
 
-	if (cpu == DTRACE_CPUALL)
-		cpus = all_cpus;
-	else
-		CPU_SETOF(cpu, cpus);
+	if (cpu == DTRACE_CPUALL) {
+		where = xc_broadcast(0, xcall_func, func, arg);
+	} else {
+		struct cpu_info *cinfo = cpu_lookup(cpu);
 
-	smp_rendezvous_cpus(cpus, smp_no_rendevous_barrier, func,
-	smp_no_rendevous_barrier, arg);
+		KASSERT(cinfo != NULL);
+		where = xc_unicast(0, xcall_func, func, arg, cinfo);
+	}
+	xc_wait(where);
+
+	/* XXX Q. Do we really need the other cpus to wait also? 
+	 * (see solaris:xc_sync())
+	 */
 }
 
 static void
@@ -133,10 +187,12 @@ dtrace_gethrestime(void)
 	return (curtime.tv_sec * 10UL + curtime.tv_nsec);
 }
 
-/* Function to handle DTrace traps during probes. See amd64/amd64/trap.c */
+/* Function to handle DTrace traps during probes. Not used on ARM yet */
 int
 dtrace_trap(struct trapframe *frame, u_int type)
 {
+	cpuid_t cpuid = cpu_number();	/* current cpu id */
+
 	/*
 	 * A trap can occur while DTrace executes a probe. Before
 	 * executing the probe, DTrace blocks re-scheduling and sets
@@ -147,7 +203,8 @@ dtrace_trap(struct trapframe *frame, u_i
 	 * Check if DTrace has enabled 'no-fault' mode:
 	 *
 	 */
-	if ((cpu_core[curcpu].cpuc_dtrace_flags  CPU_DTRACE_NOFAULT) != 0) {
+
+	if ((cpu_core[cpuid].cpuc_dtrace_flags  CPU_DTRACE_NOFAULT) != 0) {
 		/*
 		 * There are only a couple of trap types that are expected.
 		 * All the rest will be handled in the usual way.
@@ -156,8 +213,8 @@ dtrace_trap(struct trapframe *frame, u_i
 		/* Page fault. */
 		case 0:
 			/* Flag a bad address. */
-			cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR;
-			

CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-08 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Sat Mar  8 11:46:01 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c

Log Message:
Prepare dtrace_isa.c for build

- Tidy up header file inclusions
- Replace curcpu with cpu_number()
- Fix argument of dtrace_getreg
- Tweak for gcc 4.8

Note that the file is still not buildable.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.3
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2	Wed Mar  5 02:00:24 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c	Sat Mar  8 11:46:01 2014
@@ -30,24 +30,14 @@
 #include sys/param.h
 #include sys/systm.h
 #include sys/kernel.h
-#include sys/stack.h
-#include sys/pcpu.h
 
 #include machine/frame.h
-#include machine/md_var.h
 #include machine/reg.h
 
-#include vm/vm.h
-#include vm/vm_param.h
-#include vm/pmap.h
-
 #include machine/db_machdep.h
-#include machine/md_var.h
 #include machine/vmparam.h
-#include machine/stack.h
 #include ddb/db_sym.h
 #include ddb/ddb.h
-#include sys/kdb.h
 
 #include regset.h
 
@@ -69,9 +59,11 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 uint32_t *intrpc)
 {
 	uint32_t	*frame, *lastframe;
+#if 0
 	int	scp_offset;
+#endif
 	int	depth = 0;
-	pc_t caller = (pc_t) solaris_cpu[curcpu].cpu_dtrace_caller;
+	pc_t caller = (pc_t) solaris_cpu[cpu_number()].cpu_dtrace_caller;
 
 	if (intrpc != 0)
 		pcstack[depth++] = (pc_t) intrpc;
@@ -80,7 +72,9 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 
 	frame = (uint32_t *)__builtin_frame_address(0);;
 	lastframe = NULL;
+#if 0
 	scp_offset = -(get_pc_str_offset()  2);
+#endif
 
 	while ((frame != NULL)  (depth  pcstack_limit)) {
 		db_addr_t	scp;
@@ -178,27 +172,18 @@ int
 dtrace_getstackdepth(int aframes)
 {
 	uint32_t	*frame, *lastframe;
-	int	scp_offset;
 	int	depth = 1;
 
 	frame = (uint32_t *)__builtin_frame_address(0);;
 	lastframe = NULL;
-	scp_offset = -(get_pc_str_offset()  2);
 
 	while (frame != NULL) {
-		db_addr_t	scp;
 #if 0 
 		uint32_t	savecode;
 		int		r;
 		uint32_t	*rp;
 #endif
 
-		/*
-		 * In theory, the SCP isn't guaranteed to be in the function
-		 * that generated the stack frame.  We hope for the best.
-		 */
-		scp = frame[FR_SCP];
-
 		depth++;
 
 		/*
@@ -229,7 +214,7 @@ dtrace_getstackdepth(int aframes)
 }
 
 ulong_t
-dtrace_getreg(struct trapframe *rp, uint_t reg)
+dtrace_getreg(struct regs *regs, uint_t reg)
 {
 
 	return (0);
@@ -241,7 +226,7 @@ dtrace_copycheck(uintptr_t uaddr, uintpt
 
 	if (uaddr + size  VM_MAXUSER_ADDRESS || uaddr + size  uaddr) {
 		DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
-		cpu_core[curcpu].cpuc_dtrace_illval = uaddr;
+		cpu_core[cpu_number()].cpuc_dtrace_illval = uaddr;
 		return (0);
 	}
 
@@ -285,7 +270,7 @@ dtrace_fuword8(void *uaddr)
 {
 	if ((uintptr_t)uaddr  VM_MAXUSER_ADDRESS) {
 		DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
-		cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+		cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
 		return (0);
 	}
 	return (dtrace_fuword8_nocheck(uaddr));
@@ -296,7 +281,7 @@ dtrace_fuword16(void *uaddr)
 {
 	if ((uintptr_t)uaddr  VM_MAXUSER_ADDRESS) {
 		DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
-		cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+		cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
 		return (0);
 	}
 	return (dtrace_fuword16_nocheck(uaddr));
@@ -307,7 +292,7 @@ dtrace_fuword32(void *uaddr)
 {
 	if ((uintptr_t)uaddr  VM_MAXUSER_ADDRESS) {
 		DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
-		cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+		cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
 		return (0);
 	}
 	return (dtrace_fuword32_nocheck(uaddr));
@@ -318,7 +303,7 @@ dtrace_fuword64(void *uaddr)
 {
 	if ((uintptr_t)uaddr  VM_MAXUSER_ADDRESS) {
 		DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
-		cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+		cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
 		return (0);
 	}
 	return (dtrace_fuword64_nocheck(uaddr));



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-04 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Tue Mar  4 11:07:40 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S

Log Message:
Add missing END for each function


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.1	Fri Jun 21 19:16:00 2013
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S	Tue Mar  4 11:07:40 2014
@@ -42,12 +42,14 @@ void dtrace_membar_producer(void)
 */
 ENTRY(dtrace_membar_producer)
 	RET
+END(dtrace_membar_producer)
 
 /*
 void dtrace_membar_consumer(void)
 */
 ENTRY(dtrace_membar_consumer)
 	RET
+END(dtrace_membar_consumer)
 
 /*
 dtrace_icookie_t dtrace_interrupt_disable(void)
@@ -58,6 +60,8 @@ ENTRY(dtrace_interrupt_disable)
 	orr	r1, r1, #(I32_bit|F32_bit)
 	msr	cpsr_c, r1
 	RET
+END(dtrace_interrupt_disable)
+
 /*
 void dtrace_interrupt_enable(dtrace_icookie_t cookie)
 */
@@ -68,6 +72,7 @@ ENTRY(dtrace_interrupt_enable)
 	orr	r1, r1, r0
 	msr	cpsr_c, r1
 	RET
+END(dtrace_interrupt_enable)
 
 /*
 uint32_t dtrace_cas32(uint32_t *target, uint32_t cmp, uint32_t new)
@@ -95,6 +100,8 @@ ENTRY(dtrace_cas32)
 	msr	cpsr_c, r3
 	ldmfd	sp!, {r4, r5}
 	RET
+END(dtrace_cas32)
+END(dtrace_casptr)
 
 /*
 uint8_t
@@ -104,6 +111,7 @@ ENTRY(dtrace_fuword8_nocheck)
 	ldrb	r3, [r0]
 	mov 	r0, r3
 	RET
+END(dtrace_fuword8_nocheck)
 
 /*
 uint16_t
@@ -113,6 +121,7 @@ ENTRY(dtrace_fuword16_nocheck)
 	ldrh	r3, [r0]
 	mov 	r0, r3
 	RET
+END(dtrace_fuword16_nocheck)
 
 /*
 uint32_t
@@ -122,6 +131,7 @@ ENTRY(dtrace_fuword32_nocheck)
 	ldr	r3, [r0]
 	mov 	r0, r3
 	RET
+END(dtrace_fuword32_nocheck)
 
 /*
 uint64_t
@@ -142,6 +152,7 @@ ENTRY(dtrace_fuword64_nocheck)
 	mov	r1, r2
 #endif
 	RET
+END(dtrace_fuword64_nocheck)
 
 /*
 void
@@ -161,6 +172,7 @@ ENTRY(dtrace_copy)
 
 2:	ldmfd   sp!, {r4-r5}			/* stack is 8 byte aligned */
 	RET
+END(dtrace_copy)
 
 
 /*
@@ -184,6 +196,7 @@ ENTRY(dtrace_copystr)
 
 2:	ldmfd   sp!, {r4-r5}			/* stack is 8 byte aligned */
 	RET
+END(dtrace_copystr)
 
 
 /*
@@ -191,12 +204,14 @@ void dtrace_invop_init(void)
 */
 ENTRY(dtrace_invop_init)
 	RET
+END(dtrace_invop_init)
 
 /*
 void dtrace_invop_uninit(void)
 */
 ENTRY(dtrace_invop_uninit)
 	RET
+END(dtrace_invop_uninit)
 
 /*
 void
@@ -205,6 +220,7 @@ vpanic(const char *format, va_list alist
 ENTRY(vpanic)/* Initial stack layout: */
 vpanic_common:
 	RET
+END(vpanic)
 
 /*
 void
@@ -212,6 +228,7 @@ dtrace_vpanic(const char *format, va_lis
 */
 ENTRY(dtrace_vpanic)			/* Initial stack layout: */
 	RET
+END(dtrace_vpanic)
 
 /*
 uintptr_t
@@ -220,3 +237,4 @@ dtrace_caller(int aframes)
 ENTRY(dtrace_caller)
 	mov	r0, #-1
 	RET
+END(dtrace_caller)



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-04 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Wed Mar  5 02:00:24 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_isa.c

Log Message:
Use uint32_t instead of u_int32_t


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.2
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c:1.1	Fri Jun 21 19:16:00 2013
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_isa.c	Wed Mar  5 02:00:24 2014
@@ -68,7 +68,7 @@ void
 dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes,
 uint32_t *intrpc)
 {
-	u_int32_t	*frame, *lastframe;
+	uint32_t	*frame, *lastframe;
 	int	scp_offset;
 	int	depth = 0;
 	pc_t caller = (pc_t) solaris_cpu[curcpu].cpu_dtrace_caller;
@@ -78,16 +78,16 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 
 	aframes++;
 
-	frame = (u_int32_t *)__builtin_frame_address(0);;
+	frame = (uint32_t *)__builtin_frame_address(0);;
 	lastframe = NULL;
 	scp_offset = -(get_pc_str_offset()  2);
 
 	while ((frame != NULL)  (depth  pcstack_limit)) {
 		db_addr_t	scp;
 #if 0 
-		u_int32_t	savecode;
+		uint32_t	savecode;
 		int		r;
-		u_int32_t	*rp;
+		uint32_t	*rp;
 #endif
 
 		/*
@@ -109,7 +109,7 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 		}
 
 #if 0
-		savecode = ((u_int32_t *)scp)[scp_offset];
+		savecode = ((uint32_t *)scp)[scp_offset];
 		if ((savecode  0x0e10) == 0x0800) {
 			/* Looks like an STM */
 			rp = frame - 4;
@@ -128,7 +128,7 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 			break; /* Top of stack */
 
 		lastframe = frame;
-		frame = (u_int32_t *)(frame[FR_RFP]);
+		frame = (uint32_t *)(frame[FR_RFP]);
 
 		if (INKERNEL((int)frame)) {
 			/* staying in kernel */
@@ -177,20 +177,20 @@ dtrace_getarg(int arg, int aframes)
 int
 dtrace_getstackdepth(int aframes)
 {
-	u_int32_t	*frame, *lastframe;
+	uint32_t	*frame, *lastframe;
 	int	scp_offset;
 	int	depth = 1;
 
-	frame = (u_int32_t *)__builtin_frame_address(0);;
+	frame = (uint32_t *)__builtin_frame_address(0);;
 	lastframe = NULL;
 	scp_offset = -(get_pc_str_offset()  2);
 
 	while (frame != NULL) {
 		db_addr_t	scp;
 #if 0 
-		u_int32_t	savecode;
+		uint32_t	savecode;
 		int		r;
-		u_int32_t	*rp;
+		uint32_t	*rp;
 #endif
 
 		/*
@@ -208,7 +208,7 @@ dtrace_getstackdepth(int aframes)
 			break; /* Top of stack */
 
 		lastframe = frame;
-		frame = (u_int32_t *)(frame[FR_RFP]);
+		frame = (uint32_t *)(frame[FR_RFP]);
 
 		if (INKERNEL((int)frame)) {
 			/* staying in kernel */



CVS commit: src/external/cddl/osnet/dev/dtrace/arm

2014-03-04 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Wed Mar  5 03:09:17 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace/arm: dtrace_asm.S

Log Message:
Fix dtrace_cas32 logic

- compare with cmp, not new
- return old value


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2 src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.3
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S:1.2	Tue Mar  4 11:07:40 2014
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_asm.S	Wed Mar  5 03:09:17 2014
@@ -89,12 +89,12 @@ ENTRY(dtrace_cas32)
 	msr	cpsr_c, r4
 
 	ldr	r5, [r0]
-	cmp	r5, r2
-	movne	r0, #0
+	cmp	r5, r1
+	movne	r0, r5
 	bne	2f
 
 	str	r2, [r0]
-	mov	r0, #1
+	mov	r0, r5
 
 2:
 	msr	cpsr_c, r3



CVS commit: src/external/cddl/osnet/dev/dtrace

2014-03-04 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Wed Mar  5 06:06:42 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_debug.c

Log Message:
Use native atomic function instead of DTrace's own one

So we don't need to implement it for each architecture.

This change is from FreeBSD (not as-is though).


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.8
--- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7	Tue Mar  4 03:20:49 2014
+++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c	Wed Mar  5 06:06:42 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_debug.c,v 1.7 2014/03/04 03:20:49 ozaki-r Exp $	*/
+/*	$NetBSD: dtrace_debug.c,v 1.8 2014/03/05 06:06:42 ozaki-r Exp $	*/
 
 /*-
  * Copyright (C) 2008 John Birrell j...@freebsd.org.
@@ -36,62 +36,6 @@ static char const hex2ascii_data[] = 01
 
 #ifdef DEBUG
 
-#if defined(__amd64__)
-static __inline int
-dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
-{
-	u_char res;
-
-	__asm __volatile(
-		 lock ; 		
-		cmpxchgq %2,%1 ;	
-	   sete	%0 ;		
-	1:
-	# dtrace_cmpset_long
-	: =a (res),			/* 0 */
-	  =m (*dst)			/* 1 */
-	: r (src),			/* 2 */
-	  a (exp),			/* 3 */
-	  m (*dst)			/* 4 */
-	: memory);
-
-	return (res);
-}
-#elif defined(__i386__)
-static __inline int
-dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
-{
-	u_char res;
-
-	__asm __volatile(
-	lock ;	
-	   cmpxchgl %2,%1 ;
-	   sete%0 ;
-	1: 
-	# dtrace_cmpset_long
-	: =a (res),   /* 0 */
-	  =m (*dst)   /* 1 */
-	: r (src),/* 2 */
-	  a (exp),/* 3 */
-	  m (*dst)/* 4 */
-	: memory);
-
-	return (res);
-}
-#elif defined(__arm__)
-static __inline int
-dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
-{
-	u_char res;
-	if (*dst == src) {
-		res = *dst;
-		*dst = src;
-		return res;
-	}
-	return exp;
-}
-#endif
-
 #define DTRACE_DEBUG_BUFR_SIZE	(32 * 1024)
 
 struct dtrace_debug_data {
@@ -108,7 +52,8 @@ static volatile u_long	dtrace_debug_flag
 static void
 dtrace_debug_lock(int cpu)
 {
-	while (dtrace_cmpset_long(dtrace_debug_flag[cpu], 0, 1) == 0)
+	/* FIXME: use atomic_cmpset_ulong once we have it  */
+	while (atomic_cas_ulong(dtrace_debug_flag[cpu], 0, 1) == 0)
 		/* Loop until the lock is obtained. */
 		;
 }



CVS commit: src/external/cddl/osnet/dev/dtrace

2014-03-03 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Tue Mar  4 03:20:49 UTC 2014

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_debug.c

Log Message:
Fix wrong conditional statement in dtrace_debug_output

Reported in PR kern/48547 by ozaki-r.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.7
--- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6	Sun Apr 14 16:39:59 2013
+++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c	Tue Mar  4 03:20:49 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_debug.c,v 1.6 2013/04/14 16:39:59 christos Exp $	*/
+/*	$NetBSD: dtrace_debug.c,v 1.7 2014/03/04 03:20:49 ozaki-r Exp $	*/
 
 /*-
  * Copyright (C) 2008 John Birrell j...@freebsd.org.
@@ -167,7 +167,7 @@ dtrace_debug_output(void)
 
 			for (p = d-first; p  d-next; p++)
 *p1++ = *p;
-		} else if (d-next  d-first) {
+		} else if (d-first  d-next) {
 			char *p1 = dtrace_debug_bufr;
 
 			count = (uintptr_t) d-last - (uintptr_t) d-first;



CVS commit: src/external/cddl/osnet/dev/dtrace

2013-04-14 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Apr 14 16:39:59 UTC 2013

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_debug.c

Log Message:
add a stub for arm


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.5 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.6
--- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.5	Sat Jun 16 13:31:47 2012
+++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c	Sun Apr 14 12:39:59 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_debug.c,v 1.5 2012/06/16 17:31:47 chs Exp $	*/
+/*	$NetBSD: dtrace_debug.c,v 1.6 2013/04/14 16:39:59 christos Exp $	*/
 
 /*-
  * Copyright (C) 2008 John Birrell j...@freebsd.org.
@@ -78,6 +78,18 @@ dtrace_cmpset_long(volatile u_long *dst,
 
 	return (res);
 }
+#elif defined(__arm__)
+static __inline int
+dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
+{
+	u_char res;
+	if (*dst == src) {
+		res = *dst;
+		*dst = src;
+		return res;
+	}
+	return exp;
+}
 #endif
 
 #define DTRACE_DEBUG_BUFR_SIZE	(32 * 1024)



CVS commit: src/external/cddl/osnet/dev/dtrace

2013-03-03 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Mar  3 18:16:35 UTC 2013

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_ioctl.c

Log Message:
autoload tracing modules.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.3 src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.4
--- src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c:1.3	Wed Aug 31 17:57:16 2011
+++ src/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c	Sun Mar  3 13:16:35 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_ioctl.c,v 1.3 2011/08/31 21:57:16 christos Exp $	*/
+/*	$NetBSD: dtrace_ioctl.c,v 1.4 2013/03/03 18:16:35 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -647,6 +647,8 @@ dtrace_ioctl(struct file *fp, u_long cmd
 		DTRACE_IOCTL_PRINTF(%s(%d): DTRACEIOC_PROVIDER\n,__func__,__LINE__);
 
 		pvd-dtvd_name[DTRACE_PROVNAMELEN - 1] = '\0';
+		error = 0;
+again:
 		mutex_enter(dtrace_provider_lock);
 
 		for (pvp = dtrace_provider; pvp != NULL; pvp = pvp-dtpv_next) {
@@ -656,6 +658,13 @@ dtrace_ioctl(struct file *fp, u_long cmd
 
 		mutex_exit(dtrace_provider_lock);
 
+		if (pvp == NULL  error == 0) {
+			error = module_autoload(pvd-dtvd_name,
+			MODULE_CLASS_MISC);
+			if (error == 0)
+goto again;
+		}
+
 		if (pvp == NULL)
 			return (ESRCH);
 
@@ -758,16 +767,15 @@ dtrace_ioctl(struct file *fp, u_long cmd
 		return (0);
 	}
 	case DTRACEIOC_STOP: {
-		int rval;
 		processorid_t *cpuid = (processorid_t *) addr;
 
 		DTRACE_IOCTL_PRINTF(%s(%d): DTRACEIOC_STOP\n,__func__,__LINE__);
 
 		mutex_enter(dtrace_lock);
-		rval = dtrace_state_stop(state, cpuid);
+		error = dtrace_state_stop(state, cpuid);
 		mutex_exit(dtrace_lock);
 
-		return (rval);
+		return (error);
 	}
 	default:
 		error = ENOTTY;



CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2011-09-09 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Sep  9 17:48:39 UTC 2011

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
fix a shadow variable warning.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.5 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.6
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.5	Fri Apr 23 07:39:53 2010
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Fri Sep  9 13:48:39 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.5 2010/04/23 11:39:53 ahoka Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.6 2011/09/09 17:48:39 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -131,11 +131,11 @@
 }
 
 void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
+dtrace_xcall(processorid_t xcpu, dtrace_xcall_t func, void *arg)
 {
 	uint64_t where;
 
-	if (cpu == DTRACE_CPUALL) {
+	if (xcpu == DTRACE_CPUALL) {
 		where = xc_broadcast(0, xcall_func, func, arg);
 	} else {
 		struct cpu_info *cinfo = cpu_lookup(cpu);



CVS commit: src/external/cddl/osnet/dev/dtrace

2011-07-26 Thread YAMAMOTO Takashi
Module Name:src
Committed By:   yamt
Date:   Tue Jul 26 12:26:33 UTC 2011

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_unload.c

Log Message:
fix a kmem_alloc/free size mismatch


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_unload.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.5
--- src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4	Fri Apr 23 16:44:10 2010
+++ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c	Tue Jul 26 12:26:33 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_unload.c,v 1.4 2010/04/23 16:44:10 ahoka Exp $	*/
+/*	$NetBSD: dtrace_unload.c,v 1.5 2011/07/26 12:26:33 yamt Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -92,7 +92,8 @@
 	vmem_destroy(dtrace_arena);
 
 	if (dtrace_toxrange != NULL) {
-		kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *));
+		kmem_free(dtrace_toxrange,
+		dtrace_toxranges_max * sizeof (dtrace_toxrange_t));
 		dtrace_toxrange = NULL;
 		dtrace_toxranges = 0;
 		dtrace_toxranges_max = 0;



CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2011-07-20 Thread Matthias Scheler
Module Name:src
Committed By:   tron
Date:   Wed Jul 20 19:51:57 UTC 2011

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dis_tables.c

Log Message:
Fix uninitialized variables reported by GCC 4.5.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.2 src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.3
--- src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c:1.2	Sun Feb 21 01:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/i386/dis_tables.c	Wed Jul 20 19:51:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: dis_tables.c,v 1.2 2010/02/21 01:46:33 darran Exp $	*/
+/*	$NetBSD: dis_tables.c,v 1.3 2011/07/20 19:51:57 tron Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -1716,9 +1716,9 @@
 	uint_t opcode2;		/* low nibble of 1st byte */
 	uint_t opcode3;		/* extra opcode bits usually from ModRM byte */
 	uint_t opcode4;		/* high nibble of 2nd byte */
-	uint_t opcode5;		/* low nibble of 2ne byte */
+	uint_t opcode5 = 0xff;	/* low nibble of 2nd byte */
 	uint_t opcode6;		/* high nibble of 3rd byte */
-	uint_t opcode7;		/* low nibble of 3rd byte */
+	uint_t opcode7 = 0xff;	/* low nibble of 3rd byte */
 	uint_t opcode_bytes = 1;
 
 	/*



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2011-07-17 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jul 18 00:42:40 UTC 2011

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dis_tables.c

Log Message:
fix uninitialized gcc variables


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.2 src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.3
--- src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c:1.2	Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/amd64/dis_tables.c	Sun Jul 17 20:42:40 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: dis_tables.c,v 1.2 2010/02/21 01:46:33 darran Exp $	*/
+/*	$NetBSD: dis_tables.c,v 1.3 2011/07/18 00:42:40 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -1716,9 +1716,9 @@
 	uint_t opcode2;		/* low nibble of 1st byte */
 	uint_t opcode3;		/* extra opcode bits usually from ModRM byte */
 	uint_t opcode4;		/* high nibble of 2nd byte */
-	uint_t opcode5;		/* low nibble of 2ne byte */
+	uint_t opcode5 = 0;	/* low nibble of 2ne byte */	/* XXX: gcc */
 	uint_t opcode6;		/* high nibble of 3rd byte */
-	uint_t opcode7;		/* low nibble of 3rd byte */
+	uint_t opcode7 = 0;	/* low nibble of 3rd byte */	/* XXX: gcc */
 	uint_t opcode_bytes = 1;
 
 	/*



CVS commit: src/external/cddl/osnet/dev/dtrace

2010-04-23 Thread Adam Hoka
Module Name:src
Committed By:   ahoka
Date:   Fri Apr 23 16:44:10 UTC 2010

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_unload.c

Log Message:
Add a missing parentheses.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/dtrace_unload.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.3 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.4
--- src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.3	Fri Apr 23 11:39:52 2010
+++ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c	Fri Apr 23 16:44:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_unload.c,v 1.3 2010/04/23 11:39:52 ahoka Exp $	*/
+/*	$NetBSD: dtrace_unload.c,v 1.4 2010/04/23 16:44:10 ahoka Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -92,7 +92,7 @@
 	vmem_destroy(dtrace_arena);
 
 	if (dtrace_toxrange != NULL) {
-		kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *);
+		kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *));
 		dtrace_toxrange = NULL;
 		dtrace_toxranges = 0;
 		dtrace_toxranges_max = 0;



CVS commit: src/external/cddl/osnet/dev/dtrace/i386

2010-03-18 Thread Matthias Scheler
Module Name:src
Committed By:   tron
Date:   Thu Mar 18 11:00:03 UTC 2010

Modified Files:
src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c

Log Message:
Fix the build:
1.) ifdef-out unused functions and global variables.
2.) Include x86/include/cpu_counter.h for amd64 and i386 to get the
prototype of cpu_frequency.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.2	Sun Feb 21 01:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Thu Mar 18 11:00:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.2 2010/02/21 01:46:33 darran Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.3 2010/03/18 11:00:03 tron Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -48,6 +48,10 @@
 #include uvm/uvm_prot.h
 #include uvm/uvm_pmap.h
 
+#if defined(__amd64__) || defined(__i386__)
+#include x86/include/cpu_counter.h
+#endif
+
 extern uintptr_t 	kernelbase;
 extern uintptr_t 	dtrace_in_probe_addr;
 extern int		dtrace_in_probe;
@@ -61,6 +65,8 @@
 
 dtrace_invop_hdlr_t *dtrace_invop_hdlr;
 
+void dtrace_gethrtime_init(void *arg);
+
 int
 dtrace_invop(uintptr_t addr, uintptr_t *stack, uintptr_t eax)
 {
@@ -372,8 +378,10 @@
 }
 #endif
 
+#if 0
 static int64_t	tgt_cpu_tsc;
 static int64_t	hst_cpu_tsc;
+#endif
 static int64_t	tsc_skew[MAXCPUS];
 static uint64_t	nsec_scale;
 
@@ -389,6 +397,7 @@
 	return (rv);
 }
 
+#if 0
 static void
 dtrace_gethrtime_init_sync(void *arg)
 {
@@ -408,7 +417,9 @@
 	}
 #endif
 }
+#endif
 
+#if 0
 static void
 dtrace_gethrtime_init_cpu(void *arg)
 {
@@ -419,6 +430,7 @@
 	else
 		hst_cpu_tsc = dtrace_rdtsc();
 }
+#endif
 
 void
 dtrace_gethrtime_init(void *arg)