diff --git a/src/vlib/threads_cli.c b/src/vlib/threads_cli.c
index bb9ddbc..a47d864 100644
--- a/src/vlib/threads_cli.c
+++ b/src/vlib/threads_cli.c
@@ -15,7 +15,6 @@
 #define _GNU_SOURCE
 
 #include <vppinfra/format.h>
-#include <vppinfra/linux/sysfs.h>
 #include <vlib/vlib.h>
 
 #include <vlib/threads.h>
@@ -64,57 +63,16 @@
 
       line = format (line, "%-25U", format_sched_policy_and_priority, w->lwp);
 
-      int lcore = -1;
-      cpu_set_t cpuset;
-      CPU_ZERO (&cpuset);
-      int ret = -1;
-
-      ret =
-	pthread_getaffinity_np (w->thread_id, sizeof (cpu_set_t), &cpuset);
-      if (!ret)
+      int cpu_id = w->cpu_id;
+      if (cpu_id > -1)
 	{
-	  int c;
-	  for (c = 0; c < CPU_SETSIZE; c++)
-	    if (CPU_ISSET (c, &cpuset))
-	      {
-		if (lcore > -1)
-		  {
-		    lcore = -2;
-		    break;
-		  }
-		lcore = c;
-	      }
+	  int core_id = w->core_id;
+	  int socket_id = w->socket_id;
+	  line = format (line, "%-7u%-7u%-7u%", cpu_id, core_id, socket_id);
 	}
       else
 	{
-	  lcore = w->lcore_id;
-	}
-
-      if (lcore > -1)
-	{
-	  const char *sys_cpu_path = "/sys/devices/system/cpu/cpu";
-	  int socket_id = -1;
-	  int core_id = -1;
-	  u8 *p = 0;
-
-	  p = format (p, "%s%u/topology/core_id%c", sys_cpu_path, lcore, 0);
-	  clib_sysfs_read ((char *) p, "%d", &core_id);
-
-	  vec_reset_length (p);
-	  p =
-	    format (p,
-		    "%s%u/topology/physical_package_id%c",
-		    sys_cpu_path, lcore, 0);
-	  clib_sysfs_read ((char *) p, "%d", &socket_id);
-	  vec_free (p);
-
-	  line = format (line, "%-7u%-7u%-7u%", lcore, core_id, socket_id);
-	}
-      else
-	{
-	  line =
-	    format (line, "%-7s%-7s%-7s%", (lcore == -2) ? "M" : "n/a", "n/a",
-		    "n/a");
+	  line = format (line, "%-7s%-7s%-7s%", "n/a", "n/a", "n/a");
 	}
 
       vlib_cli_output (vm, "%v", line);
