From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id 348E558E8 for ; Tue, 10 Feb 2015 00:46:50 +0100 (CET) Received: from [2001:470:8:a08:215:ff:fecc:4872] (helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63) (envelope-from ) id 1YKy2N-00067y-Gu; Mon, 09 Feb 2015 18:46:46 -0500 Date: Mon, 9 Feb 2015 18:46:38 -0500 From: Neil Horman To: "Dumitrescu, Cristian" Message-ID: <20150209234638.GA5938@neilslaptop.think-freely.org> References: <1423116841-19799-4-git-send-email-stephen@networkplumber.org> <3EB4FA525960D640B5BDFFD6A3D89126323097BA@IRSMSX108.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3EB4FA525960D640B5BDFFD6A3D89126323097BA@IRSMSX108.ger.corp.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -2.9 (--) X-Spam-Status: No Cc: "dev@dpdk.org" , Stephen Hemminger Subject: Re: [dpdk-dev] [PATCH v2 4/7] rte_sched: don't clear statistics when read X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2015 23:46:50 -0000 On Mon, Feb 09, 2015 at 10:48:36PM +0000, Dumitrescu, Cristian wrote: > Hi Stephen, > > What is the reason not to clear statistics on read? Do you have a use-case / justification for it? > > (BTW, I see you added the reset functions, but was it also your intention to remove the memset to 0 from the stats read functions? :) ) > > Regards, > Cristian > Its the difference between a hardware and a software interface. Hardware stats are often read-clear, but software hides that, making stats continuous. Exposing it is atypical for a software stack. Neil > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stephen Hemminger > Sent: Thursday, February 5, 2015 6:14 AM > To: dev@dpdk.org > Cc: Stephen Hemminger > Subject: [dpdk-dev] [PATCH v2 4/7] rte_sched: don't clear statistics when read > > From: Stephen Hemminger > > Make rte_sched statistics API work like the ethernet statistics API. > Don't auto-clear statistics. > > Signed-off-by: Stephen Hemminger > --- > lib/librte_sched/rte_sched.c | 30 ++++++++++++++++++++++++++++++ > lib/librte_sched/rte_sched.h | 29 +++++++++++++++++++++++++++++ > 2 files changed, 59 insertions(+) > > diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c > index 8cb8bf1..d891e50 100644 > --- a/lib/librte_sched/rte_sched.c > +++ b/lib/librte_sched/rte_sched.c > @@ -935,6 +935,21 @@ rte_sched_subport_read_stats(struct rte_sched_port *port, > } > > int > +rte_sched_subport_stats_reset(struct rte_sched_port *port, > + uint32_t subport_id) > +{ > + struct rte_sched_subport *s; > + > + /* Check user parameters */ > + if (port == NULL || subport_id >= port->n_subports_per_port) > + return -1; > + > + s = port->subport + subport_id; > + memset(&s->stats, 0, sizeof(struct rte_sched_subport_stats)); > + return 0; > +} > + > +int > rte_sched_queue_read_stats(struct rte_sched_port *port, > uint32_t queue_id, > struct rte_sched_queue_stats *stats, > @@ -963,6 +978,21 @@ rte_sched_queue_read_stats(struct rte_sched_port *port, > return 0; > } > > +int > +rte_sched_queue_stats_reset(struct rte_sched_port *port, > + uint32_t queue_id) > +{ > + struct rte_sched_queue_extra *qe; > + > + /* Check user parameters */ > + if (port == NULL || queue_id >= rte_sched_port_queues_per_port(port)) > + return -1; > + > + qe = port->queue_extra + queue_id; > + memset(&qe->stats, 0, sizeof(struct rte_sched_queue_stats)); > + return 0; > +} > + > static inline uint32_t > rte_sched_port_qindex(struct rte_sched_port *port, uint32_t subport, uint32_t pipe, uint32_t traffic_class, uint32_t queue) > { > diff --git a/lib/librte_sched/rte_sched.h b/lib/librte_sched/rte_sched.h > index e9bf18a..3d007e4 100644 > --- a/lib/librte_sched/rte_sched.h > +++ b/lib/librte_sched/rte_sched.h > @@ -317,6 +317,21 @@ rte_sched_subport_read_stats(struct rte_sched_port *port, > struct rte_sched_subport_stats *stats, > uint32_t *tc_ov); > > + > +/** > + * Hierarchical scheduler subport statistics reset > + * > + * @param port > + * Handle to port scheduler instance > + * @param subport_id > + * Subport ID > + * @return > + * 0 upon success, error code otherwise > + */ > +int > +rte_sched_subport_stats_reset(struct rte_sched_port *port, > + uint32_t subport_id); > + > /** > * Hierarchical scheduler queue statistics read > * > @@ -338,6 +353,20 @@ rte_sched_queue_read_stats(struct rte_sched_port *port, > struct rte_sched_queue_stats *stats, > uint16_t *qlen); > > +/** > + * Hierarchical scheduler queue statistics reset > + * > + * @param port > + * Handle to port scheduler instance > + * @param queue_id > + * Queue ID within port scheduler > + * @return > + * 0 upon success, error code otherwise > + */ > +int > +rte_sched_queue_stats_reset(struct rte_sched_port *port, > + uint32_t queue_id); > + > /* > * Run-time > * > -- > 2.1.4 > > -------------------------------------------------------------- > Intel Shannon Limited > Registered in Ireland > Registered Office: Collinstown Industrial Park, Leixlip, County Kildare > Registered Number: 308263 > Business address: Dromore House, East Park, Shannon, Co. Clare > > This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. > > >