Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/pmc.h
Show First 20 Lines • Show All 993 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
extern struct pmc_cpu **pmc_pcpu; | extern struct pmc_cpu **pmc_pcpu; | ||||
/* driver statistics */ | /* driver statistics */ | ||||
extern struct pmc_op_getdriverstats pmc_stats; | extern struct pmc_op_getdriverstats pmc_stats; | ||||
#if defined(HWPMC_DEBUG) | #if defined(HWPMC_DEBUG) | ||||
#include <sys/ktr.h> | |||||
/* debug flags, major flag groups */ | /* debug flags, major flag groups */ | ||||
struct pmc_debugflags { | struct pmc_debugflags { | ||||
int pdb_CPU; | int pdb_CPU; | ||||
int pdb_CSW; | int pdb_CSW; | ||||
int pdb_LOG; | int pdb_LOG; | ||||
int pdb_MDP; | int pdb_MDP; | ||||
int pdb_MOD; | int pdb_MOD; | ||||
int pdb_OWN; | int pdb_OWN; | ||||
int pdb_PMC; | int pdb_PMC; | ||||
int pdb_PRC; | int pdb_PRC; | ||||
int pdb_SAM; | int pdb_SAM; | ||||
}; | }; | ||||
extern struct pmc_debugflags pmc_debugflags; | extern struct pmc_debugflags pmc_debugflags; | ||||
#define KTR_PMC KTR_SUBSYS | |||||
#define PMC_DEBUG_STRSIZE 128 | #define PMC_DEBUG_STRSIZE 128 | ||||
#define PMC_DEBUG_DEFAULT_FLAGS { 0, 0, 0, 0, 0, 0, 0, 0 } | #define PMC_DEBUG_DEFAULT_FLAGS { 0, 0, 0, 0, 0, 0, 0, 0 } | ||||
#define PMCDBG(M,N,L,F,...) do { \ | #define PMCDBG0(M, N, L, F) do { \ | ||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | ||||
printf(#M ":" #N ":" #L ": " F "\n", __VA_ARGS__); \ | CTR0(KTR_PMC, #M ":" #N ":" #L ": " F); \ | ||||
} while (0) | } while (0) | ||||
#define PMCDBG1(M, N, L, F, p1) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR1(KTR_PMC, #M ":" #N ":" #L ": " F, p1); \ | |||||
} while (0) | |||||
#define PMCDBG2(M, N, L, F, p1, p2) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR2(KTR_PMC, #M ":" #N ":" #L ": " F, p1, p2); \ | |||||
} while (0) | |||||
#define PMCDBG3(M, N, L, F, p1, p2, p3) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR3(KTR_PMC, #M ":" #N ":" #L ": " F, p1, p2, p3); \ | |||||
} while (0) | |||||
#define PMCDBG4(M, N, L, F, p1, p2, p3, p4) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR4(KTR_PMC, #M ":" #N ":" #L ": " F, p1, p2, p3, p4);\ | |||||
} while (0) | |||||
#define PMCDBG5(M, N, L, F, p1, p2, p3, p4, p5) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR5(KTR_PMC, #M ":" #N ":" #L ": " F, p1, p2, p3, p4, \ | |||||
p5); \ | |||||
} while (0) | |||||
#define PMCDBG6(M, N, L, F, p1, p2, p3, p4, p5, p6) do { \ | |||||
if (pmc_debugflags.pdb_ ## M & (1 << PMC_DEBUG_MIN_ ## N)) \ | |||||
CTR6(KTR_PMC, #M ":" #N ":" #L ": " F, p1, p2, p3, p4, \ | |||||
p5, p6); \ | |||||
} while (0) | |||||
/* Major numbers */ | /* Major numbers */ | ||||
#define PMC_DEBUG_MAJ_CPU 0 /* cpu switches */ | #define PMC_DEBUG_MAJ_CPU 0 /* cpu switches */ | ||||
#define PMC_DEBUG_MAJ_CSW 1 /* context switches */ | #define PMC_DEBUG_MAJ_CSW 1 /* context switches */ | ||||
#define PMC_DEBUG_MAJ_LOG 2 /* logging */ | #define PMC_DEBUG_MAJ_LOG 2 /* logging */ | ||||
#define PMC_DEBUG_MAJ_MDP 3 /* machine dependent */ | #define PMC_DEBUG_MAJ_MDP 3 /* machine dependent */ | ||||
#define PMC_DEBUG_MAJ_MOD 4 /* misc module infrastructure */ | #define PMC_DEBUG_MAJ_MOD 4 /* misc module infrastructure */ | ||||
#define PMC_DEBUG_MAJ_OWN 5 /* owner */ | #define PMC_DEBUG_MAJ_OWN 5 /* owner */ | ||||
#define PMC_DEBUG_MAJ_PMC 6 /* pmc management */ | #define PMC_DEBUG_MAJ_PMC 6 /* pmc management */ | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
/* LOG */ | /* LOG */ | ||||
#define PMC_DEBUG_MIN_GTB 8 /* get buf */ | #define PMC_DEBUG_MIN_GTB 8 /* get buf */ | ||||
#define PMC_DEBUG_MIN_SIO 9 /* schedule i/o */ | #define PMC_DEBUG_MIN_SIO 9 /* schedule i/o */ | ||||
#define PMC_DEBUG_MIN_FLS 10 /* flush */ | #define PMC_DEBUG_MIN_FLS 10 /* flush */ | ||||
#define PMC_DEBUG_MIN_SAM 11 /* sample */ | #define PMC_DEBUG_MIN_SAM 11 /* sample */ | ||||
#define PMC_DEBUG_MIN_CLO 12 /* close */ | #define PMC_DEBUG_MIN_CLO 12 /* close */ | ||||
#else | #else | ||||
#define PMCDBG(M,N,L,F,...) /* nothing */ | #define PMCDBG0(M, N, L, F) /* nothing */ | ||||
#define PMCDBG1(M, N, L, F, p1) | |||||
#define PMCDBG2(M, N, L, F, p1, p2) | |||||
#define PMCDBG3(M, N, L, F, p1, p2, p3) | |||||
#define PMCDBG4(M, N, L, F, p1, p2, p3, p4) | |||||
#define PMCDBG5(M, N, L, F, p1, p2, p3, p4, p5) | |||||
#define PMCDBG6(M, N, L, F, p1, p2, p3, p4, p5, p6) | |||||
#endif | #endif | ||||
/* declare a dedicated memory pool */ | /* declare a dedicated memory pool */ | ||||
MALLOC_DECLARE(M_PMC); | MALLOC_DECLARE(M_PMC); | ||||
/* | /* | ||||
* Functions | * Functions | ||||
*/ | */ | ||||
Show All 14 Lines |