netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* mlx5 stable backport help
@ 2019-02-20  6:36 David Miller
  2019-02-20 20:01 ` Saeed Mahameed
  0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2019-02-20  6:36 UTC (permalink / raw)
  To: saeedm; +Cc: ogerlitz, netdev


Saeed and Or,

I need help backporting two changes for -stable.  Namely:

6707f74be8621ae067d2cf1c4485900e2742c20f ("net/mlx5e: Update hw flows when encap source mac changed")
218d05ce326f9e1b40a56085431fa1068b43d5d9 ("net/mlx5e: Don't overwrite pedit action when multiple pedit used")

For example, with the first one, not only has the code moved into
tc_tun.c but also we require the addition of get_route_and_out_devs(),
the passing in of the &route_dev, and also all of the new
dst_is_lag_dev logic.  That's like 4 or 5 commits worth.

Thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-20  6:36 mlx5 stable backport help David Miller
@ 2019-02-20 20:01 ` Saeed Mahameed
  2019-02-20 20:27   ` David Miller
  2019-02-21 10:21   ` Or Gerlitz
  0 siblings, 2 replies; 9+ messages in thread
From: Saeed Mahameed @ 2019-02-20 20:01 UTC (permalink / raw)
  To: davem; +Cc: netdev, Or Gerlitz

On Tue, 2019-02-19 at 22:36 -0800, David Miller wrote:
> Saeed and Or,
> 
> I need help backporting two changes for -stable.  Namely:

Hi Dave Thanks for trying, 

