Can you share output of lscpu and command you are using to execute the app? . Regards, Nishant Verma On Mon, Sep 23, 2024 at 7:17 PM amit sehas wrote: > 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 < > vnish11@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 wrote: > > Hello Amit, > > > >> -----Original Message----- > >> From: amit sehas > >> 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 > > > >