> Hi Konstantin, > > > On May 7, 2020, at 4:50 AM, Ananyev, Konstantin > > <konstantin.anan...@intel.com> wrote: > > > > > > > >> -----Original Message----- > >> From: dev <dev-boun...@dpdk.org> On Behalf Of Dharmik Thakkar > >> Sent: Wednesday, May 6, 2020 10:59 PM > >> To: Lu, Wenzhuo <wenzhuo...@intel.com>; Wu, Jingjing > >> <jingjing...@intel.com>; Iremonger, Bernard <bernard.iremon...@intel.com> > >> Cc: dev@dpdk.org; n...@arm.com; Dharmik Thakkar <dharmik.thak...@arm.com> > >> Subject: [dpdk-dev] [PATCH 2/5] app/testpmd: print fractional part in CPU > >> cycles > >> > >> Change printing of CPU cycles/packet to include fractional part for > >> accurateness. > >> > >> Example: > >> > >> Without patch: > >> CPU cycles/packet=14 > >> (total cycles=4899533541 / total RX packets=343031966) > >> > >> With patch: > >> CPU cycles/packet=14.28 > >> (total cycles=4899533541 / total RX packets=343031966) > >> > >> Signed-off-by: Dharmik Thakkar <dharmik.thak...@arm.com> > >> Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > >> Reviewed-by: Phil Yang <phil.y...@arm.com> > >> --- > >> app/test-pmd/testpmd.c | 4 ++-- > >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > >> index 9a8cbbd6fc7c..9444a730a153 100644 > >> --- a/app/test-pmd/testpmd.c > >> +++ b/app/test-pmd/testpmd.c > >> @@ -1955,9 +1955,9 @@ fwd_stats_display(void) > >> #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES > >> #define CYC_PER_MHZ 1E6 > >> if (total_recv > 0) > >> - printf("\n CPU cycles/packet=%u (total cycles=" > >> + printf("\n CPU cycles/packet=%.2f (total cycles=" > >> "%"PRIu64" / total RX packets=%"PRIu64") at %lu MHz > >> Clock\n", > >> - (unsigned int)(fwd_cycles / total_recv), > >> + (double)(fwd_cycles / (double)total_recv), > > > > Probably safer long double - to avoid overflow. > > Is it possible for a ‘double' to be less than 8 bytes?
That was my initial thought - that on some 32 bit systems it could be 4B. Though it seems I was wrong, so feel free to ignore. BTW, what for double conversion, why not just: double)(fwd_cycles /total_recv ? > > > > >> fwd_cycles, total_recv, (uint64_t)(rte_get_tsc_hz() / > >> CYC_PER_MHZ)); > >> #endif > >> } > >> -- > >> 2.20.1