> 
> 6707f74be8621ae067d2cf1c4485900e2742c20f ("net/mlx5e: Update hw flows
> when encap source mac changed")

The fixes tag of the above commit is wrong and it should have been

commit e32ee6c78efa6a32bff782bbe7a9970b018996ca 
Author: Eli Britstein <elibr@mellanox.com>
Date:   Mon Dec 3 17:09:54 2018 +0200

    net/mlx5e: Support tunnel encap over tagged Ethernet

Before this patch we didn't have the support for "tunnel encap over
tagged Ethernet" which introduced the whole route_dev logic to generate
the encap headers, so the patch should only exist in -rc, let's just
skip it.

> 218d05ce326f9e1b40a56085431fa1068b43d5d9 ("net/mlx5e: Don't overwrite
> pedit action when multiple pedit used")
> 

I tried and this patch applies smoothly on 4.19.

let me know if you need further assistance.

Thanks,
Saeed

> For example, with the first one, not only has the code moved into
> tc_tun.c but also we require the addition of
> get_route_and_out_devs(),
> the passing in of the &route_dev, and also all of the new
> dst_is_lag_dev logic.  That's like 4 or 5 commits worth.
> 
> Thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-20 20:01 ` Saeed Mahameed
@ 2019-02-20 20:27   ` David Miller
  2019-02-20 23:58     ` Saeed Mahameed
  2019-02-21 10:21   ` Or Gerlitz
  1 sibling, 1 reply; 9+ messages in thread
From: David Miller @ 2019-02-20 20:27 UTC (permalink / raw)
  To: saeedm; +Cc: netdev, ogerlitz

From: Saeed Mahameed <saeedm@mellanox.com>
Date: Wed, 20 Feb 2019 20:01:00 +0000

> On Tue, 2019-02-19 at 22:36 -0800, David Miller wrote:
>> 218d05ce326f9e1b40a56085431fa1068b43d5d9 ("net/mlx5e: Don't overwrite
>> pedit action when multiple pedit used")
>> 
> 
> I tried and this patch applies smoothly on 4.19.

Does not apply to v4.19.24 which is the current stable release.

[davem@localhost linux-stable]$ git am QUEUE/mlx5e/0002-net-mlx5e-Don-t-overwrite-pedit-action-when-multiple.patch 
Applying: net/mlx5e: Don't overwrite pedit action when multiple pedit used
error: patch failed: drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:128
error: drivers/net/ethernet/mellanox/mlx5/core/en_tc.c: patch does not apply
Patch failed at 0001 net/mlx5e: Don't overwrite pedit action when multiple pedit used
hint: Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-20 20:27   ` David Miller
@ 2019-02-20 23:58     ` Saeed Mahameed
  2019-02-21  0:21       ` David Miller
  0 siblings, 1 reply; 9+ messages in thread
From: Saeed Mahameed @ 2019-02-20 23:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, Or Gerlitz

On Wed, 2019-02-20 at 12:27 -0800, David Miller wrote:
> From: Saeed Mahameed <saeedm@mellanox.com>
> Date: Wed, 20 Feb 2019 20:01:00 +0000
> 
> > On Tue, 2019-02-19 at 22:36 -0800, David Miller wrote:
> > > 218d05ce326f9e1b40a56085431fa1068b43d5d9 ("net/mlx5e: Don't
> > > overwrite
> > > pedit action when multiple pedit used")
> > > 
> > 
> > I tried and this patch applies smoothly on 4.19.
> 
> Does not apply to v4.19.24 which is the current stable release.
> 
> [davem@localhost linux-stable]$ git am QUEUE/mlx5e/0002-net-mlx5e-
> Don-t-overwrite-pedit-action-when-multiple.patch 
> Applying: net/mlx5e: Don't overwrite pedit action when multiple pedit
> used
> error: patch failed:
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:128
> error: drivers/net/ethernet/mellanox/mlx5/core/en_tc.c: patch does
> not apply
> Patch failed at 0001 net/mlx5e: Don't overwrite pedit action when
> multiple pedit used
> hint: Use 'git am --show-current-patch' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --
> abort".

Strange, worked for me: (I saw some warnings though!)

saeedm@sx1[linux](stbl/4.19)$ git cherry-pick
218d05ce326f9e1b40a56085431fa1068b43d5d9
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at
least 2119 and retry the command.
[stbl/4.19 efa42113bb1d] net/mlx5e: Don't overwrite pedit action when
multiple pedit used
 Author: Tonghao Zhang <xiangxia.m.yue@gmail.com>
 Date: Mon Jan 28 15:28:06 2019 -0800
 1 file changed, 15 insertions(+), 10 deletions(-)



saeedm@sx1[linux](stbl/4.19)$ git log --oneline
efa42113bb1d (HEAD -> stbl/4.19) net/mlx5e: Don't overwrite pedit
action when multiple pedit used
f287634fe321 (tag: v4.19.24, stable/linux-4.19.y) Linux 4.19.24
dd5f4d067a2c mm: proc: smaps_rollup: fix pss_locked calculation

I did what the git suggested and:
$ git config merge.renamelimit 2119

Tried again, it worked with now warnings.
Maybe you have some git config which fails on the warning i saw.. 

Thanks,
Saeed.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-20 23:58     ` Saeed Mahameed
@ 2019-02-21  0:21       ` David Miller
  2019-02-21  0:43         ` Saeed Mahameed
  0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2019-02-21  0:21 UTC (permalink / raw)
  To: saeedm; +Cc: netdev, ogerlitz

From: Saeed Mahameed <saeedm@mellanox.com>
Date: Wed, 20 Feb 2019 23:58:12 +0000

> Maybe you have some git config which fails on the warning i saw.. 

Put the actual commit into a patch using "git format-patch" then try
to use "git am" to apply it.

I'm not doing anything fancy.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-21  0:21       ` David Miller
@ 2019-02-21  0:43         ` Saeed Mahameed
  0 siblings, 0 replies; 9+ messages in thread
From: Saeed Mahameed @ 2019-02-21  0:43 UTC (permalink / raw)
  To: davem; +Cc: netdev, Or Gerlitz

On Wed, 2019-02-20 at 16:21 -0800, David Miller wrote:
> From: Saeed Mahameed <saeedm@mellanox.com>
> Date: Wed, 20 Feb 2019 23:58:12 +0000
> 
> > Maybe you have some git config which fails on the warning i saw.. 
> 
> Put the actual commit into a patch using "git format-patch" then try
> to use "git am" to apply it.
> 
> I'm not doing anything fancy.

I see, for some reason cherry-pick is happy to resolve the conflict
without human help.

Anyway the conflict is really simple and contextual, 2 hunks will fail

1) adding a new filed "max_mod_hdr_actions" to "struct
mlx5e_tc_flow_parse_attr"

2) at parse_tc_pedit_action() line 1924 :
replace:
-       err = alloc_mod_hdr_actions(priv, a, namespace, parse_attr);
-       if (err)
-               goto out_err;

with:
+       if (!parse_attr->mod_hdr_actions) {
+               err = alloc_mod_hdr_actions(priv, a, namespace,
parse_attr);
+               if (err)
+                       goto out_err;
+       }

all in drivers/net/ethernet/mellanox/mlx5/core/en_tc.c file
they fail since the surrounding code is slightly different.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-20 20:01 ` Saeed Mahameed
  2019-02-20 20:27   ` David Miller
@ 2019-02-21 10:21   ` Or Gerlitz
  2019-02-21 22:35     ` Saeed Mahameed
  1 sibling, 1 reply; 9+ messages in thread
From: Or Gerlitz @ 2019-02-21 10:21 UTC (permalink / raw)
  To: Saeed Mahameed; +Cc: davem, netdev, Or Gerlitz

On Wed, Feb 20, 2019 at 10:03 PM Saeed Mahameed <saeedm@mellanox.com> wrote:
> On Tue, 2019-02-19 at 22:36 -0800, David Miller wrote:

>> I need help backporting two changes for -stable.  Namely:
> Hi Dave Thanks for trying,

here too

> > 6707f74be8621ae067d2cf1c4485900e2742c20f ("net/mlx5e: Update hw flows
> > when encap source mac changed")
>
> The fixes tag of the above commit is wrong and it should have been
>
> commit e32ee6c78efa6a32bff782bbe7a9970b018996ca
> Author: Eli Britstein <elibr@mellanox.com>
> Date:   Mon Dec 3 17:09:54 2018 +0200
>
>     net/mlx5e: Support tunnel encap over tagged Ethernet
>
> Before this patch we didn't have the support for "tunnel encap over
> tagged Ethernet" which introduced the whole route_dev logic to generate
> the encap headers, so the patch should only exist in -rc, let's just skip it.

Hi Saeed,

The issue exists prior to the commit you mentioned, we are doing this
code since day one of
tc tunnel offloads support which lacked the neigh update flow

linux-stable.git]# git grep -pe "eth->h_source"
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c=static void
gen_vxlan_header_ipv4(struct net_device *out_dev,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:
ether_addr_copy(eth->h_source, out_dev->dev_addr);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c=static void
gen_vxlan_header_ipv6(struct net_device *out_dev,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:
ether_addr_copy(eth->h_source, out_dev->dev_addr);

later when 232c001398ae ("net/mlx5e: Add support to neighbour update
flow") was done, we went short
and did not address the case of source address change. Until the
commit you mentioned, we didn't have the
out_dev vs route_dev notion, but the problem exists and it's possible
to backport the patch by

[1] using  e->out_dev instead of e->route_dev
[2] use the hunks from mlx5e_tc_tun_create_header_ipv4/6() in
mlx5e_create_encap_header_ipv4/6()

Or.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-21 10:21   ` Or Gerlitz
@ 2019-02-21 22:35     ` Saeed Mahameed
  2019-02-22  9:13       ` Or Gerlitz
  0 siblings, 1 reply; 9+ messages in thread
From: Saeed Mahameed @ 2019-02-21 22:35 UTC (permalink / raw)
  To: gerlitz.or; +Cc: davem, netdev, Or Gerlitz

On Thu, 2019-02-21 at 12:21 +0200, Or Gerlitz wrote:
> On Wed, Feb 20, 2019 at 10:03 PM Saeed Mahameed <saeedm@mellanox.com>
> wrote:
> > On Tue, 2019-02-19 at 22:36 -0800, David Miller wrote:
> > > I need help backporting two changes for -stable.  Namely:
> > Hi Dave Thanks for trying,
> 
> here too
> 
> > > 6707f74be8621ae067d2cf1c4485900e2742c20f ("net/mlx5e: Update hw
> > > flows
> > > when encap source mac changed")
> > 
> > The fixes tag of the above commit is wrong and it should have been
> > 
> > commit e32ee6c78efa6a32bff782bbe7a9970b018996ca
> > Author: Eli Britstein <elibr@mellanox.com>
> > Date:   Mon Dec 3 17:09:54 2018 +0200
> > 
> >     net/mlx5e: Support tunnel encap over tagged Ethernet
> > 
> > Before this patch we didn't have the support for "tunnel encap over
> > tagged Ethernet" which introduced the whole route_dev logic to
> > generate
> > the encap headers, so the patch should only exist in -rc, let's
> > just skip it.
> 
> Hi Saeed,
> 
> The issue exists prior to the commit you mentioned, we are doing this
> code since day one of
> tc tunnel offloads support which lacked the neigh update flow
> 
> linux-stable.git]# git grep -pe "eth->h_source"
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c=static void
> gen_vxlan_header_ipv4(struct net_device *out_dev,
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:
> ether_addr_copy(eth->h_source, out_dev->dev_addr);
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c=static void
> gen_vxlan_header_ipv6(struct net_device *out_dev,
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c:
> ether_addr_copy(eth->h_source, out_dev->dev_addr);
> 
> later when 232c001398ae ("net/mlx5e: Add support to neighbour update
> flow") was done, we went short
> and did not address the case of source address change. Until the
> commit you mentioned, we didn't have the
> out_dev vs route_dev notion, but the problem exists and it's possible
> to backport the patch by
> 

So we all agree that the offending patch is "net/mlx5e: Support tunnel
encap over tagged Ethernet" even if the issue existed before, 
in order to fix the issue you will have to port not only this patch but
the whole series which claimed to fix the issue, so the fixes tag was
wrong.. this patch on its own is no good.

> [1] using  e->out_dev instead of e->route_dev
> [2] use the hunks from mlx5e_tc_tun_create_header_ipv4/6() in
> mlx5e_create_encap_header_ipv4/6()
> 
> Or.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mlx5 stable backport help
  2019-02-21 22:35     ` Saeed Mahameed
@ 2019-02-22  9:13       ` Or Gerlitz
  0 siblings, 0 replies; 9+ messages in thread
From: Or Gerlitz @ 2019-02-22  9:13 UTC (permalink / raw)
  To: Saeed Mahameed; +Cc: davem, netdev, Or Gerlitz, Roi Dayan

On Fri, Feb 22, 2019 at 12:35 AM Saeed Mahameed <saeedm@mellanox.com> wrote:
> On Thu, 2019-02-21 at 12:21 +0200, Or Gerlitz wrote:

> So we all agree that the offending patch is "net/mlx5e: Support tunnel
> encap over tagged Ethernet" even if the issue existed before,

as you said the issue existed before we added support for offloading
tunnels in the presence of vlan on the underlay, it's like this since 4.12
when we introduced support for neigh update in 232c001398ae "net/mlx5e:
Add support to neighbour update flow" which is basically the one to blame/fix

since some code was moved and some code was added (e->route_dev)
backporting the patch without pulling more patches can be done as I sketched
below.

Anyway, we can maybe let it go without backporting, production environments
are typically not changing their source mac in prime time. So this can be seen
more as future proofing.

> in order to fix the issue you will have to port not only this patch but
> the whole series which claimed to fix the issue, so the fixes tag was
> wrong.. this patch on its own is no good.

>> [1] using  e->out_dev instead of e->route_dev
>> [2] use the hunks from mlx5e_tc_tun_create_header_ipv4/6() in
>> mlx5e_create_encap_header_ipv4/6()

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-02-22  9:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-20  6:36 mlx5 stable backport help David Miller
2019-02-20 20:01 ` Saeed Mahameed
2019-02-20 20:27   ` David Miller
2019-02-20 23:58     ` Saeed Mahameed
2019-02-21  0:21       ` David Miller
2019-02-21  0:43         ` Saeed Mahameed
2019-02-21 10:21   ` Or Gerlitz
2019-02-21 22:35     ` Saeed Mahameed
2019-02-22  9:13       ` Or Gerlitz

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).