From: Saeed Mahameed <saeedm@mellanox.com>
To: Saeed Mahameed <saeedm@mellanox.com>,
Leon Romanovsky <leonro@mellanox.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
Bodong Wang <bodong@mellanox.com>,
Daniel Jurgens <danielj@mellanox.com>
Subject: [PATCH mlx5-next 09/18] net/mlx5: Don't handle VF func change if host PF is disabled
Date: Fri, 28 Jun 2019 22:36:04 +0000 [thread overview]
Message-ID: <20190628223516.9368-10-saeedm@mellanox.com> (raw)
In-Reply-To: <20190628223516.9368-1-saeedm@mellanox.com>
From: Bodong Wang <bodong@mellanox.com>
When ECPF eswitch manager is at offloads mode, it monitors functions
changed event from host PF side and acts according to the number of
VFs enabled/disabled.
As ECPF and host PF work in two independent hosts, it's possible that
host PF OS reboots but ECPF system is still kept on and continues
monitoring events from host PF. When kernel from host PF side is
booting, PCI iov driver does sriov_init and compute_max_vf_buses by
iterating over all valid num of VFs. This triggers FLR and generates
functions changed events, even though host PF HCA is not enabled at
this time. However, ECPF is not aware of this information, and still
handles these events as usual. ECPF system will see massive number of
reps are created, but destroyed immediately once creation finished.
To eliminate this noise, a bit is added to host parameter context to
indicate host PF is disabled. ECPF will not handle the VF changed
event if this bit is set.
Signed-off-by: Bodong Wang <bodong@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 5 ++++-
include/linux/mlx5/mlx5_ifc.h | 3 ++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 24af2744453b..105c21069c0c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2026,6 +2026,7 @@ static void esw_functions_changed_event_handler(struct work_struct *work)
u32 out[MLX5_ST_SZ_DW(query_esw_functions_out)] = {};
struct mlx5_host_work *host_work;
struct mlx5_eswitch *esw;
+ bool host_pf_disabled;
u16 num_vfs = 0;
int err;
@@ -2035,7 +2036,9 @@ static void esw_functions_changed_event_handler(struct work_struct *work)
err = mlx5_esw_query_functions(esw->dev, out, sizeof(out));
num_vfs = MLX5_GET(query_esw_functions_out, out,
host_params_context.host_num_of_vfs);
- if (err || num_vfs == esw->esw_funcs.num_vfs)
+ host_pf_disabled = MLX5_GET(query_esw_functions_out, out,
+ host_params_context.host_pf_disabled);
+ if (err || host_pf_disabled || num_vfs == esw->esw_funcs.num_vfs)
goto out;
/* Number of VFs can only change from "0 to x" or "x to 0". */
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index e2a77b5152a8..031db53e94ce 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -9823,7 +9823,8 @@ struct mlx5_ifc_mtrc_ctrl_bits {
struct mlx5_ifc_host_params_context_bits {
u8 host_number[0x8];
- u8 reserved_at_8[0x8];
+ u8 reserved_at_8[0x7];
+ u8 host_pf_disabled[0x1];
u8 host_num_of_vfs[0x10];
u8 host_total_vfs[0x10];
--
2.21.0
next prev parent reply other threads:[~2019-06-28 22:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-28 22:35 [PATCH mlx5-next 00/18] Mellanox, mlx5 E-Switch and low level updates Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 01/18] net/mlx5: Add hardware definitions for sub functions Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 02/18] net/mlx5: Added MCQI and MCQS registers' description to ifc Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 03/18] net/mlx5: E-Switch, Use vport index when init rep Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 04/18] {IB, net}/mlx5: E-Switch, Use index of rep for vport to IB port mapping Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 05/18] RDMA/mlx5: Cleanup rep when doing unload Saeed Mahameed
2019-06-28 22:35 ` [PATCH mlx5-next 06/18] net/mlx5: Rename mlx5_pci_dev_type to mlx5_coredev_type Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 07/18] net/mlx5: Move pci status reg access mutex to mlx5_pci_init Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 08/18] net/mlx5: Limit scope of mlx5_get_next_phys_dev() to PCI PF devices Saeed Mahameed
2019-06-28 22:36 ` Saeed Mahameed [this message]
2019-06-28 22:36 ` [PATCH mlx5-next 10/18] net/mlx5: Reduce dependency on enabled_vfs counter and num_vfs Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 11/18] net/mlx5: E-Switch, Use correct flags when configuring vlan Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 12/18] net/mlx5: Handle host PF vport mac/guid for ECPF Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 13/18] net/mlx5: E-Switch, Refactor eswitch SR-IOV interface Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 14/18] net/mlx5: E-Switch, Consolidate eswitch function number of VFs Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 15/18] net/mlx5: E-Switch, Reg/unreg function changed event at correct stage Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 16/18] net/mlx5: E-Switch, Use iterator for vlan and min-inline setups Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 17/18] net/mlx5: E-Switch, Consider host PF for inline mode and vlan pop Saeed Mahameed
2019-06-28 22:36 ` [PATCH mlx5-next 18/18] net/mlx5: E-Switch, Handle UC address change in switchdev mode Saeed Mahameed
2019-07-01 23:46 ` [PATCH mlx5-next 00/18] Mellanox, mlx5 E-Switch and low level updates Saeed Mahameed
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=20190628223516.9368-10-saeedm@mellanox.com \
--to=saeedm@mellanox.com \
--cc=bodong@mellanox.com \
--cc=danielj@mellanox.com \
--cc=leonro@mellanox.com \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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