<Plugin "intel_rdt">
MonIPCEnabled true
MonLLCRefEnabled false
+ MonLLCMissEnabled false
Cores "0-2" "3,4,6" "8-10,15"
Processes "sshd,qemu-system-x86" "bash"
</Plugin>
B<false> (the default), LLC references monitoring statistics will not be
collected by intel_rdt plugin.
+=item B<MonLLCMissEnabled> B<true>|B<false>
+
+Determines whether or not to enable LLC misses monitoring. If set to B<false>
+(the default), LLC misses monitoring statistics will not be collected by
+intel_rdt plugin.
+
=item B<Cores> I<cores groups>
Monitoring of the events can be configured for group of cores
#if PQOS_VERSION >= 40400
#define RDT_EVENTS \
(PQOS_MON_EVENT_L3_OCCUP | PQOS_PERF_EVENT_IPC | PQOS_MON_EVENT_LMEM_BW | \
- PQOS_MON_EVENT_TMEM_BW | PQOS_MON_EVENT_RMEM_BW | PQOS_PERF_EVENT_LLC_REF)
+ PQOS_MON_EVENT_TMEM_BW | PQOS_MON_EVENT_RMEM_BW | PQOS_PERF_EVENT_LLC_REF | \
+ PQOS_PERF_EVENT_LLC_MISS)
#else
#define RDT_EVENTS \
(PQOS_MON_EVENT_L3_OCCUP | PQOS_PERF_EVENT_IPC | PQOS_MON_EVENT_LMEM_BW | \
- PQOS_MON_EVENT_TMEM_BW | PQOS_MON_EVENT_RMEM_BW)
+ PQOS_MON_EVENT_TMEM_BW | PQOS_MON_EVENT_RMEM_BW | PQOS_PERF_EVENT_LLC_MISS)
#endif
#define RDT_MAX_SOCKETS 8
#if PQOS_VERSION >= 40400
bool mon_llc_ref_enabled;
#endif
+ bool mon_llc_miss_enabled;
core_groups_list_t cores;
enum pqos_mon_event events[RDT_MAX_CORES];
struct pqos_mon_data *pcgroups[RDT_MAX_CORES];
}
#endif
+ if (events & PQOS_PERF_EVENT_LLC_MISS) {
+#if PQOS_VERSION >= 40400
+ uint64_t value;
+
+ int ret = pqos_mon_get_value(group, PQOS_PERF_EVENT_LLC_MISS, &value, NULL);
+ if (ret == PQOS_RETVAL_OK)
+ rdt_submit_gauge(desc, "bytes", "llc_miss", value);
+#else
+ rdt_submit_gauge(desc, "ipc", NULL, values->llc_misses);
+#endif
+ }
+
if (events & PQOS_MON_EVENT_LMEM_BW) {
const struct pqos_monitor *mon = NULL;
events &= ~(PQOS_PERF_EVENT_LLC_REF);
#endif
+ /* LLC misses monitoring is disabled */
+ if (!rdt->mon_llc_miss_enabled)
+ events &= ~(PQOS_PERF_EVENT_LLC_MISS);
+
DEBUG(RDT_PLUGIN ": Available events to monitor: %#x", events);
for (size_t i = 0; i < rdt->cores.num_cgroups; i++) {
} else if (strcasecmp("MonLLCRefEnabled", child->key) == 0) {
cf_util_get_boolean(child, &g_rdt->mon_llc_ref_enabled);
#endif
+ } else if (strcasecmp("MonLLCMissEnabled", child->key) == 0) {
+ cf_util_get_boolean(child, &g_rdt->mon_llc_miss_enabled);
} else {
ERROR(RDT_PLUGIN ": Unknown configuration parameter \"%s\".", child->key);
}