summaryrefslogtreecommitdiffstats
path: root/lib/libpmc/pmclog.h
diff options
context:
space:
mode:
authorfabient <fabient@FreeBSD.org>2012-03-28 20:58:30 +0000
committerfabient <fabient@FreeBSD.org>2012-03-28 20:58:30 +0000
commit5edfb77dd3a164bb9d2d40c6604faa6c9f3dce15 (patch)
treefadff08d26576c3d5c1cef9d47abd784602b237a /lib/libpmc/pmclog.h
parent9a7982e5a0267c0421856f3a43a1ae75880058f3 (diff)
downloadFreeBSD-src-5edfb77dd3a164bb9d2d40c6604faa6c9f3dce15.zip
FreeBSD-src-5edfb77dd3a164bb9d2d40c6604faa6c9f3dce15.tar.gz
Add software PMC support.
New kernel events can be added at various location for sampling or counting. This will for example allow easy system profiling whatever the processor is with known tools like pmcstat(8). Simultaneous usage of software PMC and hardware PMC is possible, for example looking at the lock acquire failure, page fault while sampling on instructions. Sponsored by: NETASQ MFC after: 1 month
Diffstat (limited to 'lib/libpmc/pmclog.h')
-rw-r--r--lib/libpmc/pmclog.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libpmc/pmclog.h b/lib/libpmc/pmclog.h
index b7c9c84..2a50945 100644
--- a/lib/libpmc/pmclog.h
+++ b/lib/libpmc/pmclog.h
@@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate {
pmc_id_t pl_pmcid;
};
+struct pmclog_ev_pmcallocatedyn {
+ uint32_t pl_event;
+ char pl_evname[PMC_NAME_MAX];
+ uint32_t pl_flags;
+ pmc_id_t pl_pmcid;
+};
+
struct pmclog_ev_pmcattach {
pmc_id_t pl_pmcid;
pid_t pl_pid;
@@ -146,6 +153,7 @@ struct pmclog_ev {
struct pmclog_ev_map_out pl_mo;
struct pmclog_ev_pcsample pl_s;
struct pmclog_ev_pmcallocate pl_a;
+ struct pmclog_ev_pmcallocatedyn pl_ad;
struct pmclog_ev_pmcattach pl_t;
struct pmclog_ev_pmcdetach pl_d;
struct pmclog_ev_proccsw pl_c;
OpenPOWER on IntegriCloud