Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jan 2008 23:05:05 GMT
From:      John Birrell <jb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 134034 for review
Message-ID:  <200801242305.m0ON55Qo025650@repoman.freebsd.org>

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

Change 134034 by jb@jb_freebsd1 on 2008/01/24 23:04:38

	For this stage of the DTrace port, let's leave out the lock inspection
	altogether. Change the #ifdefs to make the code look less hack-ish
	and more solaris-ish because that's what it is. :-D

Affected files ...

.. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#24 edit

Differences ...

==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#24 (text) ====

@@ -3031,7 +3031,7 @@
 	volatile uintptr_t *illval = &cpu_core[curcpu].cpuc_dtrace_illval;
 	dtrace_vstate_t *vstate = &state->dts_vstate;
 
-#ifdef DOODAD
+#if defined(sun)
 	union {
 		mutex_impl_t mi;
 		uint64_t mx;
@@ -3048,9 +3048,8 @@
 		regs[rd] = (dtrace_gethrtime() * 2416 + 374441) % 1771875;
 		break;
 
+#if defined(sun)
 	case DIF_SUBR_MUTEX_OWNED:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (kmutex_t),
 		    mstate, vstate)) {
@@ -3063,12 +3062,9 @@
 			regs[rd] = MUTEX_OWNER(&m.mi) != MUTEX_NO_OWNER;
 		else
 			regs[rd] = LOCK_HELD(&m.mi.m_spin.m_spinlock);
-#endif
 		break;
 
 	case DIF_SUBR_MUTEX_OWNER:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (kmutex_t),
 		    mstate, vstate)) {
@@ -3082,12 +3078,9 @@
 			regs[rd] = (uintptr_t)MUTEX_OWNER(&m.mi);
 		else
 			regs[rd] = 0;
-#endif
 		break;
 
 	case DIF_SUBR_MUTEX_TYPE_ADAPTIVE:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (kmutex_t),
 		    mstate, vstate)) {
@@ -3097,12 +3090,9 @@
 
 		m.mx = dtrace_load64(tupregs[0].dttk_value);
 		regs[rd] = MUTEX_TYPE_ADAPTIVE(&m.mi);
-#endif
 		break;
 
 	case DIF_SUBR_MUTEX_TYPE_SPIN:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (kmutex_t),
 		    mstate, vstate)) {
@@ -3112,12 +3102,9 @@
 
 		m.mx = dtrace_load64(tupregs[0].dttk_value);
 		regs[rd] = MUTEX_TYPE_SPIN(&m.mi);
-#endif
 		break;
 
 	case DIF_SUBR_RW_READ_HELD: {
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		uintptr_t tmp;
 
@@ -3129,13 +3116,10 @@
 
 		r.rw = dtrace_loadptr(tupregs[0].dttk_value);
 		regs[rd] = _RW_READ_HELD(&r.ri, tmp);
-#endif
 		break;
 	}
 
 	case DIF_SUBR_RW_WRITE_HELD:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (krwlock_t),
 		    mstate, vstate)) {
@@ -3145,12 +3129,9 @@
 
 		r.rw = dtrace_loadptr(tupregs[0].dttk_value);
 		regs[rd] = _RW_WRITE_HELD(&r.ri);
-#endif
 		break;
 
 	case DIF_SUBR_RW_ISWRITER:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 	union {
 		if (!dtrace_canload(tupregs[0].dttk_value, sizeof (krwlock_t),
 		    mstate, vstate)) {
@@ -3160,8 +3141,8 @@
 
 		r.rw = dtrace_loadptr(tupregs[0].dttk_value);
 		regs[rd] = _RW_ISWRITER(&r.ri);
+		break;
 #endif
-		break;
 
 	case DIF_SUBR_BCOPY: {
 		/*
@@ -3271,10 +3252,9 @@
 		break;
 	}
 
+#if defined(sun)
 	case DIF_SUBR_MSGSIZE:
 	case DIF_SUBR_MSGDSIZE: {
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 		uintptr_t baddr = tupregs[0].dttk_value, daddr;
 		uintptr_t wptr, rptr;
 		size_t count = 0;
@@ -3328,9 +3308,9 @@
 		if (!(*flags & CPU_DTRACE_FAULT))
 			regs[rd] = count;
 
-#endif
 		break;
 	}
+#endif
 
 	case DIF_SUBR_PROGENYOF: {
 		pid_t pid = tupregs[0].dttk_value;
@@ -3750,31 +3730,24 @@
 		break;
 	}
 
+#if defined(sun)
 	case DIF_SUBR_GETMAJOR:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 #ifdef _LP64
 		regs[rd] = (tupregs[0].dttk_value >> NBITSMINOR64) & MAXMAJ64;
 #else
 		regs[rd] = (tupregs[0].dttk_value >> NBITSMINOR) & MAXMAJ;
 #endif
-#endif
 		break;
 
 	case DIF_SUBR_GETMINOR:
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 #ifdef _LP64
 		regs[rd] = tupregs[0].dttk_value & MAXMIN64;
 #else
 		regs[rd] = tupregs[0].dttk_value & MAXMIN;
 #endif
-#endif
 		break;
 
 	case DIF_SUBR_DDI_PATHNAME: {
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 		/*
 		 * This one is a galactic mess.  We are going to roughly
 		 * emulate ddi_pathname(), but it's made more complicated
@@ -3963,10 +3936,10 @@
 			regs[rd] = (uintptr_t)end;
 			mstate->dtms_scratch_ptr += size;
 		}
-#endif
 
 		break;
 	}
+#endif
 
 	case DIF_SUBR_STRJOIN: {
 		char *d = (char *)mstate->dtms_scratch_ptr;
@@ -5766,6 +5739,7 @@
 			    probe->dtpr_id, probe->dtpr_arg) == 0)
 				continue;
 
+#if defined(sun)
 			/*
 			 * This is more subtle than it looks. We have to be
 			 * absolutely certain that CRED() isn't going to
@@ -5778,8 +5752,6 @@
 			 * profile case, the check above will ensure that
 			 * we're examining a user context.
 			 */
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 			if (ecb->dte_cond & DTRACE_COND_OWNER) {
 				cred_t *cr;
 				cred_t *s_cr =
@@ -5799,9 +5771,7 @@
 				    (proc->p_flag & SNOCD))
 					continue;
 			}
-#endif
 
-#if defined(sun)
 			if (ecb->dte_cond & DTRACE_COND_ZONEOWNER) {
 				cred_t *cr;
 				cred_t *s_cr =
@@ -12570,8 +12540,7 @@
 			 * we can do destructive things to processes which
 			 * have altered credentials.
 			 */
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
+#if defined(sun)
 			if (priv_isequalset(priv_getset(cr, PRIV_EFFECTIVE),
 			    cr->cr_zone->zone_privset)) {
 				state->dts_cred.dcr_action |=
@@ -12613,13 +12582,12 @@
 				state->dts_cred.dcr_action |=
 				    DTRACE_CRA_PROC_DESTRUCTIVE_ALLZONE;
 
+#if defined(sun)
 			/*
 			 * If we have all privs in whatever zone this is,
 			 * we can do destructive things to processes which
 			 * have altered credentials.
 			 */
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 			if (priv_isequalset(priv_getset(cr, PRIV_EFFECTIVE),
 			    cr->cr_zone->zone_privset)) {
 				state->dts_cred.dcr_action |=



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