aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hwpmc/hwpmc_mod.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hwpmc/hwpmc_mod.c')
-rw-r--r--sys/dev/hwpmc/hwpmc_mod.c54
1 files changed, 20 insertions, 34 deletions
diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c
index 1fad25c55702..f94f645b2e39 100644
--- a/sys/dev/hwpmc/hwpmc_mod.c
+++ b/sys/dev/hwpmc/hwpmc_mod.c
@@ -36,6 +36,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/domainset.h>
#include <sys/eventhandler.h>
#include <sys/gtaskqueue.h>
#include <sys/jail.h>
@@ -78,14 +79,6 @@ __FBSDID("$FreeBSD$");
#include "hwpmc_soft.h"
-#ifdef NUMA
-#define NDOMAINS vm_ndomains
-#else
-#define NDOMAINS 1
-#define malloc_domain(size, type, domain, flags) malloc((size), (type), (flags))
-#define free_domain(addr, type) free(addr, type)
-#endif
-
#define PMC_EPOCH_ENTER() struct epoch_tracker pmc_et; epoch_enter_preempt(global_epoch_preempt, &pmc_et)
#define PMC_EPOCH_EXIT() epoch_exit_preempt(global_epoch_preempt, &pmc_et)
@@ -5643,15 +5636,16 @@ pmc_initialize(void)
continue;
pc = pcpu_find(cpu);
domain = pc->pc_domain;
- sb = malloc_domain(sizeof(struct pmc_samplebuffer) +
- pmc_nsamples * sizeof(struct pmc_sample), M_PMC, domain,
- M_WAITOK|M_ZERO);
+ sb = malloc_domainset(sizeof(struct pmc_samplebuffer) +
+ pmc_nsamples * sizeof(struct pmc_sample), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
KASSERT(pmc_pcpu[cpu] != NULL,
("[pmc,%d] cpu=%d Null per-cpu data", __LINE__, cpu));
- sb->ps_callchains = malloc_domain(pmc_callchaindepth * pmc_nsamples *
- sizeof(uintptr_t), M_PMC, domain, M_WAITOK|M_ZERO);
+ sb->ps_callchains = malloc_domainset(pmc_callchaindepth *
+ pmc_nsamples * sizeof(uintptr_t), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
for (n = 0, ps = sb->ps_samples; n < pmc_nsamples; n++, ps++)
ps->ps_pc = sb->ps_callchains +
@@ -5659,35 +5653,27 @@ pmc_initialize(void)
pmc_pcpu[cpu]->pc_sb[PMC_HR] = sb;
- sb = malloc_domain(sizeof(struct pmc_samplebuffer) +
- pmc_nsamples * sizeof(struct pmc_sample), M_PMC, domain,
- M_WAITOK|M_ZERO);
-
- KASSERT(pmc_pcpu[cpu] != NULL,
- ("[pmc,%d] cpu=%d Null per-cpu data", __LINE__, cpu));
-
- sb->ps_callchains = malloc_domain(pmc_callchaindepth * pmc_nsamples *
- sizeof(uintptr_t), M_PMC, domain, M_WAITOK|M_ZERO);
+ sb = malloc_domainset(sizeof(struct pmc_samplebuffer) +
+ pmc_nsamples * sizeof(struct pmc_sample), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
+ sb->ps_callchains = malloc_domainset(pmc_callchaindepth *
+ pmc_nsamples * sizeof(uintptr_t), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
for (n = 0, ps = sb->ps_samples; n < pmc_nsamples; n++, ps++)
ps->ps_pc = sb->ps_callchains +
(n * pmc_callchaindepth);
pmc_pcpu[cpu]->pc_sb[PMC_SR] = sb;
- sb = malloc_domain(sizeof(struct pmc_samplebuffer) +
- pmc_nsamples * sizeof(struct pmc_sample), M_PMC, domain,
- M_WAITOK|M_ZERO);
-
- KASSERT(pmc_pcpu[cpu] != NULL,
- ("[pmc,%d] cpu=%d Null per-cpu data", __LINE__, cpu));
-
- sb->ps_callchains = malloc_domain(pmc_callchaindepth * pmc_nsamples *
- sizeof(uintptr_t), M_PMC, domain, M_WAITOK|M_ZERO);
-
+ sb = malloc_domainset(sizeof(struct pmc_samplebuffer) +
+ pmc_nsamples * sizeof(struct pmc_sample), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
+ sb->ps_callchains = malloc_domainset(pmc_callchaindepth *
+ pmc_nsamples * sizeof(uintptr_t), M_PMC,
+ DOMAINSET_PREF(domain), M_WAITOK | M_ZERO);
for (n = 0, ps = sb->ps_samples; n < pmc_nsamples; n++, ps++)
- ps->ps_pc = sb->ps_callchains +
- (n * pmc_callchaindepth);
+ ps->ps_pc = sb->ps_callchains + n * pmc_callchaindepth;
pmc_pcpu[cpu]->pc_sb[PMC_UR] = sb;
}