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