summaryrefslogtreecommitdiff
path: root/lib/libpmc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libpmc')
-rw-r--r--lib/libpmc/pmclog.c4
-rw-r--r--lib/libpmc/pmclog.h5
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;
};