svn commit: r282641 - in head/sys: conf dev/hwpmc sys
John Baldwin
jhb at FreeBSD.org
Fri May 8 15:57:26 UTC 2015
Author: jhb
Date: Fri May 8 15:57:23 2015
New Revision: 282641
URL: https://svnweb.freebsd.org/changeset/base/282641
Log:
Move hwpmc(4) debugging code under a new HWPMC_DEBUG option instead of
the broader DEBUG option.
Reviewed by: emaste
MFC after: 2 weeks
Sponsored by: Norse Corp, Inc.
Modified:
head/sys/conf/NOTES
head/sys/conf/options
head/sys/dev/hwpmc/hwpmc_amd.c
head/sys/dev/hwpmc/hwpmc_logging.c
head/sys/dev/hwpmc/hwpmc_mod.c
head/sys/sys/pmc.h
Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/conf/NOTES Fri May 8 15:57:23 2015 (r282641)
@@ -576,6 +576,7 @@ options STACK
# please see hwpmc(4).
device hwpmc # Driver (also a loadable module)
+options HWPMC_DEBUG
options HWPMC_HOOKS # Other necessary kernel hooks
Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/conf/options Fri May 8 15:57:23 2015 (r282641)
@@ -861,6 +861,7 @@ DCONS_FORCE_CONSOLE opt_dcons.h
DCONS_FORCE_GDB opt_dcons.h
# HWPMC options
+HWPMC_DEBUG opt_global.h
HWPMC_HOOKS
HWPMC_MIPS_BACKTRACE opt_hwpmc_hooks.h
Modified: head/sys/dev/hwpmc/hwpmc_amd.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_amd.c Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/dev/hwpmc/hwpmc_amd.c Fri May 8 15:57:23 2015 (r282641)
@@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$");
#include <machine/md_var.h>
#include <machine/specialreg.h>
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
enum pmc_class amd_pmc_class;
#endif
@@ -284,7 +284,7 @@ amd_read_pmc(int cpu, int ri, pmc_value_
PMCDBG(MDP,REA,1,"amd-read id=%d class=%d", ri, pd->pm_descr.pd_class);
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
KASSERT(pd->pm_descr.pd_class == amd_pmc_class,
("[amd,%d] unknown PMC class (%d)", __LINE__,
pd->pm_descr.pd_class));
@@ -329,7 +329,7 @@ amd_write_pmc(int cpu, int ri, pmc_value
mode = PMC_TO_MODE(pm);
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
KASSERT(pd->pm_descr.pd_class == amd_pmc_class,
("[amd,%d] unknown PMC class (%d)", __LINE__,
pd->pm_descr.pd_class));
@@ -515,7 +515,7 @@ amd_allocate_pmc(int cpu, int ri, struct
static int
amd_release_pmc(int cpu, int ri, struct pmc *pmc)
{
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
const struct amd_descr *pd;
#endif
struct pmc_hw *phw;
@@ -532,7 +532,7 @@ amd_release_pmc(int cpu, int ri, struct
KASSERT(phw->phw_pmc == NULL,
("[amd,%d] PHW pmc %p non-NULL", __LINE__, phw->phw_pmc));
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
pd = &amd_pmcdesc[ri];
if (pd->pm_descr.pd_class == amd_pmc_class)
KASSERT(AMD_PMC_IS_STOPPED(pd->pm_evsel),
@@ -835,7 +835,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c
amd_pcpu[cpu] = NULL;
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
for (i = 0; i < AMD_NPMCS; i++) {
KASSERT(pac->pc_amdpmcs[i].phw_pmc == NULL,
("[amd,%d] CPU%d/PMC%d in use", __LINE__, cpu, i));
@@ -912,7 +912,7 @@ pmc_amd_initialize(void)
return NULL;
}
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
amd_pmc_class = class;
#endif
Modified: head/sys/dev/hwpmc/hwpmc_logging.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_logging.c Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/dev/hwpmc/hwpmc_logging.c Fri May 8 15:57:23 2015 (r282641)
@@ -213,7 +213,7 @@ pmclog_get_buffer(struct pmc_owner *po)
PMCDBG(LOG,GTB,1, "po=%p plb=%p", po, plb);
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
if (plb)
KASSERT(plb->plb_ptr == plb->plb_base &&
plb->plb_base < plb->plb_fence,
Modified: head/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_mod.c Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/dev/hwpmc/hwpmc_mod.c Fri May 8 15:57:23 2015 (r282641)
@@ -173,7 +173,7 @@ static struct pmc_classdep **pmc_rowinde
* Prototypes
*/
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
static int pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS);
static int pmc_debugflags_parse(char *newstr, char *fence);
#endif
@@ -238,7 +238,7 @@ static int pmc_callchaindepth = PMC_CALL
SYSCTL_INT(_kern_hwpmc, OID_AUTO, callchaindepth, CTLFLAG_RDTUN,
&pmc_callchaindepth, 0, "depth of call chain records");
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
struct pmc_debugflags pmc_debugflags = PMC_DEBUG_DEFAULT_FLAGS;
char pmc_debugstr[PMC_DEBUG_STRSIZE];
TUNABLE_STR(PMC_SYSCTL_NAME_PREFIX "debugflags", pmc_debugstr,
@@ -337,7 +337,7 @@ static moduledata_t pmc_mod = {
DECLARE_MODULE(pmc, pmc_mod, SI_SUB_SMP, SI_ORDER_ANY);
MODULE_VERSION(pmc, PMC_VERSION);
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
enum pmc_dbgparse_state {
PMCDS_WS, /* in whitespace */
PMCDS_MAJOR, /* seen a major keyword */
@@ -816,7 +816,7 @@ pmc_link_target_process(struct pmc *pm,
PMCDBG(PRC,TLK,1, "link-target pmc=%p ri=%d pmc-process=%p",
pm, ri, pp);
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
LIST_FOREACH(pt, &pm->pm_targets, pt_next)
if (pt->pt_process == pp)
KASSERT(0, ("[pmc,%d] pp %p already in pmc %p targets",
@@ -1784,7 +1784,7 @@ pmc_log_all_process_mappings(struct pmc_
*/
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
const char *pmc_hooknames[] = {
/* these strings correspond to PMC_FN_* in <sys/pmckern.h> */
"",
@@ -2002,7 +2002,7 @@ pmc_hook_handler(struct thread *td, int
break;
default:
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
KASSERT(0, ("[pmc,%d] unknown hook %d\n", __LINE__, function));
#endif
break;
@@ -2185,7 +2185,7 @@ pmc_destroy_pmc_descriptor(struct pmc *p
static void
pmc_wait_for_pmc_idle(struct pmc *pm)
{
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
volatile int maxloop;
maxloop = 100 * pmc_cpu_max();
@@ -2195,7 +2195,7 @@ pmc_wait_for_pmc_idle(struct pmc *pm)
* comes down to zero.
*/
while (atomic_load_acq_32(&pm->pm_runcount) > 0) {
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
maxloop--;
KASSERT(maxloop > 0,
("[pmc,%d] (ri%d, rc%d) waiting too long for "
@@ -2759,7 +2759,7 @@ pmc_stop(struct pmc *pm)
}
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
static const char *pmc_op_to_name[] = {
#undef __PMC_OP
#define __PMC_OP(N, D) #N ,
@@ -3798,7 +3798,7 @@ pmc_syscall_handler(struct thread *td, v
pprw = (struct pmc_op_pmcrw *) arg;
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
if (prw.pm_flags & PMC_F_NEWVALUE)
PMCDBG(PMC,OPS,2, "rw id=%d new %jx -> old %jx",
ri, prw.pm_value, oldvalue);
@@ -4712,7 +4712,7 @@ pmc_initialize(void)
md = NULL;
error = 0;
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
/* parse debug flags first */
if (TUNABLE_STR_FETCH(PMC_SYSCTL_NAME_PREFIX "debugflags",
pmc_debugstr, sizeof(pmc_debugstr)))
@@ -4933,7 +4933,7 @@ pmc_cleanup(void)
struct pmc_ownerhash *ph;
struct pmc_owner *po, *tmp;
struct pmc_binding pb;
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
struct pmc_processhash *prh;
#endif
@@ -4985,7 +4985,7 @@ pmc_cleanup(void)
mtx_destroy(&pmc_processhash_mtx);
if (pmc_processhash) {
-#ifdef DEBUG
+#ifdef HWPMC_DEBUG
struct pmc_process *pp;
PMCDBG(MOD,INI,3, "%s", "destroy process hash");
Modified: head/sys/sys/pmc.h
==============================================================================
--- head/sys/sys/pmc.h Fri May 8 15:23:21 2015 (r282640)
+++ head/sys/sys/pmc.h Fri May 8 15:57:23 2015 (r282641)
@@ -998,7 +998,7 @@ extern struct pmc_cpu **pmc_pcpu;
/* driver statistics */
extern struct pmc_op_getdriverstats pmc_stats;
-#if defined(DEBUG)
+#if defined(HWPMC_DEBUG)
/* debug flags, major flag groups */
struct pmc_debugflags {
More information about the svn-src-head
mailing list