From 6c81f5a2493ff65b4dacfef45db8a1ee459a738f Mon Sep 17 00:00:00 2001 From: Tom Seidenberg Date: Fri, 10 Jul 2020 15:49:03 +0000 Subject: misc: add callback hooks and refactor pmc Callbacks for monitoring and performance measurement: - Add new callback list type, with context - Add callbacks for API, CLI, and barrier sync - Modify node dispatch callback to pass plugin-specific context - Modify perfmon plugin to keep PMC samples local to the plugin - Include process nodes in dispatch callback - Pass dispatch function return value to callback Type: refactor Signed-off-by: Tom Seidenberg Change-Id: I28b06c58490611e08d76ff5b01b2347ba2109b22 --- src/plugins/perfmon/perfmon_intel_skl.c | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'src/plugins/perfmon/perfmon_intel_skl.c') diff --git a/src/plugins/perfmon/perfmon_intel_skl.c b/src/plugins/perfmon/perfmon_intel_skl.c index 726dbb4dd8c..b1c03140651 100644 --- a/src/plugins/perfmon/perfmon_intel_skl.c +++ b/src/plugins/perfmon/perfmon_intel_skl.c @@ -88,6 +88,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x0D}, .umask = 0x01, + .anyt = 1, .event_name = "int_misc.recovery_cycles_any", }, { @@ -103,6 +104,8 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x0E}, .umask = 0x01, + .cmask = 1, + .inv = 1, .event_name = "uops_issued.stall_cycles", }, { @@ -233,6 +236,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x3C}, .umask = 0x00, + .anyt = 1, .event_name = "cpu_clk_unhalted.thread_p_any", }, { @@ -248,6 +252,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x3C}, .umask = 0x01, + .anyt = 1, .event_name = "cpu_clk_thread_unhalted.ref_xclk_any", }, { @@ -268,6 +273,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x48}, .umask = 0x01, + .cmask = 1, .event_name = "l1d_pend_miss.pending", }, { @@ -305,6 +311,12 @@ static perfmon_intel_pmc_event_t event_table[] = { .umask = 0x0E, .event_name = "dtlb_store_misses.walk_completed", }, + { + .event_code = {0x49}, + .umask = 0x10, + .cmask = 1, + .event_name = "dtlb_store_misses.walk_active", + }, { .event_code = {0x49}, .umask = 0x10, @@ -403,6 +415,8 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x5E}, .umask = 0x01, + .cmask = 1, + .inv = 1, .event_name = "rs_events.empty_end", }, { @@ -413,6 +427,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x60}, .umask = 0x01, + .cmask = 1, .event_name = "offcore_requests_outstanding.cycles_with_demand_data_rd", }, { @@ -423,6 +438,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x60}, .umask = 0x02, + .cmask = 1, .event_name = "offcore_requests_outstanding.cycles_with_demand_code_rd", }, { @@ -433,6 +449,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x60}, .umask = 0x04, + .cmask = 1, .event_name = "offcore_requests_outstanding.cycles_with_demand_rfo", }, { @@ -443,6 +460,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x60}, .umask = 0x08, + .cmask = 1, .event_name = "offcore_requests_outstanding.cycles_with_data_rd", }, { @@ -458,6 +476,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x79}, .umask = 0x04, + .cmask = 1, .event_name = "idq.mite_cycles", }, { @@ -468,6 +487,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x79}, .umask = 0x08, + .cmask = 1, .event_name = "idq.dsb_cycles", }, { @@ -478,11 +498,13 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x79}, .umask = 0x18, + .cmask = 4, .event_name = "idq.all_dsb_cycles_4_uops", }, { .event_code = {0x79}, .umask = 0x18, + .cmask = 1, .event_name = "idq.all_dsb_cycles_any_uops", }, { @@ -503,11 +525,13 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x79}, .umask = 0x30, + .cmask = 1, .event_name = "idq.ms_cycles", }, { .event_code = {0x79}, .umask = 0x30, + .edge = 1, .event_name = "idq.ms_switches", }, { @@ -588,26 +612,32 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0x9C}, .umask = 0x01, + .cmask = 4, .event_name = "idq_uops_not_delivered.cycles_0_uops_deliv.core", }, { .event_code = {0x9C}, .umask = 0x01, + .cmask = 3, .event_name = "idq_uops_not_delivered.cycles_le_1_uop_deliv.core", }, { .event_code = {0x9C}, .umask = 0x01, + .cmask = 4, .event_name = "idq_uops_not_delivered.cycles_le_2_uop_deliv.core", }, { .event_code = {0x9C}, .umask = 0x01, + .cmask = 1, .event_name = "idq_uops_not_delivered.cycles_le_3_uop_deliv.core", }, { .event_code = {0x9C}, .umask = 0x01, + .cmask = 1, + .inv = 1, .event_name = "idq_uops_not_delivered.cycles_fe_was_ok", }, { @@ -663,36 +693,43 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xA3}, .umask = 0x01, + .cmask = 1, .event_name = "cycle_activity.cycles_l2_miss", }, { .event_code = {0xA3}, .umask = 0x04, + .cmask = 4, .event_name = "cycle_activity.stalls_total", }, { .event_code = {0xA3}, .umask = 0x05, + .cmask = 5, .event_name = "cycle_activity.stalls_l2_miss", }, { .event_code = {0xA3}, .umask = 0x08, + .cmask = 8, .event_name = "cycle_activity.cycles_l1d_miss", }, { .event_code = {0xA3}, .umask = 0x0C, + .cmask = 12, .event_name = "cycle_activity.stalls_l1d_miss", }, { .event_code = {0xA3}, .umask = 0x10, + .cmask = 16, .event_name = "cycle_activity.cycles_mem_any", }, { .event_code = {0xA3}, .umask = 0x14, + .cmask = 20, .event_name = "cycle_activity.stalls_mem_any", }, { @@ -733,11 +770,13 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xA8}, .umask = 0x01, + .cmask = 1, .event_name = "lsd.cycles_active", }, { .event_code = {0xA8}, .umask = 0x01, + .cmask = 4, .event_name = "lsd.cycles_4_uops", }, { @@ -788,26 +827,32 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xB1}, .umask = 0x01, + .cmask = 1, + .inv = 1, .event_name = "uops_executed.stall_cycles", }, { .event_code = {0xB1}, .umask = 0x01, + .cmask = 1, .event_name = "uops_executed.cycles_ge_1_uop_exec", }, { .event_code = {0xB1}, .umask = 0x01, + .cmask = 2, .event_name = "uops_executed.cycles_ge_2_uops_exec", }, { .event_code = {0xB1}, .umask = 0x01, + .cmask = 3, .event_name = "uops_executed.cycles_ge_3_uops_exec", }, { .event_code = {0xB1}, .umask = 0x01, + .cmask = 4, .event_name = "uops_executed.cycles_ge_4_uops_exec", }, { @@ -818,26 +863,32 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xB1}, .umask = 0x02, + .cmask = 1, .event_name = "uops_executed.core_cycles_ge_1", }, { .event_code = {0xB1}, .umask = 0x02, + .cmask = 2, .event_name = "uops_executed.core_cycles_ge_2", }, { .event_code = {0xB1}, .umask = 0x02, + .cmask = 3, .event_name = "uops_executed.core_cycles_ge_3", }, { .event_code = {0xB1}, .umask = 0x02, + .cmask = 4, .event_name = "uops_executed.core_cycles_ge_4", }, { .event_code = {0xB1}, .umask = 0x02, + .cmask = 1, + .inv = 1, .event_name = "uops_executed.core_cycles_none", }, { @@ -873,6 +924,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xC0}, .umask = 0x01, + .cmask = 10, .event_name = "inst_retired.total_cycles_ps", }, { @@ -883,16 +935,22 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xC2}, .umask = 0x02, + .cmask = 1, + .inv = 1, .event_name = "uops_retired.stall_cycles", }, { .event_code = {0xC2}, .umask = 0x02, + .cmask = 10, + .inv = 1, .event_name = "uops_retired.total_cycles", }, { .event_code = {0xC3}, .umask = 0x01, + .cmask = 1, + .edge = 1, .event_name = "machine_clears.count", }, { @@ -1083,6 +1141,7 @@ static perfmon_intel_pmc_event_t event_table[] = { { .event_code = {0xCA}, .umask = 0x1E, + .cmask = 1, .event_name = "fp_assist.any", }, { -- cgit 1.2.3-korg