PERFORCE change 134034 for review
John Birrell
jb at FreeBSD.org
Thu Jan 24 15:05:06 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=134034
Change 134034 by jb at 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 |=
More information about the p4-projects
mailing list