14/07/2017 02:07, Stephen Hemminger: > On Thu, 13 Jul 2017 17:24:27 +0100 > Reshma Pattan <[email protected]> wrote: > > > diff --git a/lib/librte_ether/rte_ethdev_pci.h > > b/lib/librte_ether/rte_ethdev_pci.h > > index 69aab03..f829407 100644 > > --- a/lib/librte_ether/rte_ethdev_pci.h > > +++ b/lib/librte_ether/rte_ethdev_pci.h > > @@ -37,6 +37,7 @@ > > #include <rte_malloc.h> > > #include <rte_pci.h> > > #include <rte_ethdev.h> > > +#include <rte_cycles.h> > > > > /** > > * Copy pci device info to the Ethernet device data. > > @@ -157,6 +158,9 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device > > *pci_dev, > > > > RTE_FUNC_PTR_OR_ERR_RET(*dev_init, -EINVAL); > > ret = dev_init(eth_dev); > > + eth_dev->data->sys_up_time_start = rte_rdtsc(); > > + eth_dev->data->if_counter_discontinuity_time = 0; > > + eth_dev->data->if_last_change = 0; > > Shouldn't this be in base eth_dev layer rather than the PCI specific code. > > If you look in rte_eth_dev_data_alloc, the dev_data is already zeroed. > > Also, DPDK in general does BSD style structure names (ie always putting prefix > on structure tags). In BSD, this is a leftover from ancient V6 UNIX where > compiler did no real checking of structure tags. My preference is that > variables and structure names be as short as possible. > > The TSC counter is not a good value to use on this anyway. You don't care > about sub-microsecond accuracy and it wraps around. Better to figure out > a better clock source. Is there a DPDK wrapper of > clock_gettime(CLOCK_MONOTONIC)?
In rte_cycles.h, the TSC is wrapped into rte_get_timer_cycles(). About clock_gettime(CLOCK_MONOTONIC), I think we may need to create a file rte_clock.h.

