DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Ivan Malov <ivan.malov@arknetworks.am>
Cc: Rongwei Liu <rongweil@nvidia.com>, Matan Azrad <matan@nvidia.com>,
	Slava Ovsiienko <viacheslavo@nvidia.com>,
	Ori Kam <orika@nvidia.com>,
	Aman Singh <aman.deep.singh@intel.com>,
	Yuying Zhang <yuying.zhang@intel.com>,
	Ferruh Yigit <ferruh.yigit@amd.com>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	"dev@dpdk.org" <dev@dpdk.org>,
	Raslan Darawsheh <rasland@nvidia.com>
Subject: Re: [PATCH v7] ethdev: add special flags when creating async transfer table
Date: Wed, 01 Feb 2023 14:37:09 +0100	[thread overview]
Message-ID: <2807682.yaVYbkx8dN@thomas> (raw)
In-Reply-To: <b2d7491-e2f0-1729-4084-4a1814e62db@arknetworks.am>

01/02/2023 12:50, Ivan Malov:
> On Wed, 1 Feb 2023, Thomas Monjalon wrote:
> > 31/01/2023 06:30, Ivan Malov:
> >> I still hope community will comment on the possibility to
> >> provide a hint mechanism for always-the-same match items,
> >> with the perspective of becoming more versatile.
> >
> > Any hint could be imagined.
> > But please keep this in mind: a hint is *not* a matching criteria,
> > for the simple reason that a hint can be ignored by the PMD.
> > So you cannot use a hint to avoid specifying a match item,
> > but you could use a hint to specify that an item is the same
> > for all the rules of a table.
> 
> Reading the same thought expressed in your words, the penny drops.
> So, a hint then. But even not being a match criterion itself, it
> is still confined to knowledge about a too special particularity.
> If one needs to add similar hints for other aspects of matching,
> they will have to add more and more bits to this namespace.
> So why at all detach the namespace of hints from such of
> the match items? A more generic solution might be needed.

The hints are not necessarily related to the matching.
That's why it is more flexible to have separate definitions.

> In another email of yours, [1], you suggest that documentation be
> improved. But it seems that addressing the "fixed match" issue
> described by Ori (in the quote) could be that "more generic"
> approach. For example, if one added "always_fixed_spec" bit
> to struct rte_flow_item, this bit could be taken into
> account by PMD in rte_flow_pattern_template_create().
> When it has spotted this bit for item ANY_VPORT,
> it will treat it the way this "specialise" hint
> does, collecting the same upfront knowledge.
> 
> Yes, I do acknowledge that encountering such a bit in
> a regular/sync flow parsing is irrelevant, but this
> is just a general idea and not the final proposal.

Yes it does not have sense outside of template table.

> Also, in mail [2], Ori talks about separate pipelines
> for ingress and egress. That sheds some light on this
> hint, thanks. On the one hand, yes, vendors do tend
> to have separate pipelines for this, this and this,
> but, on the other hand, assuming this particular
> separation of pipelines and making a customised
> hint for it might not be quite generic. It is
> that special particularity which I am talking
> about in the first paragraph of my response.
> 
> So why not combine addressing "fixed match" items
> and solving the problem of this "direction" hint?

I agree we should try to better address templates
with some fixed matching items, but we could still need
to have some hints for other kind of optimizations.

> Again, I can't come up with an immediate example
> of how precisely this could be useful, but since
> DPDK strives to being as much generic/neutral as
> possible, then why not consider this?

I agree the hints may be quite vendor-specifics,
but they are optional and does not hurt vendors not implementing them.
For applications supporting many drivers,
they can use some hints without losing portability.

So I don't think such approach is against genericity or neutrality,
it is just bringing some flexibility for the best performances.
And in DPDK, the first priority is the performance.

> [1] https://mails.dpdk.org/archives/dev/2023-February/260667.html
> [2] https://mails.dpdk.org/archives/dev/2023-February/260668.html
> 
> >> Other
> >> than that, your current patch might be OK, but, again,
> >> I think other reviewers' comments (if any) shall
> >> be addressed. But no strong objections from me.
> >>
> >> By the way, for this "specialise" field, in your opinion,
> >> which extra flags could emerge in future / would be nice
> >> to have? I mean, is there any concept of what can be
> >> added to this field's namespace and what can't be?
> >
> > I think there is no limit with hint flags to be added.
> > I repeat it again: hints can be ignored by the PMDs.
> 
> Thank you.

The template flow API is experimental and will probably remain as such
for a long time, so if you find a more elegant approach,
we will consider it.
But given we don't know how to make it better today,
and there is no real problem with its definition,
I don't see a reason to postpone its integration as experimental.

