[dpdk-dev] rte_ring features in use (or not)
olivier.matz at 6wind.com
Wed Jan 25 14:20:52 CET 2017
On Wed, 25 Jan 2017 12:14:56 +0000, Bruce Richardson
<bruce.richardson at intel.com> wrote:
> Hi all,
> while looking at the rte_ring code, I'm wondering if we can simplify
> that a bit by removing some of the code it in that may not be used.
> * Does anyone use the NIC stats functionality for debugging? I've
> certainly never seen it used, and it's presence makes the rest less
> readable. Can it be dropped?
What do you call NIC stats? The stats that are enabled with
If yes, I was recently thinking almost the same about mempool stats. The
need to enable stats at compilation makes them less usable. On the
other hand, I feel the mempool/ring stats may be useful, for instance
to check if mbufs are used from mempool cache, and not from common pool.
For mempool, my conclusion was:
- Enabling stats (debug) changes the ABI, because it adds a field in
the structure, this is bad
- enabling stats is not the same than enabling debug, we should have 2
- if statistics don't cost a lot, they should be enabled by default,
because it's a good debug tool (ex: have a stats for each access to
For the ring, in my opinion, the stats could be fully removed.
> * RTE_RING_PAUSE_REP_COUNT is set to be disabled at build time, and
> so does anyone actually use this? Can it be dropped?
This option looks like a hack to use the ring in conditions where it
should no be used (preemptable threads). And having a compile-time
option for this kind of stuff is not in vogue ;)
> * Who uses the watermarks feature as is? I know we have a sample app
> that uses it, but there are better ways I think to achieve the same
> goal while simplifying the ring implementation. Rather than have a
> set watermark on enqueue, have both enqueue and dequeue functions
> return the number of free or used slots available in the ring (in
> case of enqueue, how many free there are, in case of dequeue, how
> many items are available). Easier to implement and far more useful to
> the app.
More information about the dev