Revert the approach for skipping lockstat_probe_func call when doing
lock_success/lock_failure, introduced in r228424, by directly skipping in dtrace_probe. This mainly helps in avoiding namespace pollution and thus lockstat.h dependency by systm.h. As an added bonus, this also helps in MFC case. Reviewed by: avg MFC after: 3 months (or never) X-MFC: r228424
This commit is contained in:
parent
cc1ff620b9
commit
77befd1d23
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=228448
@ -5877,6 +5877,9 @@ dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
|
||||
volatile uint16_t *flags;
|
||||
hrtime_t now;
|
||||
|
||||
if (panicstr != NULL)
|
||||
return;
|
||||
|
||||
#if defined(sun)
|
||||
/*
|
||||
* Kick out immediately if this CPU is still being born (in which case
|
||||
|
@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include "opt_mac.h"
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/priv.h>
|
||||
#include <sys/sdt.h>
|
||||
|
@ -185,24 +185,17 @@ extern uint64_t lockstat_nsecs(void);
|
||||
#define LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(probe, lp, c, wt, f, l) do { \
|
||||
uint32_t id; \
|
||||
\
|
||||
if (!SCHEDULER_STOPPED()) { \
|
||||
lock_profile_obtain_lock_success(&(lp)->lock_object, c, wt, \
|
||||
f, l); \
|
||||
if ((id = lockstat_probemap[(probe)])) \
|
||||
(*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, \
|
||||
0, 0); \
|
||||
} \
|
||||
lock_profile_obtain_lock_success(&(lp)->lock_object, c, wt, f, l); \
|
||||
if ((id = lockstat_probemap[(probe)])) \
|
||||
(*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, 0, 0); \
|
||||
} while (0)
|
||||
|
||||
#define LOCKSTAT_PROFILE_RELEASE_LOCK(probe, lp) do { \
|
||||
uint32_t id; \
|
||||
\
|
||||
if (!SCHEDULER_STOPPED()) { \
|
||||
lock_profile_release_lock(&(lp)->lock_object); \
|
||||
if ((id = lockstat_probemap[(probe)])) \
|
||||
(*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, \
|
||||
0, 0); \
|
||||
} \
|
||||
lock_profile_release_lock(&(lp)->lock_object); \
|
||||
if ((id = lockstat_probemap[(probe)])) \
|
||||
(*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, 0, 0); \
|
||||
} while (0)
|
||||
|
||||
#else /* !KDTRACE_HOOKS */
|
||||
|
Loading…
Reference in New Issue
Block a user