[v2] net/qede: change driver's default load parameter
Checks
Commit Message
Loading ecore clients (PMD or linux kernel driver) having different ecore
versions concurrently, is problematic from device's init/config
perspective. This fix changes driver's default load parameter to have
ecore version validated by MFW. All ecore clients having matching ecore
version should be allowed to load, otherwise MFW should fail the load
request.
Fixes: c5e1108920 ("alter driver's force load behavior")
Cc: stable@dpdk.org
Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Signed-off-by: Manish Chopra <manishc@marvell.com>
Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
---
doc/guides/nics/qede.rst | 5 ++++-
drivers/net/qede/qede_main.c | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
Comments
> -----Original Message-----
> From: Devendra Singh Rawat <dsinghrawat@marvell.com>
> Sent: Wednesday, January 6, 2021 6:50 PM
> To: dev@dpdk.org; Jerin Jacob Kollanukkaran <jerinj@marvell.com>;
> ferruh.yigit@intel.com
> Cc: GR-Everest-DPDK-Dev <GR-Everest-DPDK-Dev@marvell.com>; Igor
> Russkikh <irusskikh@marvell.com>; Rasesh Mody <rmody@marvell.com>;
> Manish Chopra <manishc@marvell.com>; Devendra Singh Rawat
> <dsinghrawat@marvell.com>; stable@dpdk.org
> Subject: [PATCH v2] net/qede: change driver's default load parameter
>
> Loading ecore clients (PMD or linux kernel driver) having different ecore
> versions concurrently, is problematic from device's init/config perspective. This
> fix changes driver's default load parameter to have ecore version validated by
> MFW. All ecore clients having matching ecore version should be allowed to
> load, otherwise MFW should fail the load request.
>
> Fixes: c5e1108920 ("alter driver's force load behavior")
> Cc: stable@dpdk.org
>
> Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
> Signed-off-by: Manish Chopra <manishc@marvell.com>
> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
> ---
> doc/guides/nics/qede.rst | 5 ++++-
> drivers/net/qede/qede_main.c | 2 +-
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guides/nics/qede.rst b/doc/guides/nics/qede.rst index
> bb127ca21..201678401 100644
> --- a/doc/guides/nics/qede.rst
> +++ b/doc/guides/nics/qede.rst
> @@ -63,11 +63,14 @@ Co-existence considerations
> - When SR-IOV is enabled on the adapter,
> Linux kernel drivers (qed, qede, qedr, qedi and qedf) can be bound
> to the PFs of a given adapter and either qede PMD or Linux drivers
> - (qed and qede) can be bound to the VFs of the adapter.
> + (qed and qede) can be bound to the VFs of the adapter provided that
> + ecore version of Linux kernel driver and qede PMD driver is same.
>
> - For sharing an adapter between DPDK and Linux drivers, SRIOV needs
> to be enabled. Bind all the PFs to Linux Drivers(qed/qede). Create
> a VF on PFs where DPDK is desired and bind these VFs to qede_pmd.
> + Make sure that ecore version of Linux Driver and qede PMD driver is
> + same.
> Binding of PFs simultaneously to DPDK and Linux drivers on a given
> adapter is not supported.
>
> diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c
> index caa9d1d4f..d208d276a 100644
> --- a/drivers/net/qede/qede_main.c
> +++ b/drivers/net/qede/qede_main.c
> @@ -300,7 +300,7 @@ static int qed_slowpath_start(struct ecore_dev *edev,
> memset(&drv_load_params, 0, sizeof(drv_load_params));
> drv_load_params.mfw_timeout_val =
> ECORE_LOAD_REQ_LOCK_TO_DEFAULT;
> drv_load_params.avoid_eng_reset = false;
> - drv_load_params.override_force_load =
> ECORE_OVERRIDE_FORCE_LOAD_ALWAYS;
> + drv_load_params.override_force_load =
> ECORE_OVERRIDE_FORCE_LOAD_NONE;
> hw_init_params.avoid_eng_affin = false;
> hw_init_params.p_drv_load_params = &drv_load_params;
>
> --
> 2.18.2
Dropping this patch for now, please ignore this.
Internal discussions are going on regarding this patch. I will send a new patch after the discussions.
Thanks,
Devendra
On Wed, Jan 6, 2021 at 8:47 PM Devendra Singh Rawat
<dsinghrawat@marvell.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Devendra Singh Rawat <dsinghrawat@marvell.com>
> > Sent: Wednesday, January 6, 2021 6:50 PM
> > To: dev@dpdk.org; Jerin Jacob Kollanukkaran <jerinj@marvell.com>;
> > ferruh.yigit@intel.com
> > Cc: GR-Everest-DPDK-Dev <GR-Everest-DPDK-Dev@marvell.com>; Igor
> > Russkikh <irusskikh@marvell.com>; Rasesh Mody <rmody@marvell.com>;
> > Manish Chopra <manishc@marvell.com>; Devendra Singh Rawat
> > <dsinghrawat@marvell.com>; stable@dpdk.org
> > Subject: [PATCH v2] net/qede: change driver's default load parameter
> >
> > Loading ecore clients (PMD or linux kernel driver) having different ecore
> > versions concurrently, is problematic from device's init/config perspective. This
> > fix changes driver's default load parameter to have ecore version validated by
> > MFW. All ecore clients having matching ecore version should be allowed to
> > load, otherwise MFW should fail the load request.
> >
> > Fixes: c5e1108920 ("alter driver's force load behavior")
> > Cc: stable@dpdk.org
> >
> > --
> > 2.18.2
>
> Dropping this patch for now, please ignore this.
> Internal discussions are going on regarding this patch. I will send a new patch after the discussions.
Please supersed in patchwork as well(I did now).
>
> Thanks,
> Devendra
@@ -63,11 +63,14 @@ Co-existence considerations
- When SR-IOV is enabled on the adapter,
Linux kernel drivers (qed, qede, qedr, qedi and qedf) can be bound
to the PFs of a given adapter and either qede PMD or Linux drivers
- (qed and qede) can be bound to the VFs of the adapter.
+ (qed and qede) can be bound to the VFs of the adapter provided that
+ ecore version of Linux kernel driver and qede PMD driver is same.
- For sharing an adapter between DPDK and Linux drivers, SRIOV needs
to be enabled. Bind all the PFs to Linux Drivers(qed/qede). Create
a VF on PFs where DPDK is desired and bind these VFs to qede_pmd.
+ Make sure that ecore version of Linux Driver and qede PMD driver
+ is same.
Binding of PFs simultaneously to DPDK and Linux drivers on a given
adapter is not supported.
@@ -300,7 +300,7 @@ static int qed_slowpath_start(struct ecore_dev *edev,
memset(&drv_load_params, 0, sizeof(drv_load_params));
drv_load_params.mfw_timeout_val = ECORE_LOAD_REQ_LOCK_TO_DEFAULT;
drv_load_params.avoid_eng_reset = false;
- drv_load_params.override_force_load = ECORE_OVERRIDE_FORCE_LOAD_ALWAYS;
+ drv_load_params.override_force_load = ECORE_OVERRIDE_FORCE_LOAD_NONE;
hw_init_params.avoid_eng_affin = false;
hw_init_params.p_drv_load_params = &drv_load_params;