Skip to content

FH 7.2 change request

After some testing with 2024.w04, LITEON, Quectel RM500Q, Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1050-realtime x86_64) on Xeon(R) Gold 6442Y, I would suggest to consider the following changes:

  1. Add configurable system_core - for systems where CPU 0 cannot be reasonable isolated from kernel threads. (DPDK uses system_core for its control threads: rte_mp_handle, eal-intr-thread,iavf-event-thread).
  2. Add an explicit affinity assignment of ru_thread after initialization of XRAN library.
+
+  cpu = sched_getcpu();
+
+  if (cpu != ru->ru_thread_core)
+  {
+    cpu_set_t cpuset;
+    CPU_ZERO(&cpuset);
+    CPU_SET(ru->ru_thread_core, &cpuset);
+    //printf("AAA2 cpu %d instead of %d\n", cpu, ru->ru_thread_core);
+    int ret = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
+    AssertFatal(ret == 0, "Error in pthread_getaffinity_np(): ret: %d, errno: %d", ret, errno);
+  }
+
   if (setup_RU_buffers(ru)!=0) {
     printf("Exiting, cannot initialize RU Buffers\n");
     exit(-1);
  1. XRAN library: initialize EAL without telemetry to skip creation of another or two (DPDK 21.11.5) DPDK control thread(s)
adva@tfsrv01:~/phy/fhi_lib/lib$ git diff ethernet/ethdi.c
diff --git a/fhi_lib/lib/ethernet/ethdi.c b/fhi_lib/lib/ethernet/ethdi.c
index b6ba257..b53325f 100644
--- a/fhi_lib/lib/ethernet/ethdi.c
+++ b/fhi_lib/lib/ethernet/ethdi.c
@@ -335,6 +335,7 @@ xran_ethdi_init_dpdk_io(char *name, const struct xran_io_cfg *io_cfg,
     uint16_t count;

     char *argv[] = { name, core_mask, "-n2", iova_mode, socket_mem, socket_limit, "--proc-type=auto",
+        "--no-telemetry",
         "--file-prefix", name, "-a0000:00:00.0", bbdev_wdev, bbdev_vdev};