diff options
Diffstat (limited to 'lib/libpmc')
-rw-r--r-- | lib/libpmc/pmclog.c | 4 | ||||
-rw-r--r-- | lib/libpmc/pmclog.h | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/libpmc/pmclog.c b/lib/libpmc/pmclog.c index 8620a0c8789d2..dd91a68d864fc 100644 --- a/lib/libpmc/pmclog.c +++ b/lib/libpmc/pmclog.c @@ -326,8 +326,10 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len, switch (ev->pl_type = PMCLOG_HEADER_TO_TYPE(h)) { case PMCLOG_TYPE_CALLCHAIN: PMCLOG_READ32(le,ev->pl_u.pl_cc.pl_pid); + PMCLOG_READ32(le,ev->pl_u.pl_cc.pl_tid); PMCLOG_READ32(le,ev->pl_u.pl_cc.pl_pmcid); PMCLOG_READ32(le,ev->pl_u.pl_cc.pl_cpuflags); + PMCLOG_READ32(le,ev->pl_u.pl_cc.pl_cpuflags2); PMCLOG_GET_CALLCHAIN_SIZE(ev->pl_u.pl_cc.pl_npc,evlen); for (npc = 0; npc < ev->pl_u.pl_cc.pl_npc; npc++) PMCLOG_READADDR(le,ev->pl_u.pl_cc.pl_pc[npc]); @@ -363,6 +365,7 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len, PMCLOG_READADDR(le,ev->pl_u.pl_s.pl_pc); PMCLOG_READ32(le,ev->pl_u.pl_s.pl_pmcid); PMCLOG_READ32(le,ev->pl_u.pl_s.pl_usermode); + PMCLOG_READ32(le,ev->pl_u.pl_s.pl_tid); break; case PMCLOG_TYPE_PMCALLOCATE: PMCLOG_READ32(le,ev->pl_u.pl_a.pl_pmcid); @@ -393,6 +396,7 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len, PMCLOG_READ32(le,ev->pl_u.pl_c.pl_pmcid); PMCLOG_READ64(le,ev->pl_u.pl_c.pl_value); PMCLOG_READ32(le,ev->pl_u.pl_c.pl_pid); + PMCLOG_READ32(le,ev->pl_u.pl_c.pl_tid); break; case PMCLOG_TYPE_PROCEXEC: PMCLOG_GET_PATHLEN(pathlen,evlen,pmclog_procexec); diff --git a/lib/libpmc/pmclog.h b/lib/libpmc/pmclog.h index 77644a85ed8c4..9f748b77d69a1 100644 --- a/lib/libpmc/pmclog.h +++ b/lib/libpmc/pmclog.h @@ -47,8 +47,10 @@ enum pmclog_state { struct pmclog_ev_callchain { uint32_t pl_pid; + uint32_t pl_tid; uint32_t pl_pmcid; uint32_t pl_cpuflags; + uint32_t pl_cpuflags2; uint32_t pl_npc; uintfptr_t pl_pc[PMC_CALLCHAIN_DEPTH_MAX]; }; @@ -79,7 +81,9 @@ struct pmclog_ev_map_out { struct pmclog_ev_pcsample { uintfptr_t pl_pc; pid_t pl_pid; + pid_t pl_tid; pmc_id_t pl_pmcid; + uint32_t pl_flags; uint32_t pl_usermode; }; @@ -110,6 +114,7 @@ struct pmclog_ev_pmcdetach { struct pmclog_ev_proccsw { pid_t pl_pid; + pid_t pl_tid; pmc_id_t pl_pmcid; pmc_value_t pl_value; }; |