Code

rdtmon: Use pqos callback to redirect pqos library messages to collectd.
authorKorynkevych, RomanX <romanx.korynkevych@intel.com>
Wed, 23 Nov 2016 13:33:44 +0000 (13:33 +0000)
committerKorynkevych, RomanX <romanx.korynkevych@intel.com>
Thu, 8 Dec 2016 11:11:56 +0000 (11:11 +0000)
Change-Id: I142e8940878926adf7752eabbad34a6c37cca1d4
Signed-off-by: Korynkevych, RomanX <romanx.korynkevych@intel.com>
src/intel_rdt.c

index 2ef65f57f8737c02158a6bf52131dfa230646a1e..d1a0c51d9ae074b9f6406c90a16b3b6103acaeb9 100644 (file)
@@ -460,6 +460,10 @@ static int rdt_config_cgroups(oconfig_item_t *item) {
   return (0);
 }
 
+static void rdt_pqos_log(void *context, const size_t size, const char *msg) {
+  DEBUG(RDT_PLUGIN ": %s", msg);
+}
+
 static int rdt_preinit(void) {
   int ret;
 
@@ -478,11 +482,12 @@ static int rdt_preinit(void) {
    * call fini and ignore return code. */
   pqos_fini();
 
-  /* TODO:
-   * stdout should not be used here. Will be reworked when support of log
-   * callback is added to PQoS library.
-  */
-  ret = pqos_init(&(struct pqos_config){.fd_log = STDOUT_FILENO});
+  struct pqos_config pqos = {.fd_log = -1,
+                             .callback_log = rdt_pqos_log,
+                             .context_log = NULL,
+                             .verbose = 0};
+
+  ret = pqos_init(&pqos);
   if (ret != PQOS_RETVAL_OK) {
     ERROR(RDT_PLUGIN ": Error initializing PQoS library!");
     goto rdt_preinit_error1;