> -----Original Message----- > From: Jerin Jacob [mailto:jerin.ja...@caviumnetworks.com] > Sent: Sunday, February 19, 2017 12:32 PM > To: Van Haaren, Harry <harry.van.haa...@intel.com> > Cc: dev@dpdk.org; Richardson, Bruce <bruce.richard...@intel.com> > Subject: Re: [PATCH v3 04/17] eventdev: add APIs for extended stats
<snip> > > +/** > > + * Reset the values of the xstats on the whole device. > > + * > > + * @param dev_id > > + * The identifier of the device > > + * @return > > + * - zero: successfully reset the statistics to zero > > + * - negative value: -EINVAL invalid dev_id, -ENOTSUP if not supported. > > + */ > > +int > > +rte_event_dev_xstats_reset(uint8_t dev_id); > > I think it would be useful to selectively reset the specific counter if > needed. Ok - I like the simplicity of a single reset() covering the whole eventdev, so that the stats should be consistent. No objection to changing the API, as applications can do a full reset using the "partial" reset API if they require. > something like below(Just to share my thought in C code) > > int > rte_event_dev_xstats_reset(uint8_t dev_id, > enum rte_event_dev_xstats_mode mode/* INT_MAX to specify all xstats on > the whole device */ > const unsigned int ids /* UINT_MAX to specify all the ids on the > specific mode */ The other functions that take a mode require a "queue_port_id" to select the component (port number or queue id number). I'll add the parameter. Also I don't like the INT_MAX solution, as the enum type doesn't have to be INT, it can be char or uintX_t - compiler and CFLAGS can be used to change the enum type IIRC. The ids parameter is an array in the xstats_get() functions, allowing multiple ids to be retrieved in one call. This also allows a NULL parameter to indicate all. I think this suits better than a single int id, and UINT_MAX for all. TL;DR: I'm suggesting int rte_event_dev_xstats_reset(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, /* device, port or queue */ int16_t queue_port_id, /* Queue or Port to reset. -1 resets all of *mode* ports or queues. */ const uint32_t ids[]); /* NULL array indicates to reset all stats */ Thoughts? > Other than above comments, Its looks very good. Thanks for review!