DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Xueming(Steven) Li" <xuemingl@nvidia.com>
To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Slava Ovsiienko <viacheslavo@nvidia.com>,
	Ferruh Yigit <ferruh.yigit@intel.com>,
	"Andrew Rybchenko" <arybchenko@solarflare.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"declan.doherty@intel.com" <declan.doherty@intel.com>
Cc: Andrey Vesnovaty <andreyv@nvidia.com>,
	NBU-Contact-Thomas Monjalon <thomas@monjalon.net>,
	Ray Kinsella <mdr@ashroe.eu>, Neil Horman <nhorman@tuxdriver.com>,
	Ori Kam <orika@nvidia.com>, Matan Azrad <matan@nvidia.com>,
	Shahaf Shuler <shahafs@nvidia.com>,
	Jasvinder Singh <jasvinder.singh@intel.com>,
	Cristian Dumitrescu <cristian.dumitrescu@intel.com>,
	Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	Qiming Yang <qiming.yang@intel.com>,
	Qi Zhang <qi.z.zhang@intel.com>
Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters using action attribute
Date: Tue, 3 Nov 2020 13:34:46 +0000	[thread overview]
Message-ID: <BY5PR12MB4324F721EEEAF833EACFA138A1110@BY5PR12MB4324.namprd12.prod.outlook.com> (raw)
In-Reply-To: <673524bd-67e3-1997-018c-70e4c830f9e3@oktetlabs.ru>


