All of lore.kernel.org
 help / color / mirror / Atom feed
From: Billy McFall <bmcfall@redhat.com>
To: Olivier Matz <olivier.matz@6wind.com>
Cc: thomas.monjalon@6wind.com, wenzhuo.lu@intel.com, dev@dpdk.org
Subject: Re: [PATCH v6 1/3] ethdev: new API to free consumed buffers in Tx ring
Date: Wed, 15 Mar 2017 11:01:11 -0400	[thread overview]
Message-ID: <CAKLkqD6_T-wbZGjwy0RsxoaCyiNVAjmJwAtHftZ9rCU_RcBMZg@mail.gmail.com> (raw)
In-Reply-To: <20170315112908.15b4c811@platinum>

On Wed, Mar 15, 2017 at 6:29 AM, Olivier Matz <olivier.matz@6wind.com>
wrote:

> Hi Billy,
>
> On Thu,  9 Mar 2017 15:51:17 -0500, Billy McFall <bmcfall@redhat.com>
> wrote:
> > Add a new API to force free consumed buffers on Tx ring. API will return
> > the number of packets freed (0-n) or error code if feature not supported
> > (-ENOTSUP) or input invalid (-ENODEV).
> >
> > Please double check my python coding in conf.py and make sure I
> > implemented 'feature_str_len' properly.
> >
> > Signed-off-by: Billy McFall <bmcfall@redhat.com>
>
> [...]
>
> > diff --git a/doc/guides/prog_guide/mempool_lib.rst
> b/doc/guides/prog_guide/mempool_lib.rst
> > index ffdc109..a117881 100644
> > --- a/doc/guides/prog_guide/mempool_lib.rst
> > +++ b/doc/guides/prog_guide/mempool_lib.rst
> > @@ -132,6 +132,32 @@ These user-owned caches can be explicitly passed to
> ``rte_mempool_generic_put()`
> >  The ``rte_mempool_default_cache()`` call returns the default internal
> cache if any.
> >  In contrast to the default caches, user-owned caches can be used by
> non-EAL threads too.
> >
> > +In addition to a core's local cache, many of the drivers don't release
> the mbuf back to the mempool, or local cache,
> > +immediately after the packet has been transmitted.
> > +Instead, they leave the mbuf in their Tx ring and either perform a bulk
> release when the ``tx_rs_thresh`` has been
> > +crossed or free the mbuf when a slot in the Tx ring is needed.
> > +
> > +An application can request the driver to release used mbufs with the
> ``rte_eth_tx_done_cleanup()`` API.
> > +This API requests the driver to release mbufs that are no longer in
> use, independent of whether or not the
> > +``tx_rs_thresh`` has been crossed.
> > +There are two scenarios when an application may want the mbuf released
> immediately:
> > +
> > +* When a given packet needs to be sent to multiple destination
> interfaces (either for Layer 2 flooding or Layer 3
> > +  multi-cast).
> > +  One option is to make a copy of the packet or a copy of the header
> portion that needs to be manipulated.
> > +  A second option is to transmit the packet and then poll the
> ``rte_eth_tx_done_cleanup()`` API until the reference
> > +  count on the packet is decremented.
> > +  Then the same packet can be transmitted to the next destination
> interface.
> > +
> > +* If an application is designed to make multiple runs, like a packet
> generator, and one run has completed.
> > +  The application may want to reset to a clean state.
> > +  In this case, it may want to call the ``rte_eth_tx_done_cleanup()``
> API to request each destination interface it has
> > +  been using to release all of its used mbufs.
> > +
> > +To determine if a driver supports this API, check for the *Free Tx mbuf
> on demand* feature in the *Network Interface
> > +Controller Drivers* document.
>
> I'm not sure the mempool documentation is the proper place to document
> this API. I'll suggest to move it in ethdev documentation
> (poll_mode_drv.rst).
>
> You can keep a small paragraph in mempool lib, but keep in mind that
> mempool is not necessarily a pool of mbuf (it can be any kind of object).
>
> Not sure this API needs to be documented in multiple places. I'll move the
content to the poll_mode_drv.rst file.

>
> Thanks,
> Olivier
>
> Billy

  reply	other threads:[~2017-03-15 15:01 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-20 16:01 [PATCH v3 0/3] new API to free consumed buffers in Tx ring Billy McFall
2017-01-20 16:01 ` [PATCH v3 1/3] ethdev: " Billy McFall
2017-01-20 16:01 ` [PATCH v3 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-01-22  3:47   ` Lu, Wenzhuo
2017-01-23 13:49     ` Billy McFall
2017-01-24  0:42       ` Lu, Wenzhuo
2017-01-20 16:01 ` [PATCH v3 3/3] net/vhost: vHost " Billy McFall
2017-01-23 15:25 ` [PATCH v3 0/3] new API to free consumed buffers in Tx ring Thomas Monjalon
2017-01-23 21:13 ` [PATCH v4 " Billy McFall
2017-01-23 21:13   ` [PATCH v4 1/3] ethdev: " Billy McFall
2017-01-23 21:13   ` [PATCH v4 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-01-23 21:13   ` [PATCH v4 3/3] net/vhost: vHost " Billy McFall
2017-01-27 18:37   ` [PATCH v5 0/3] new API to free consumed buffers in Tx ring Billy McFall
2017-01-27 18:37     ` [PATCH v5 1/3] ethdev: " Billy McFall
2017-02-27 13:48       ` Thomas Monjalon
2017-03-07 14:29         ` Billy McFall
2017-03-07 16:03           ` Thomas Monjalon
2017-03-09 15:49             ` Billy McFall
2017-03-09 17:11               ` Thomas Monjalon
2017-03-07 16:35           ` Mcnamara, John
2017-03-07 16:42       ` Mcnamara, John
2017-01-27 18:37     ` [PATCH v5 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-02-27 13:49       ` Thomas Monjalon
2017-02-28  1:07       ` Lu, Wenzhuo
2017-01-27 18:38     ` [PATCH v5 3/3] net/vhost: vHost " Billy McFall
2017-02-27 13:50       ` Thomas Monjalon
2017-02-28  6:41         ` Yuanhan Liu
2017-03-01 10:15           ` Maxime Coquelin
2017-03-07 21:59     ` [PATCH v5 0/3] new API to free consumed buffers in Tx ring Thomas Monjalon
2017-03-09 20:51     ` [PATCH v6 " Billy McFall
2017-03-09 20:51       ` [PATCH v6 1/3] ethdev: " Billy McFall
2017-03-15 10:29         ` Olivier Matz
2017-03-15 15:01           ` Billy McFall [this message]
2017-03-15 10:30         ` Thomas Monjalon
2017-03-09 20:51       ` [PATCH v6 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-03-13  3:17         ` Lu, Wenzhuo
2017-03-09 20:51       ` [PATCH v6 3/3] net/vhost: vHost " Billy McFall
2017-03-15 10:27         ` Thomas Monjalon
2017-03-15 18:02       ` [PATCH v7 0/3] new API to free consumed buffers in Tx ring Billy McFall
2017-03-15 18:02         ` [PATCH v7 1/3] ethdev: " Billy McFall
2017-03-23 10:37           ` Olivier MATZ
2017-03-23 13:32             ` Billy McFall
2017-03-24 12:46               ` Olivier Matz
2017-03-24 13:18                 ` Billy McFall
2017-03-24 13:30                   ` Olivier Matz
2017-03-15 18:02         ` [PATCH v7 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-03-15 18:02         ` [PATCH v7 3/3] net/vhost: vHost " Billy McFall
2017-03-15 20:25         ` [PATCH v7 0/3] new API to free consumed buffers in Tx ring Wiles, Keith
2017-03-24 18:55         ` [PATCH v8 " Billy McFall
2017-03-24 18:55           ` [PATCH v8 1/3] ethdev: " Billy McFall
2017-03-24 18:55           ` [PATCH v8 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-03-24 18:55           ` [PATCH v8 3/3] net/vhost: vHost " Billy McFall
2017-03-27 15:20           ` [PATCH v8 0/3] new API to free consumed buffers in Tx ring Thomas Monjalon
2017-04-19 16:25           ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKLkqD6_T-wbZGjwy0RsxoaCyiNVAjmJwAtHftZ9rCU_RcBMZg@mail.gmail.com \
    --to=bmcfall@redhat.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    --cc=thomas.monjalon@6wind.com \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.