PERFORCE change 138952 for review

John Birrell jb at FreeBSD.org
Sat Mar 29 17:41:30 PDT 2008


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

Change 138952 by jb at jb_freebsd1 on 2008/03/30 00:41:26

	More merges caused by the CDDL file move. Grumble.

Affected files ...

.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#1 add
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c#1 add
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/cpuvar.h#2 edit
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h#1 add
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/cyclic_impl.h#1 add
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/feature_tests.h#1 add
.. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/sema.h#1 add
.. //depot/projects/dtrace/src/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h#1 add
.. //depot/projects/dtrace/src/sys/modules/cyclic_test/Makefile#3 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/dtmalloc/Makefile#2 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/dtrace/Makefile#16 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/fasttrap/Makefile#4 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/fbt/Makefile#4 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/lockstat/Makefile#2 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/profile/Makefile#6 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/prototype/Makefile#4 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/sdt/Makefile#5 edit
.. //depot/projects/dtrace/src/sys/modules/dtrace/systrace/Makefile#4 edit

Differences ...

==== //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/cpuvar.h#2 (text+ko) ====

@@ -28,8 +28,30 @@
 #define	_COMPAT_OPENSOLARIS_SYS_CPUVAR_H
 
 #include <sys/mutex.h>
+#include <sys/cpuvar_defs.h>
 
 #ifdef _KERNEL
+
+struct cyc_cpu;
+
+typedef struct {
+	int		cpuid;
+        struct cyc_cpu *cpu_cyclic;
+	uint32_t	cpu_flags;
+	uint_t		cpu_intr_actv;
+	uintptr_t	cpu_profile_pc;
+	uintptr_t	cpu_profile_upc;
+	uintptr_t	cpu_dtrace_caller;	/* DTrace: caller, if any */
+	hrtime_t	cpu_dtrace_chillmark;	/* DTrace: chill mark time */
+	hrtime_t	cpu_dtrace_chilled;	/* DTrace: total chill time */
+} solaris_cpu_t; 
+
+/* Some code may choose to redefine this if pcpu_t would be more useful. */
+#define cpu_t	solaris_cpu_t
+#define	cpu_id	cpuid
+
+extern solaris_cpu_t    solaris_cpu[];
+
 #define	CPU_CACHE_COHERENCE_SIZE	64
 
 /*
@@ -51,33 +73,50 @@
 } cpu_core_t;
 
 extern cpu_core_t cpu_core[];
+
+extern kmutex_t	cpu_lock;
 #endif /* _KERNEL */
 
 /*
- * DTrace flags.
+ * Flags in the CPU structure.
+ *
+ * These are protected by cpu_lock (except during creation).
+ *
+ * Offlined-CPUs have three stages of being offline:
+ *
+ * CPU_ENABLE indicates that the CPU is participating in I/O interrupts
+ * that can be directed at a number of different CPUs.  If CPU_ENABLE
+ * is off, the CPU will not be given interrupts that can be sent elsewhere,
+ * but will still get interrupts from devices associated with that CPU only,
+ * and from other CPUs.
+ *
+ * CPU_OFFLINE indicates that the dispatcher should not allow any threads
+ * other than interrupt threads to run on that CPU.  A CPU will not have
+ * CPU_OFFLINE set if there are any bound threads (besides interrupts).
+ *
+ * CPU_QUIESCED is set if p_offline was able to completely turn idle the
+ * CPU and it will not have to run interrupt threads.  In this case it'll
+ * stay in the idle loop until CPU_QUIESCED is turned off.
+ *
+ * CPU_FROZEN is used only by CPR to mark CPUs that have been successfully
+ * suspended (in the suspend path), or have yet to be resumed (in the resume
+ * case).
+ *
+ * On some platforms CPUs can be individually powered off.
+ * The following flags are set for powered off CPUs: CPU_QUIESCED,
+ * CPU_OFFLINE, and CPU_POWEROFF.  The following flags are cleared:
+ * CPU_RUNNING, CPU_READY, CPU_EXISTS, and CPU_ENABLE.
  */