> -----Original Message-----
> From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Sent: Tuesday, November 3, 2020 1:56 AM
> To: Slava Ovsiienko <viacheslavo@nvidia.com>; Ferruh Yigit
> <ferruh.yigit@intel.com>; Xueming(Steven) Li <xuemingl@nvidia.com>;
> Andrew Rybchenko <arybchenko@solarflare.com>; dev@dpdk.org;
> declan.doherty@intel.com
> Cc: Andrey Vesnovaty <andreyv@nvidia.com>; NBU-Contact-Thomas
> Monjalon <thomas@monjalon.net>; Ray Kinsella <mdr@ashroe.eu>; Neil
> Horman <nhorman@tuxdriver.com>; Ori Kam <orika@nvidia.com>; Wei Hu
> (Xavier) <xavier.huwei@huawei.com>; Min Hu (Connor)
> <humin29@huawei.com>; Yisen Zhuang <yisen.zhuang@huawei.com>; Lijun
> Ou <oulijun@huawei.com>; Matan Azrad <matan@nvidia.com>; Shahaf
> Shuler <shahafs@nvidia.com>; Jasvinder Singh <jasvinder.singh@intel.com>;
> Cristian Dumitrescu <cristian.dumitrescu@intel.com>; Ajit Khaparde
> <ajit.khaparde@broadcom.com>; Somnath Kotur
> <somnath.kotur@broadcom.com>; Qiming Yang <qiming.yang@intel.com>;
> Qi Zhang <qi.z.zhang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters using
> action attribute
> 
> On 11/2/20 8:48 PM, Slava Ovsiienko wrote:
> >> -----Original Message-----
> >> From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> >> Sent: Monday, November 2, 2020 18:40
> >> To: Slava Ovsiienko <viacheslavo@nvidia.com>; Ferruh Yigit
> >> <ferruh.yigit@intel.com>; Xueming(Steven) Li <xuemingl@nvidia.com>;
> >> Andrew Rybchenko <arybchenko@solarflare.com>; dev@dpdk.org;
> >> declan.doherty@intel.com
> >> Cc: Andrey Vesnovaty <andreyv@nvidia.com>; NBU-Contact-Thomas
> >> Monjalon <thomas@monjalon.net>; Ray Kinsella <mdr@ashroe.eu>; Neil
> >> Horman <nhorman@tuxdriver.com>; Ori Kam <orika@nvidia.com>; Wei
> Hu
> >> (Xavier) <xavier.huwei@huawei.com>; Min Hu (Connor)
> >> <humin29@huawei.com>; Yisen Zhuang <yisen.zhuang@huawei.com>;
> Lijun
> >> Ou <oulijun@huawei.com>; Matan Azrad <matan@nvidia.com>; Shahaf
> >> Shuler <shahafs@nvidia.com>; Jasvinder Singh
> >> <jasvinder.singh@intel.com>; Cristian Dumitrescu
> >> <cristian.dumitrescu@intel.com>; Ajit Khaparde
> >> <ajit.khaparde@broadcom.com>; Somnath Kotur
> >> <somnath.kotur@broadcom.com>; Qiming Yang
> <qiming.yang@intel.com>; Qi
> >> Zhang <qi.z.zhang@intel.com>
> >> Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters
> >> using action attribute
> >>
> >> On 11/2/20 7:12 PM, Slava Ovsiienko wrote:
> >>>> -----Original Message-----
> >>>> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >>>> Sent: Monday, November 2, 2020 18:01
> >>>> To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>;
> >> Xueming(Steven)
> >>>> Li <xuemingl@nvidia.com>; Andrew Rybchenko
> >>>> <arybchenko@solarflare.com>; dev@dpdk.org;
> declan.doherty@intel.com
> >>>> Cc: Andrey Vesnovaty <andreyv@nvidia.com>; NBU-Contact-Thomas
> >>>> Monjalon <thomas@monjalon.net>; Ray Kinsella <mdr@ashroe.eu>;
> Neil
> >>>> Horman <nhorman@tuxdriver.com>; Ori Kam <orika@nvidia.com>;
> Wei Hu
> >>>> (Xavier) <xavier.huwei@huawei.com>; Min Hu (Connor)
> >>>> <humin29@huawei.com>; Yisen Zhuang <yisen.zhuang@huawei.com>;
> >> Lijun
> >>>> Ou <oulijun@huawei.com>; Matan Azrad <matan@nvidia.com>;
> Shahaf
> >>>> Shuler <shahafs@nvidia.com>; Slava Ovsiienko
> >>>> <viacheslavo@nvidia.com>; Jasvinder Singh
> >>>> <jasvinder.singh@intel.com>; Cristian Dumitrescu
> >>>> <cristian.dumitrescu@intel.com>; Ajit Khaparde
> >>>> <ajit.khaparde@broadcom.com>; Somnath Kotur
> >>>> <somnath.kotur@broadcom.com>; Qiming Yang
> <qiming.yang@intel.com>;
> >> Qi
> >>>> Zhang <qi.z.zhang@intel.com>
> >>>> Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters
> >>>> using action attribute
> >>>>
> >>>> On 11/1/2020 10:45 AM, Andrew Rybchenko wrote:
> >>>>> On 10/30/20 7:12 PM, Xueming(Steven) Li wrote:
> >>>>>> Hi Andrew,
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew
> Rybchenko
> >>>>>>> Sent: Thursday, October 29, 2020 4:53 PM
> >>>>>>> To: dev@dpdk.org
> >>>>>>> Cc: Andrey Vesnovaty <andreyv@nvidia.com>; NBU-Contact-
> Thomas
> >>>>>>> Monjalon <thomas@monjalon.net>; Ferruh Yigit
> >>>>>>> <ferruh.yigit@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil
> >>>>>>> Horman <nhorman@tuxdriver.com>; Ori Kam <orika@nvidia.com>;
> >> Andrew
> >>>>>>> Rybchenko <andrew.rybchenko@oktetlabs.ru>
> >>>>>>> Subject: [dpdk-dev] [PATCH] ethdev: deprecate shared counters
> >>>>>>> using action attribute
> >>>>>>>
> >>>>>>> A new generic shared actions API may be used to create shared
> counter.
> >>>>>>> There is no point to keep duplicate COUNT action specific
> >>>>>>> capability to create shared counters.
> >>>>>>>
> >>>>>>> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> >>>>>>> ---
> >>>>>>> In fact, it looks like the next logical step is to remove struct
> >>>>>>> rte_flow_action_count completely since counter ID makes sense
> >>>>>>> for shared counters only. I think it will just make it easiser
> >>>>>>> to use COUNT
> >>>> action.
> >>>>>>> Comments are welcome.
> >>>>>>>
> >>>>>>>     doc/guides/rel_notes/deprecation.rst | 4 ++++
> >>>>>>>     lib/librte_ethdev/rte_flow.h         | 6 +++++-
> >>>>>>>     2 files changed, 9 insertions(+), 1 deletion(-)
> >>>>>>>
> >>>>>>> diff --git a/doc/guides/rel_notes/deprecation.rst
> >>>>>>> b/doc/guides/rel_notes/deprecation.rst
> >>>>>>> index 2e082499b8..4f3bac1a6d 100644
> >>>>>>> --- a/doc/guides/rel_notes/deprecation.rst
> >>>>>>> +++ b/doc/guides/rel_notes/deprecation.rst
> >>>>>>> @@ -138,6 +138,10 @@ Deprecation Notices
> >>>>>>>       will be limited to maximum 256 queues.
> >>>>>>>       Also compile time flag ``RTE_ETHDEV_QUEUE_STAT_CNTRS``
> >>>>>>> will be removed.
> >>>>>>>
> >>>>>>> +* ethdev: Attribute ``shared`` of the ``struct
> >>>>>>> +rte_flow_action_count``
> >>>>>>> +  is deprecated and will be removed in DPDK 21.11. Shared
> >>>>>>> +counters should
> >>>>>>> +  be managed using shared actions API
> >>>>>>> +(``rte_flow_shared_action_create``
> >>>>>>> etc).
> >>>>>>> +
> >>>>>>>     * cryptodev: support for using IV with all sizes is added,
> >>>>>>> J0 still can
> >>>>>>>       be used but only when IV length in following structs
> >>>>>>> ``rte_crypto_auth_xform``,
> >>>>>>>       ``rte_crypto_aead_xform`` is set to zero. When IV length
> >>>>>>> is greater or equal diff --git a/lib/librte_ethdev/rte_flow.h
> >>>>>>> b/lib/librte_ethdev/rte_flow.h index a8eac4deb8..2bb93d237a
> >>>>>>> 100644
> >>>>>>> --- a/lib/librte_ethdev/rte_flow.h
> >>>>>>> +++ b/lib/librte_ethdev/rte_flow.h
> >>>>>>> @@ -2287,6 +2287,9 @@ struct rte_flow_query_age {
> >>>>>>>      * Counters can be retrieved and reset through
> >>>>>>> ``rte_flow_query()``, see
> >>>>>>>      * ``struct rte_flow_query_count``.
> >>>>>>>      *
> >>>>>>> + * @deprecated Shared attribute is deprecated, use generic
> >>>>>>> + * RTE_FLOW_ACTION_TYPE_SHARED action.
> >>>>>>> + *
> >>>>>>>      * The shared flag indicates whether the counter is unique
> >>>>>>> to the flow rule the
> >>>>>>>      * action is specified with, or whether it is a shared counter.
> >>>>>>>      *
> >>>>>>> @@ -2299,7 +2302,8 @@ struct rte_flow_query_age {
> >>>>>>>      * to all ports within that switch domain.
> >>>>>>>      */
> >>>>>>>     struct rte_flow_action_count {
> >>>>>>> -    uint32_t shared:1; /**< Share counter ID with other flow rules.
> >>>>>>> */
> >>>>>>> +    /** @deprecated Share counter ID with other flow rules. */
> >>>>>>> +    uint32_t shared:1;
> >>>>>>>         uint32_t reserved:31; /**< Reserved, must be zero. */
> >>>>>>>         uint32_t id; /**< Counter ID. */
> >>>>>> Do you think id could be removed as well? neither non-shared flow
> >>>>>> counter query, nor shared action query.
> >>>>>
> >>>>> I'm not 100% sure, but yes, as I write above just after my Signed-off-by.
> >>>>>
> >>>>
> >>>> cc'ed Declan + maintainers of PMDs for the 'id' field, but as far
> >>>> as I can see it is used out of the 'shared' context, so I am for
> >>>> going on with existing patch for now.
> >>>>
> >>>> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >>>
> >>> It depends whether we are going to support multiple counters for the
> >>> same
> >> flow.
> >>
> >> Why? Query refers to a counter using action pointer. There is always
> >> one counter in one action. If you need more counters, just use more
> actions.
> >>
> > Honestly, I wonder if someone wants to use multiple counters in the same
> flow.
> > That might happen if we add some unique attributes to the counter
> > action (say, count some complex events/traffic params).
> >
> 
> It might make sense for shared counters, but it they are done using shared
> actions, we don't need ID as well.
> 

Flow 5 tuple flows, besides the per flow counter, some customer wants 
shared counter per stream type, per VM and per customer(owns group of VMs).
Shared counter action should work.


> > Action pointer in the rte_flow_query() is just a pointer to some
> > counter action describing the counter. If we drop id field (and only
> > action type COUNTER remains in action description) - there would be no
> > way to distinguish two (regular, not shared) counters in the flow. Which
> one should be returned on query?
> >
> 
> I thought that 'action' must be exactly the same pointer to actions array
> element specified on flow creation. It looks like I'm wrong.
> If so, yes, id is still required for non-shared many COUNT actions in the same
> flow. I doubt that we need it as well.
> Thanks for clarification.
> 

By using shared counter action, only one per flow counter allowed, no need
to support multiple per flow counters IMHO.

In current design, the user specified counter ID field of shared counter implies
additional mapping with PMD internal counter - another reason to deprecate
counter ID.

> >>> If there is the only counter per flow we could get rid of the "id"
> >>> field either. If it is still needed, PMDs should generate counter id
> >>> internally
> >> and id should not be exposed outside.
> >>>
> >>> With best regards, Slava
> >>>
> >>> PS. What about meters? The next good candidate to shared actions.
> >>>
> >>>
> >


  parent reply	other threads:[~2020-11-03 13:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-29  8:52 Andrew Rybchenko
2020-10-29 14:39 ` Ori Kam
2020-10-29 16:11   ` Thomas Monjalon
2020-11-01  7:49     ` Ori Kam
2020-11-03 17:21       ` Thomas Monjalon
2020-11-03 17:26         ` Andrew Rybchenko
2020-10-30 16:12 ` Xueming(Steven) Li
2020-11-01 10:45   ` Andrew Rybchenko
2020-11-02 16:01     ` Ferruh Yigit
2020-11-02 16:12       ` Slava Ovsiienko
2020-11-02 16:40         ` Andrew Rybchenko
2020-11-02 17:48           ` Slava Ovsiienko
2020-11-02 17:55             ` Andrew Rybchenko
2020-11-03 13:30               ` Xueming(Steven) Li
2020-11-03 13:34               ` Xueming(Steven) Li [this message]
2020-11-24 18:09       ` Ajit Khaparde
2020-11-26  9:08         ` Ori Kam
2020-11-26 12:23           ` Ferruh Yigit
2020-11-26 16:49             ` Ori Kam
2020-11-03 14:26 ` [dpdk-dev] [PATCH v2] " Andrew Rybchenko
2020-11-12 13:21   ` Ferruh Yigit
2020-11-24 17:51     ` Ferruh Yigit
2020-11-27 16:07     ` Bruce Richardson
2020-11-27 16:08     ` Bruce Richardson
2020-11-27 17:43       ` Ajit Khaparde
2020-11-27 18:11         ` Thomas Monjalon

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=BY5PR12MB4324F721EEEAF833EACFA138A1110@BY5PR12MB4324.namprd12.prod.outlook.com \
    --to=xuemingl@nvidia.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=andreyv@nvidia.com \
    --cc=arybchenko@solarflare.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jasvinder.singh@intel.com \
    --cc=matan@nvidia.com \
    --cc=mdr@ashroe.eu \
    --cc=nhorman@tuxdriver.com \
    --cc=orika@nvidia.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=shahafs@nvidia.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).