Page MenuHomeFreeBSD

hwpmc: add a group-inherit-miss log record
DraftPublic

Authored by afscoelho_gmail.com on Thu, Sep 3, 9:30 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Sep 4, 10:03 PM
Unknown Object (File)
Fri, Sep 4, 11:44 AM
Unknown Object (File)
Fri, Sep 4, 11:19 AM
Unknown Object (File)
Fri, Sep 4, 10:33 AM
Unknown Object (File)
Fri, Sep 4, 7:34 AM
Unknown Object (File)
Fri, Sep 4, 6:23 AM
Unknown Object (File)
Fri, Sep 4, 12:54 AM
Unknown Object (File)
Fri, Sep 4, 12:21 AM
Subscribers
This is a draft revision that has not yet been submitted for review.

Details

Summary

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

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 76442
Build 73325: arc lint + arc unit