In my opinion, having hint is good.
The real discussion is on the flags.
If we find how to manage the same optimization without these flags,
we could drop them, but the hint flexibility should remain.



  reply	other threads:[~2023-02-01 13:37 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07  2:40 [PATCH v1] ethdev: add direction info when creating the " Rongwei Liu
2022-09-11  8:22 ` Ori Kam
2022-09-12 16:57 ` Ivan Malov
2022-09-13 13:46   ` Rongwei Liu
2022-09-13 14:33     ` Ivan Malov
2022-09-14  5:16       ` Rongwei Liu
2022-09-14  7:32         ` Ivan Malov
2022-09-14 10:17           ` Rongwei Liu
2022-09-14 15:18             ` Ivan Malov
2022-09-14 21:02               ` Thomas Monjalon
2022-09-15  0:58               ` Rongwei Liu
2022-09-15  7:47                 ` Ivan Malov
2022-09-15  8:18                   ` Thomas Monjalon
2022-09-15  9:42                     ` Ivan Malov
2022-09-15  8:48                   ` Rongwei Liu
2022-09-15 10:59                     ` Ivan Malov
2022-09-15 11:16                       ` Thomas Monjalon
2022-09-20  9:41                         ` Ori Kam
2022-09-20 12:45                           ` Ivan Malov
2022-09-20 13:59                             ` Ori Kam
2022-09-20 15:28                               ` Ivan Malov
2022-09-21  7:34                                 ` Ori Kam
2022-09-21  8:39                                   ` Andrew Rybchenko
2022-09-21  9:04                                   ` Ivan Malov
2022-09-21  9:40                                     ` Thomas Monjalon
2022-09-21 10:04                                       ` Andrew Rybchenko
2022-09-21 12:41                                         ` Ori Kam
2022-09-21 12:51                                           ` Morten Brørup
2022-09-22  7:39                                             ` Andrew Rybchenko
2022-09-22 10:06                                               ` Ori Kam
2022-09-22 10:31                                                 ` Andrew Rybchenko
2022-09-22 13:00                                                   ` Ori Kam
2022-09-23  7:25                                                     ` Andrew Rybchenko
2022-09-23 16:11                                                       ` Ori Kam
2022-09-22 12:43                                                 ` Ivan Malov
2022-09-22 14:46                                                   ` Ori Kam
2022-09-28  9:24       ` [PATCH v3] ethdev: add hint when creating async " Rongwei Liu
2022-10-04  8:31         ` Andrew Rybchenko
2022-11-04 10:42           ` [PATCH v4] ethdev: add special flags " Rongwei Liu
2022-11-04 10:44           ` Rongwei Liu
2022-11-08 11:39             ` Andrew Rybchenko
2022-11-08 11:47               ` Andrew Rybchenko
2022-11-08 13:29                 ` Thomas Monjalon
2022-11-08 14:38                   ` Andrew Rybchenko
2022-11-08 15:25                     ` Thomas Monjalon
2022-11-09  8:53                       ` Andrew Rybchenko
2022-11-09  9:03                         ` Thomas Monjalon
2022-11-09  9:36                           ` Andrew Rybchenko
2022-11-09 10:50                             ` Thomas Monjalon
2022-11-06 10:02           ` [PATCH v3] ethdev: add hint " Andrew Rybchenko
2022-11-07  1:58             ` Rongwei Liu
2022-11-08  9:19             ` Thomas Monjalon
2022-11-08  9:35               ` Andrew Rybchenko
2022-11-08 11:18                 ` Thomas Monjalon
2022-11-08 11:48                   ` Andrew Rybchenko
2022-11-14  8:47                     ` [PATCH v6] ethdev: add special flags " Rongwei Liu
2022-11-14 11:59                     ` [PATCH v7] " Rongwei Liu
2023-01-17 15:13                       ` Ferruh Yigit
2023-01-17 17:01                         ` Ferruh Yigit
2023-01-18  2:50                           ` Rongwei Liu
2023-01-18  7:30                         ` Andrew Rybchenko
2023-01-18  7:28                       ` Andrew Rybchenko
2023-01-18 16:18                         ` Thomas Monjalon
2023-02-01 10:17                           ` Andrew Rybchenko
2023-02-01 10:58                             ` Thomas Monjalon
2023-02-01 11:10                               ` Andrew Rybchenko
2023-02-01 11:18                                 ` Thomas Monjalon
2023-02-01 11:38                                   ` Andrew Rybchenko
2023-02-01 13:48                                     ` Thomas Monjalon
2023-02-02  9:21                                       ` Andrew Rybchenko
2023-02-02 11:29                                         ` Thomas Monjalon
2023-02-02 12:24                                           ` Andrew Rybchenko
2023-02-01 11:22                                 ` Ori Kam
2023-02-01 11:29                                   ` Andrew Rybchenko
2023-02-01 11:12                               ` Ori Kam
2023-02-01 11:20                                 ` Thomas Monjalon
2023-01-30  0:00                       ` Ivan Malov
2023-01-30  2:34                         ` Rongwei Liu
2023-01-30  7:40                           ` Ivan Malov
2023-01-30 14:49                             ` Rongwei Liu
2023-01-30 23:00                               ` Ivan Malov
2023-01-31  3:06                                 ` Rongwei Liu
2023-01-31  5:30                                   ` Ivan Malov
2023-01-31  6:14                                     ` Rongwei Liu
2023-02-01 10:12                                     ` Thomas Monjalon
2023-02-01 11:50                                       ` Ivan Malov
2023-02-01 13:37                                         ` Thomas Monjalon [this message]
2023-02-01 14:04                                           ` Ivan Malov
2023-02-01 14:23                                             ` Thomas Monjalon
2023-02-01 14:29                                             ` Ori Kam
2023-02-02 11:19                       ` [PATCH v8] ethdev: add optimization hints in flow template table Rongwei Liu
2023-02-02 11:33                         ` Thomas Monjalon
2023-02-08 23:19                           ` Ferruh Yigit
2022-11-09  8:11           ` [PATCH v5] ethdev: add special flags when creating async transfer table Rongwei Liu
2022-11-09  8:13           ` Rongwei Liu
2022-11-09  8:31             ` 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=2807682.yaVYbkx8dN@thomas \
    --to=thomas@monjalon.net \
    --cc=aman.deep.singh@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=ivan.malov@arknetworks.am \
    --cc=matan@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=rasland@nvidia.com \
    --cc=rongweil@nvidia.com \
    --cc=viacheslavo@nvidia.com \
    --cc=yuying.zhang@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 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).