DPDK patches and discussions
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Gaetan Rivet <gaetan.rivet@6wind.com>,
	dev@dpdk.org, Thomas Monjalon <thomas@monjalon.net>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Olivier MATZ <olivier.matz@6wind.com>
Subject: Re: [dpdk-dev] [PATCH v1 0/7] Flow API helpers enhancements
Date: Fri, 13 Oct 2017 12:42:51 +0200	[thread overview]
Message-ID: <20171013104251.GB13551@6wind.com> (raw)
In-Reply-To: <c7b8359a-e381-c03a-dbcd-4359a7cefba7@intel.com>

On Thu, Oct 12, 2017 at 05:37:41PM +0100, Ferruh Yigit wrote:
> On 10/12/2017 1:53 PM, Adrien Mazarguil wrote:
> > On Wed, Oct 11, 2017 at 07:07:29PM +0100, Ferruh Yigit wrote:
> >> On 10/11/2017 10:57 AM, Adrien Mazarguil wrote:
> >>> On Tue, Oct 10, 2017 at 07:05:30PM +0100, Ferruh Yigit wrote:
> > <snip>
> >>>> After above said, API changes one week before integration deadline, a
> >>>> new script and make target for automated header file, I am a little
> >>>> scared :), I will be much relieved to get this in the beginning of the
> >>>> next release cycle.
> >>>
> >>> I can drop the script from this series to speed up inclusion if it there's
> >>> any concern about it. It's only a helper to update rte_flow_conv.h after
> >>> modifying rte_flow.h, I thought it could be useful to anyone, hence I've
> >>> included it but it's pretty much optional.
> >>>
> >>>> I would like to see more comment on this, specially from PMD maintainers.
> >>>
> >>> Me too. I don't even mind negative ones!
> >>>
> >>> Here's what I plan to do regardless, seeing most concerns so far are with
> >>> rte_flow_copy()/rte_flow_conv():
> >>>
> >>> - Whether this series is included for 17.11 or later, a v2 is already
> >>>   necessary.
> >>>
> >>> - I will drop the rte_flow_error() change to submit it instead along another
> >>>   upcoming series for mlx4 where it's the most needed.
> >>>
> >>> - We'll then continue to discuss rte_flow_conv() as a something nice to have
> >>>   but not super urgent to integrate and I'll keep trying to convince
> >>>   everyone it's safe enough.
> >>>
> >>> - Once it becomes clear there's no way to have it for 17.11, I'll update
> >>>   this series as a somewhat late deprecation notice for rte_flow_copy().
> >>>
> >>> Sounds good?
> >>
> >> OK. Lets get rte_flow_error() change and not block mlx4 changes.
> >>
> >> And I still suggest waiting beginning of the release for rest of the
> >> patch. So it can come with optional header auto generation.
> > 
> > OK, I will re-submit an updated version later then.
> > 
> >> Related to the rte_flow_error_set() modification, as far as I can see it
> >> doesn't effect drivers but following drivers are now using it:
> >>
> >> drivers/net/bnxt/
> >> drivers/net/e1000/
> >> drivers/net/enic/
> >> drivers/net/i40e/
> >> drivers/net/ixgbe/
> >> drivers/net/mlx4/
> >> drivers/net/mlx5/
> >> drivers/net/sfc/
> >> drivers/net/tap/
> >>
> >> There is already tap and mlx4 fixes in the patch to fix
> >> "return -rte_flow_error_set(...)" kind of usage.
> >>
> >> Rest uses rte_flow_error_set() as:
> >>
> >> "
> >> rte_flow_error_set(...);
> >> return -rte_errno;
> >> "
> >>
> >> But now it can directly be used as:
> >> "
> >> return rte_flow_error_set(...);
> >> "
> >>
> >> What do you think updating to that usage?
> > 
> > Well, that is actually how I originally envisioned this function to be used,
> > but for whatever reason I thought a positive return value was the way to go
> > at the time. Too bad.
> > 
> >> Would you mind updating those drivers as above in a separate patch?
> > 
> > That would be nice but I'm not familiar with most of these PMDs (I'm
> > only updating mlx4 as part of the RSS resurrection series), and there's
> > always a risk of breaking something.
> 
> The change looks mechanical, so I believe it won't break anything.
> 
> Not directly related to this one, but including this one, recently we
> kind of have an agreement that library changes doesn't have to update
> every usage of it, because it is too much work and this is preventing
> improvements in libraries. (Because sometimes library implementer
> doesn't know PMD internals to update it properly.)
> 
> But currently I have list that PMDs needs to reflect some library work,
> and list is growing.
> 
> Let's assume this work go in without updating PMDs, I believe it will
> take some time for some PMDs even to recognize this can be changed.
> 
> So we either need to change our approach, or find an effective way to
> pass this information into PMDs. But I believe even passing this
> information won't be enough, each driver has their own roadmaps,
> resource allocation, some may tend to not apply these unless PMD is broken.
> 
> Any comments?

I'm generally fine with that, it should likely be considered on a case basis
though. Some API changes (e.g. port ID type) also can't avoid modifying all
PMDs at once.

It's more or less optional for those that do not break existing APIs,
depending on their impact. Say, if some new API involves something to be
done on the data path, all PMDs must be validated for performance
non-regression. This can't be done properly by people unfamiliar with
impacted PMDs (or who may benefit from decreasing performance of competing
PMDs :). Either way, if a PMD maintainer disagrees with a change in his/her
PMD for any reason, this should not block the API change from entering. The
patch for that specific PMD should be ignored in the meantime (possibly to
be reworked by one of its maintainers).

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2017-10-13 10:43 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-05  9:49 Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 1/7] ethdev: expose flow API error helper Adrien Mazarguil
2017-10-11  9:23   ` Thomas Monjalon
2017-10-11 11:56     ` Adrien Mazarguil
2017-10-11 19:05       ` Aaron Conole
2017-10-12 13:37         ` Neil Horman
2017-10-12 14:02         ` Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 2/7] ethdev: replace flow API object copy function Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 3/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 4/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 5/7] ethdev: enhance flow API item/action descriptions Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 6/7] ethdev: generate flow API conversion header Adrien Mazarguil
2017-10-05  9:49 ` [dpdk-dev] [PATCH v1 7/7] ethdev: update " Adrien Mazarguil
2017-10-06  1:13 ` [dpdk-dev] [PATCH v1 0/7] Flow API helpers enhancements Ferruh Yigit
2017-10-06  8:05   ` Adrien Mazarguil
2017-10-10 18:05     ` Ferruh Yigit
2017-10-11  9:57       ` Adrien Mazarguil
2017-10-11 18:07         ` Ferruh Yigit
2017-10-12 12:53           ` Adrien Mazarguil
2017-10-12 16:37             ` Ferruh Yigit
2017-10-13 10:42               ` Adrien Mazarguil [this message]
2018-08-03 13:36 ` [dpdk-dev] [PATCH v2 0/7] ethdev: add flow API object converter Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 1/7] " Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 2/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 3/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 4/7] net/failsafe: switch to flow API object " Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 5/7] net/bonding: " Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 6/7] ethdev: deprecate rte_flow_copy function Adrien Mazarguil
2018-08-03 13:36   ` [dpdk-dev] [PATCH v2 7/7] ethdev: add missing item/actions to flow object converter Adrien Mazarguil
2018-08-03 14:06   ` [dpdk-dev] [PATCH v2 0/7] ethdev: add flow API " Thomas Monjalon
2018-08-23 13:48   ` Ferruh Yigit
2018-08-27 15:14     ` Adrien Mazarguil
2018-08-24 10:58   ` Ferruh Yigit
2018-08-27 14:12     ` Adrien Mazarguil
2018-08-31  9:00   ` [dpdk-dev] [PATCH v3 " Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 1/7] " Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 2/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 3/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 4/7] net/failsafe: switch to flow API object " Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 5/7] net/bonding: " Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 6/7] ethdev: add missing items/actions to flow object converter Adrien Mazarguil
2018-08-31  9:01     ` [dpdk-dev] [PATCH v3 7/7] ethdev: deprecate rte_flow_copy function Adrien Mazarguil
2018-10-04 14:21       ` Ferruh Yigit
2018-08-31 11:32     ` [dpdk-dev] [PATCH v3 0/7] ethdev: add flow API object converter Nélio Laranjeiro
2018-10-03 20:31       ` Thomas Monjalon
2018-10-04 14: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=20171013104251.GB13551@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=gaetan.rivet@6wind.com \
    --cc=olivier.matz@6wind.com \
    --cc=thomas@monjalon.net \
    /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).