e6f4757735
in the parent, we will inherit the pmcids but cannot execute any operations on them in the child. The reason for this is that pmc_find_pmc() only tries to find the current process on the owners hash list, but given the child does not own the attachment, we cannot find it. Thus, in case the initial lookup fails, try to find the pmc_process state affiliated with the child process, lookup the pmc from there using the row index, and get the owner process from that pmc. Then continue as normal and lookup the pmc context of the owner (process). This allows us to call, e.g., pmc_start() in the child process before we start the work there, but to collect the accumulated results later in the parent. Sponsored by: DARPA,AFRL Obtained from: L41 Tested by: rwatson, L41 MFC after: 4 weeks Reviewed by: gnn Differential Revision: https://reviews.freebsd.org/D2052 |
||
---|---|---|
.. | ||
hwpmc_amd.c | ||
hwpmc_amd.h | ||
hwpmc_arm64_md.c | ||
hwpmc_arm64.c | ||
hwpmc_arm64.h | ||
hwpmc_arm.c | ||
hwpmc_armv7.c | ||
hwpmc_armv7.h | ||
hwpmc_core.c | ||
hwpmc_core.h | ||
hwpmc_e500.c | ||
hwpmc_intel.c | ||
hwpmc_logging.c | ||
hwpmc_mips24k.c | ||
hwpmc_mips74k.c | ||
hwpmc_mips.c | ||
hwpmc_mod.c | ||
hwpmc_mpc7xxx.c | ||
hwpmc_octeon.c | ||
hwpmc_pentium.c | ||
hwpmc_pentium.h | ||
hwpmc_piv.c | ||
hwpmc_piv.h | ||
hwpmc_powerpc.c | ||
hwpmc_powerpc.h | ||
hwpmc_ppc970.c | ||
hwpmc_ppro.c | ||
hwpmc_ppro.h | ||
hwpmc_soft.c | ||
hwpmc_soft.h | ||
hwpmc_sparc64.c | ||
hwpmc_tsc.c | ||
hwpmc_tsc.h | ||
hwpmc_uncore.c | ||
hwpmc_uncore.h | ||
hwpmc_x86.c | ||
hwpmc_xscale.c | ||
hwpmc_xscale.h | ||
pmc_events.h |