-#define	CPU_DTRACE_NOFAULT	0x0001	/* Don't fault */
-#define	CPU_DTRACE_DROP		0x0002	/* Drop this ECB */
-#define	CPU_DTRACE_BADADDR	0x0004	/* DTrace fault: bad address */
-#define	CPU_DTRACE_BADALIGN	0x0008	/* DTrace fault: bad alignment */
-#define	CPU_DTRACE_DIVZERO	0x0010	/* DTrace fault: divide by zero */
-#define	CPU_DTRACE_ILLOP	0x0020	/* DTrace fault: illegal operation */
-#define	CPU_DTRACE_NOSCRATCH	0x0040	/* DTrace fault: out of scratch */
-#define	CPU_DTRACE_KPRIV	0x0080	/* DTrace fault: bad kernel access */
-#define	CPU_DTRACE_UPRIV	0x0100	/* DTrace fault: bad user access */
-#define	CPU_DTRACE_TUPOFLOW	0x0200	/* DTrace fault: tuple stack overflow */
-#if defined(__sparc)
-#define	CPU_DTRACE_FAKERESTORE	0x0400	/* pid provider hint to getreg */
-#endif
-#define	CPU_DTRACE_ENTRY	0x0800	/* pid provider hint to ustack() */
-#define	CPU_DTRACE_BADSTACK	0x1000	/* DTrace fault: bad stack */
-
-#define	CPU_DTRACE_FAULT	(CPU_DTRACE_BADADDR | CPU_DTRACE_BADALIGN | \
-				CPU_DTRACE_DIVZERO | CPU_DTRACE_ILLOP | \
-				CPU_DTRACE_NOSCRATCH | CPU_DTRACE_KPRIV | \
-				CPU_DTRACE_UPRIV | CPU_DTRACE_TUPOFLOW | \
-				CPU_DTRACE_BADSTACK)
-#define	CPU_DTRACE_ERROR	(CPU_DTRACE_FAULT | CPU_DTRACE_DROP)
+#define	CPU_RUNNING	0x001		/* CPU running */
+#define	CPU_READY	0x002		/* CPU ready for cross-calls */
+#define	CPU_QUIESCED	0x004		/* CPU will stay in idle */
+#define	CPU_EXISTS	0x008		/* CPU is configured */
+#define	CPU_ENABLE	0x010		/* CPU enabled for interrupts */
+#define	CPU_OFFLINE	0x020		/* CPU offline via p_online */
+#define	CPU_POWEROFF	0x040		/* CPU is powered off */
+#define	CPU_FROZEN	0x080		/* CPU is frozen via CPR suspend */
+#define	CPU_SPARE	0x100		/* CPU offline available for use */
+#define	CPU_FAULTED	0x200		/* CPU offline diagnosed faulty */
 
 typedef enum {
 	CPU_INIT,

==== //depot/projects/dtrace/src/sys/modules/cyclic_test/Makefile#3 (text+ko) ====

@@ -7,8 +7,8 @@
 		
 #SRCS+=		bus_if.h device_if.h vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../compat/opensolaris			\
-		-I${.CURDIR}/../../contrib/opensolaris/uts/common	\
+CFLAGS+=	-I${.CURDIR}/../../cddl/compat/opensolaris		\
+		-I${.CURDIR}/../../cddl/contrib/opensolaris/uts/common	\
 		-I${.CURDIR}/../..
 
 IGNORE_PRAGMA=	1

==== //depot/projects/dtrace/src/sys/modules/dtrace/dtmalloc/Makefile#2 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		dtmalloc.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/dtrace/Makefile#16 (text+ko) ====

@@ -2,7 +2,7 @@
 
 ARCHDIR=	${MACHINE_ARCH}
 
-.PATH: ${.CURDIR}/../../../contrib/opensolaris/uts/common/dtrace
+.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common/dtrace
 .PATH: ${.CURDIR}/../../../cddl/kern
 .PATH: ${.CURDIR}/../../../cddl/dev/dtrace
 .PATH: ${.CURDIR}/../../../cddl/dev/dtrace/${ARCHDIR}
@@ -29,10 +29,10 @@
 SRCS+=		opt_apic.h
 .endif
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
 		-I${.CURDIR}/../../../cddl/dev/dtrace \
 		-I${.CURDIR}/../../../cddl/dev/dtrace/${ARCHDIR} \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../.. -DDIS_MEM
 
 CFLAGS+=	-DSMP -DDEBUG

==== //depot/projects/dtrace/src/sys/modules/dtrace/fasttrap/Makefile#4 (text+ko) ====

@@ -6,12 +6,12 @@
 SRCS=		fasttrap.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .if ${MACHINE_ARCH} == "amd64" ||  ${MACHINE_ARCH} == "i386"
-CFLAGS+=	-I${.CURDIR}/../../../contrib/opensolaris/uts/intel
+CFLAGS+=	-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/intel
 .endif
 
 CFLAGS+=	-DSMP -DDEBUG

==== //depot/projects/dtrace/src/sys/modules/dtrace/fbt/Makefile#4 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		fbt.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/lockstat/Makefile#2 (text+ko) ====

@@ -5,8 +5,8 @@
 KMOD=		lockstat
 SRCS=		lockstat.c 
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/profile/Makefile#6 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		profile.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/prototype/Makefile#4 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		prototype.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/sdt/Makefile#5 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		sdt.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>

==== //depot/projects/dtrace/src/sys/modules/dtrace/systrace/Makefile#4 (text+ko) ====

@@ -6,8 +6,8 @@
 SRCS=		systrace.c
 SRCS+=		vnode_if.h
 
-CFLAGS+=	-I${.CURDIR}/../../../compat/opensolaris \
-		-I${.CURDIR}/../../../contrib/opensolaris/uts/common \
+CFLAGS+=	-I${.CURDIR}/../../../cddl/compat/opensolaris \
+		-I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \
 		-I${.CURDIR}/../../..
 
 .include <bsd.kmod.mk>


More information about the p4-projects mailing list