Thanks for the responses, this is on AWS, which is utilizing Xeon with hyperthreading. Not utilizing hyperthreading is not an option.
After trying a few things i am narrowing down on the following approach: only for the critical threads we could utilize: rte_thread_set_priority to RTE_THREAD_PRIORITY_REALTIME_CRITICAL however this API requires a rte_thread_t parameter, if we utilize rte_eal_remote_launch, we are not provided with this parameter. I am searching through the code to see if there is an API where i can obtain the rte_thread_t for the current thread that was launched with rte_eal_remote_launch. regards On Monday, September 23, 2024 at 03:18:11 PM PDT, Nishant Verma <vnis...@gmail.com> wrote: Also make sure all core you are using are physical core not the logical core. Secondly, check your core isolation options and apply them accordingly. . Regards, Nishant Verma On Mon, Sep 23, 2024 at 6:04 PM Wisam Jaddo <wis...@nvidia.com> wrote: > Hello Amit, > >> -----Original Message----- >> From: amit sehas <cu...@yahoo.com> >> Sent: Monday, September 23, 2024 11:57 PM >> To: users@dpdk.org >> Subject: core performance >> >> We are seeing different dpdk threads (launched via rte_eal_remote_launch()), >> demonstrate very different performance. >> >> >> >> After placing counters all over the code, we realize that some threads are >> uniformly slow, in other words there is no application level issue that is >> throttling one thread over the other. We come to the conculsion that either >> the Cores on which they are running are not at the same frequency which >> seems doubtful or the threads are not getting a chance to execute on the >> cores >> uniformly. >> >> >> >> It seems that isolcpus has been deprecated in recent versions of linux. >> >> >> >> What is the recommended approach to prevent the kernel from utilizing some >> CPU threads, for anything other than the threads that are launched on them. > > If you are wishing to run each thread on separate core, try to use > rte_eal_mp_remote_launch() > instead of rte_eal_remote_launch(), make sure that your CPU is isolated, and > you are passing correct > Cores that were isolated to your app using -c, -l. > > >> >> >> >> Is there some API in dpdk which also helps us determine which CPU core the >> thread is pinned to? >> >> I did not find any code in dpdk which actually performed pinning of a thread >> to >> a CPU core. >> >> >> >> In our case it is more or less certain that the different threads are simply >> not >> getting the same CPU core time, as a result some are demonstrating higher >> throughput than the others ... >> >> >> >> how do we fix this? > > BRs, > Wisam Jaddo >