Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hwpmc/hwpmc_amd.c
Show First 20 Lines • Show All 594 Lines • ▼ Show 20 Lines | amd_allocate_pmc(int cpu, int ri, struct pmc *pm, | ||||
if((ri >= 0 && ri < 6) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_CORE)) | if((ri >= 0 && ri < 6) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_CORE)) | ||||
return EINVAL; | return EINVAL; | ||||
if((ri >= 6 && ri < 12) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_L3_CACHE)) | if((ri >= 6 && ri < 12) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_L3_CACHE)) | ||||
return EINVAL; | return EINVAL; | ||||
if((ri >= 12 && ri < 16) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_DATA_FABRIC)) | if((ri >= 12 && ri < 16) && !(a->pm_md.pm_amd.pm_amd_sub_class == PMC_AMD_SUB_CLASS_DATA_FABRIC)) | ||||
return EINVAL; | return EINVAL; | ||||
if ((pd->pd_caps & caps) != caps) | |||||
return EPERM; | |||||
if (strlen(pmc_cpuid) != 0) { | if (strlen(pmc_cpuid) != 0) { | ||||
pm->pm_md.pm_amd.pm_amd_evsel = | pm->pm_md.pm_amd.pm_amd_evsel = | ||||
a->pm_md.pm_amd.pm_amd_config; | a->pm_md.pm_amd.pm_amd_config; | ||||
PMCDBG2(MDP,ALL,2,"amd-allocate ri=%d -> config=0x%x", ri, a->pm_md.pm_amd.pm_amd_config); | PMCDBG2(MDP,ALL,2,"amd-allocate ri=%d -> config=0x%x", ri, a->pm_md.pm_amd.pm_amd_config); | ||||
return (0); | return (0); | ||||
} | } | ||||
pe = a->pm_ev; | pe = a->pm_ev; | ||||
▲ Show 20 Lines • Show All 626 Lines • Show Last 20 Lines |