2015-04-29 10:04, Stephen Hemminger: > The rte_sched statistics API should allow reading statistics without > clearing. Make auto-clear optional. > > Signed-off-by: Stephen Hemminger <stephen at networkplumber.org> > --- > app/test/test_sched.c | 4 ++-- > examples/qos_sched/stats.c | 16 +++++++++++----- > lib/librte_sched/rte_sched.c | 44 > ++++++++++++++++++++++---------------------- > lib/librte_sched/rte_sched.h | 18 ++++++++++-------- [...]
This API change needs more adjustments in the example app: examples/qos_sched/stats.c: In function ?subport_stat?: examples/qos_sched/stats.c:263:9: error: too few arguments to function ?rte_sched_subport_read_stats? rte_sched_subport_read_stats(port, subport_id, &stats, tc_ov); ^ examples/qos_sched/stats.c: In function ?pipe_stat?: examples/qos_sched/stats.c:309:25: error: too few arguments to function ?rte_sched_queue_read_stats? rte_sched_queue_read_stats(port, queue_id + (i * RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS + j), &stats, &qlen); ^ [...] > --- a/lib/librte_sched/rte_sched.h > +++ b/lib/librte_sched/rte_sched.h > @@ -308,14 +308,15 @@ rte_sched_port_get_memory_footprint(struct > rte_sched_port_params *params); > * @param tc_ov > * Pointer to pre-allocated 4-entry array where the oversubscription > status for > * each of the 4 subport traffic classes should be stored. > + * @parm clear > + * Reset statistics after read > * @return > * 0 upon success, error code otherwise > */ > int > -rte_sched_subport_read_stats(struct rte_sched_port *port, > - uint32_t subport_id, > - struct rte_sched_subport_stats *stats, > - uint32_t *tc_ov); > +rte_sched_subport_read_stats(struct rte_sched_port *port, uint32_t > subport_id, > + struct rte_sched_subport_stats *stats, > + uint32_t *tc_ov, int clear); > > /** > * Hierarchical scheduler queue statistics read > @@ -329,14 +330,15 @@ rte_sched_subport_read_stats(struct rte_sched_port > *port, > * counters should be stored > * @param qlen > * Pointer to pre-allocated variable where the current queue length should > be stored. > + * @parm clear > + * Reset statistics after read > * @return > * 0 upon success, error code otherwise > */ > int > -rte_sched_queue_read_stats(struct rte_sched_port *port, > - uint32_t queue_id, > - struct rte_sched_queue_stats *stats, > - uint16_t *qlen); > +rte_sched_queue_read_stats(struct rte_sched_port *port, uint32_t queue_id, > + struct rte_sched_queue_stats *stats, > + uint16_t *qlen, int clear); > > /* > * Run-time > What about ABI versioning? compatibility?