When a committed group cannot follow its target through a fork, hwpmc
logged a PMCDETACH record for the child. That is wrong: the edge never
attached, so there is nothing to detach. A consumer cannot tell this
apart from a real detach.
Add PMCLOG_TYPE_PMCGROUPINHERITMISS, which names the group and the child
that could not inherit it, and emit it from that path instead.
Log the stable user handle pm_handle instead of pm_id in the records
that name a PMC. For a PMC with a hardware row the two are equal, which
pmc_allocate sets, so the logged value does not change. A deferred group
member has no row yet, and only pm_handle identifies it.
Add pmclog_process_map_in_nowakeup and pmclog_process_map_out_nowakeup.
These queue a mapping record without waking the log thread, for a caller
that holds a spin lock.
Sponsored by: AMD