Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hwpmc/hwpmc_mod.c
Show First 20 Lines • Show All 2,120 Lines • ▼ Show 20 Lines | case PMC_FN_PROCESS_EXEC: | ||||
pk = (struct pmckern_procexec *) arg; | pk = (struct pmckern_procexec *) arg; | ||||
PMC_EPOCH_ENTER(); | PMC_EPOCH_ENTER(); | ||||
/* Inform owners of SS mode PMCs of the exec event. */ | /* Inform owners of SS mode PMCs of the exec event. */ | ||||
CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) | CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) | ||||
if (po->po_flags & PMC_PO_OWNS_LOGFILE) | if (po->po_flags & PMC_PO_OWNS_LOGFILE) | ||||
pmclog_process_procexec(po, PMC_ID_INVALID, | pmclog_process_procexec(po, PMC_ID_INVALID, | ||||
p->p_pid, pk->pm_entryaddr, fullpath); | p->p_pid, pk->pm_baseaddr, pk->pm_dynaddr, | ||||
fullpath); | |||||
PMC_EPOCH_EXIT(); | PMC_EPOCH_EXIT(); | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
is_using_hwpmcs = p->p_flag & P_HWPMC; | is_using_hwpmcs = p->p_flag & P_HWPMC; | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
if (!is_using_hwpmcs) { | if (!is_using_hwpmcs) { | ||||
if (freepath) | if (freepath) | ||||
Show All 27 Lines | case PMC_FN_PROCESS_EXEC: | ||||
* they had system sampling PMCs active. | * they had system sampling PMCs active. | ||||
*/ | */ | ||||
for (ri = 0; ri < md->pmd_npmc; ri++) | for (ri = 0; ri < md->pmd_npmc; ri++) | ||||
if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { | if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { | ||||
po = pm->pm_owner; | po = pm->pm_owner; | ||||
if (po->po_sscount == 0 && | if (po->po_sscount == 0 && | ||||
po->po_flags & PMC_PO_OWNS_LOGFILE) | po->po_flags & PMC_PO_OWNS_LOGFILE) | ||||
pmclog_process_procexec(po, pm->pm_id, | pmclog_process_procexec(po, pm->pm_id, | ||||
p->p_pid, pk->pm_entryaddr, | p->p_pid, pk->pm_baseaddr, | ||||
fullpath); | pk->pm_dynaddr, fullpath); | ||||
} | } | ||||
if (freepath) | if (freepath) | ||||
free(freepath, M_TEMP); | free(freepath, M_TEMP); | ||||
PMCDBG4(PRC,EXC,1, "exec proc=%p (%d, %s) cred-changed=%d", | PMCDBG4(PRC,EXC,1, "exec proc=%p (%d, %s) cred-changed=%d", | ||||
p, p->p_pid, p->p_comm, pk->pm_credentialschanged); | p, p->p_pid, p->p_comm, pk->pm_credentialschanged); | ||||
▲ Show 20 Lines • Show All 3,803 Lines • Show Last 20 Lines |