On Wed, Sep 6, 2023 at 4:59 AM Stephen Hemminger wrote: > On Tue, 29 Aug 2023 20:25:54 +0530 > Hari Haran wrote: > > > Hi All, > > > > Subject: rte_rdtsc() - what is the performance impact of using > rte_rdtsc() > > time under lcore thread while(1) > > > > Requirement: > > > > 1. Store the packet received timestamp - based on it packets will be > > removed from buffer if it exceeds the threshold timer of buffer > > 2. Two threads are available, One is lcore(dedicated core) and another > > is pthread(not a dedicated core. In pthread, have to get the > timestamp of > > last received packet timestamp > > > > > > Query: > > > > 1. For every packet reception in lcore thread under while(1), will get > > the packet received timestamp using rte_rdtsc() function. Whether > usage of > > rte_rdtsc() function adds more delay in packet processing? > > 2. Is there any way to convert rte_rdtsc() timestamp value to current > > system time in pthread()? In pthread, the last packet received time > needed > > in the form of system time. > > > > > > Thanks in advance. > > > > Regards, > > Hariharan > > The problem is that rte_rdtsc() stops speculative execution so doing > lots of TSC instructions can hurt performance. > > To correlate TSC timestamp to system time, you need to compute the offsets > once at startup. Alternatively, don't use rte_rdtsc() and instead use > clock_gettime() with the monotonic timer and the C library does the > calculation > for you. > As part of query 1 and based on your response, I am asking below query But usage of clock_gettime() (kernel function) in lcore is advisable one? My understanding is, shall avoid usage of kernel function in lcore. Correct me if I am wrong? TIA. Regards, Hariharan