VPP-450 Fix adding LISP adjacencies via CLI
[vpp.git] / vlib / vlib / threads_cli.c
index 9ab4edc..e788b04 100644 (file)
 #include <vlib/vlib.h>
 
 #include <vlib/threads.h>
+#include <linux/sched.h>
+
+static u8 *
+format_sched_policy_and_priority (u8 * s, va_list * args)
+{
+  long i = va_arg (*args, long);
+  struct sched_param sched_param;
+  u8 *t = 0;
+
+  switch (sched_getscheduler (i))
+    {
+#define _(v,f,str) case SCHED_POLICY_##f: t = (u8 *) str; break;
+      foreach_sched_policy
+#undef _
+    }
+  if (sched_getparam (i, &sched_param) == 0)
+    return format (s, "%s (%d)", t, sched_param.sched_priority);
+  else
+    return format (s, "%s (n/a)", t);
+}
 
 static clib_error_t *
 show_threads_fn (vlib_main_t * vm,
@@ -25,8 +45,8 @@ show_threads_fn (vlib_main_t * vm,
   vlib_worker_thread_t *w;
   int i;
 
-  vlib_cli_output (vm, "%-7s%-20s%-12s%-8s%-7s%-7s%-7s%-10s",
-                  "ID", "Name", "Type", "LWP",
+  vlib_cli_output (vm, "%-7s%-20s%-12s%-8s%-25s%-7s%-7s%-7s%-10s",
+                  "ID", "Name", "Type", "LWP", "Sched Policy (Priority)",
                   "lcore", "Core", "Socket", "State");
 
 #if !defined(__powerpc64__)
@@ -40,6 +60,8 @@ show_threads_fn (vlib_main_t * vm,
                     w->name ? w->name : (u8 *) "",
                     w->registration ? w->registration->name : "", w->lwp);
 
+      line = format (line, "%-25U", format_sched_policy_and_priority, w->lwp);
+
 #if DPDK==1
       int lcore = w->dpdk_lcore_id;
       if (lcore > -1)