All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: pmenzel@molgen.mpg.de, wojciech.drewek@intel.com,
	marcin.szycik@intel.com, netdev@vger.kernel.org,
	konrad.knitter@intel.com, pawel.chmielewski@intel.com,
	horms@kernel.org, David.Laight@ACULAB.COM,
	nex.sw.ncis.nat.hpm.dev@intel.com, pio.raczynski@gmail.com,
	sridhar.samudrala@intel.com, jacob.e.keller@intel.com,
	jiri@resnulli.us, przemyslaw.kitszel@intel.com
Subject: [Intel-wired-lan] [iwl-next v7 7/9] ice: enable_rdma devlink param
Date: Mon,  4 Nov 2024 13:13:35 +0100	[thread overview]
Message-ID: <20241104121337.129287-8-michal.swiatkowski@linux.intel.com> (raw)
In-Reply-To: <20241104121337.129287-1-michal.swiatkowski@linux.intel.com>

Implement enable_rdma devlink parameter to allow user to turn RDMA
feature on and off.

It is useful when there is no enough interrupts and user doesn't need
RDMA feature.

Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Jan Sokolowski <jan.sokolowski@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
---
 .../net/ethernet/intel/ice/devlink/devlink.c  | 19 +++++++++++++++++++
 drivers/net/ethernet/intel/ice/ice_lib.c      |  8 +++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index da7c4eecaad3..e785728a8f1f 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -1583,6 +1583,19 @@ ice_devlink_msix_min_pf_validate(struct devlink *devlink, u32 id,
 	return 0;
 }
 
+static int ice_devlink_enable_rdma_validate(struct devlink *devlink, u32 id,
+					    union devlink_param_value val,
+					    struct netlink_ext_ack *extack)
+{
+	struct ice_pf *pf = devlink_priv(devlink);
+	bool new_state = val.vbool;
+
+	if (new_state && !test_bit(ICE_FLAG_RDMA_ENA, pf->flags))
+		return -EOPNOTSUPP;
+
+	return 0;
+}
+
 enum ice_param_id {
 	ICE_DEVLINK_PARAM_ID_BASE = DEVLINK_PARAM_GENERIC_ID_MAX,
 	ICE_DEVLINK_PARAM_ID_TX_SCHED_LAYERS,
@@ -1598,6 +1611,8 @@ static const struct devlink_param ice_dvl_rdma_params[] = {
 			      ice_devlink_enable_iw_get,
 			      ice_devlink_enable_iw_set,
 			      ice_devlink_enable_iw_validate),
+	DEVLINK_PARAM_GENERIC(ENABLE_RDMA, BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
+			      NULL, NULL, ice_devlink_enable_rdma_validate),
 };
 
 static const struct devlink_param ice_dvl_msix_params[] = {
@@ -1738,6 +1753,10 @@ int ice_devlink_register_params(struct ice_pf *pf)
 	devl_param_driverinit_value_set(devlink,
 					DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN,
 					value);
+	value.vbool = test_bit(ICE_FLAG_RDMA_ENA, pf->flags);
+	devl_param_driverinit_value_set(devlink,
+					DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA,
+					value);
 
 	return 0;
 }
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index 01afa5f84af9..29a3e055b7c6 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -833,7 +833,13 @@ bool ice_is_safe_mode(struct ice_pf *pf)
  */
 bool ice_is_rdma_ena(struct ice_pf *pf)
 {
-	return test_bit(ICE_FLAG_RDMA_ENA, pf->flags);
+	union devlink_param_value value;
+	int err;
+
+	err = devl_param_driverinit_value_get(priv_to_devlink(pf),
+					      DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA,
+					      &value);
+	return err ? test_bit(ICE_FLAG_RDMA_ENA, pf->flags) : value.vbool;
 }
 
 /**
-- 
2.42.0


WARNING: multiple messages have this Message-ID (diff)
From: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, pawel.chmielewski@intel.com,
	sridhar.samudrala@intel.com, jacob.e.keller@intel.com,
	pio.raczynski@gmail.com, konrad.knitter@intel.com,
	marcin.szycik@intel.com, wojciech.drewek@intel.com,
	nex.sw.ncis.nat.hpm.dev@intel.com, przemyslaw.kitszel@intel.com,
	jiri@resnulli.us, horms@kernel.org, David.Laight@ACULAB.COM,
	pmenzel@molgen.mpg.de, mschmidt@redhat.com
Subject: [iwl-next v7 7/9] ice: enable_rdma devlink param
Date: Mon,  4 Nov 2024 13:13:35 +0100	[thread overview]
Message-ID: <20241104121337.129287-8-michal.swiatkowski@linux.intel.com> (raw)
In-Reply-To: <20241104121337.129287-1-michal.swiatkowski@linux.intel.com>

Implement enable_rdma devlink parameter to allow user to turn RDMA
feature on and off.

It is useful when there is no enough interrupts and user doesn't need
RDMA feature.

Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Jan Sokolowski <jan.sokolowski@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
---
 .../net/ethernet/intel/ice/devlink/devlink.c  | 19 +++++++++++++++++++
 drivers/net/ethernet/intel/ice/ice_lib.c      |  8 +++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index da7c4eecaad3..e785728a8f1f 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -1583,6 +1583,19 @@ ice_devlink_msix_min_pf_validate(struct devlink *devlink, u32 id,
 	return 0;
 }
 
+static int ice_devlink_enable_rdma_validate(struct devlink *devlink, u32 id,
+					    union devlink_param_value val,
+					    struct netlink_ext_ack *extack)
+{
+	struct ice_pf *pf = devlink_priv(devlink);
+	bool new_state = val.vbool;
+
+	if (new_state && !test_bit(ICE_FLAG_RDMA_ENA, pf->flags))
+		return -EOPNOTSUPP;
+
+	return 0;
+}
+
 enum ice_param_id {
 	ICE_DEVLINK_PARAM_ID_BASE = DEVLINK_PARAM_GENERIC_ID_MAX,
 	ICE_DEVLINK_PARAM_ID_TX_SCHED_LAYERS,
@@ -1598,6 +1611,8 @@ static const struct devlink_param ice_dvl_rdma_params[] = {
 			      ice_devlink_enable_iw_get,
 			      ice_devlink_enable_iw_set,
 			      ice_devlink_enable_iw_validate),
+	DEVLINK_PARAM_GENERIC(ENABLE_RDMA, BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
+			      NULL, NULL, ice_devlink_enable_rdma_validate),
 };
 
 static const struct devlink_param ice_dvl_msix_params[] = {
@@ -1738,6 +1753,10 @@ int ice_devlink_register_params(struct ice_pf *pf)
 	devl_param_driverinit_value_set(devlink,
 					DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN,
 					value);
+	value.vbool = test_bit(ICE_FLAG_RDMA_ENA, pf->flags);
+	devl_param_driverinit_value_set(devlink,
+					DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA,
+					value);
 
 	return 0;
 }
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index 01afa5f84af9..29a3e055b7c6 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -833,7 +833,13 @@ bool ice_is_safe_mode(struct ice_pf *pf)
  */
 bool ice_is_rdma_ena(struct ice_pf *pf)
 {
-	return test_bit(ICE_FLAG_RDMA_ENA, pf->flags);
+	union devlink_param_value value;
+	int err;
+
+	err = devl_param_driverinit_value_get(priv_to_devlink(pf),
+					      DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA,
+					      &value);
+	return err ? test_bit(ICE_FLAG_RDMA_ENA, pf->flags) : value.vbool;
 }
 
 /**
-- 
2.42.0


  parent reply	other threads:[~2024-11-04 12:14 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-04 12:13 [Intel-wired-lan] [iwl-next v7 0/9] ice: managing MSI-X in driver Michal Swiatkowski
2024-11-04 12:13 ` Michal Swiatkowski
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 1/9] ice: count combined queues using Rx/Tx count Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-14 14:03   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:03     ` Pucha, HimasekharX Reddy
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 2/9] ice: devlink PF MSI-X max and min parameter Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-11 11:44   ` [Intel-wired-lan] " Michal Schmidt
2024-11-11 11:44     ` Michal Schmidt
2024-11-12  8:58     ` [Intel-wired-lan] " Michal Swiatkowski
2024-11-12  8:58       ` Michal Swiatkowski
2024-11-14 14:04   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:04     ` Pucha, HimasekharX Reddy
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 3/9] ice: remove splitting MSI-X between features Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-14 14:06   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:06     ` Pucha, HimasekharX Reddy
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 4/9] ice: get rid of num_lan_msix field Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-14 14:08   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:08     ` Pucha, HimasekharX Reddy
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 5/9] ice, irdma: move interrupts code to irdma Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-13 16:21   ` [Intel-wired-lan] " Lukasz Czapnik
2024-11-14  6:05     ` Michal Swiatkowski
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 6/9] ice: treat dyn_allowed only as suggestion Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-14 14:09   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:09     ` Pucha, HimasekharX Reddy
2024-11-04 12:13 ` Michal Swiatkowski [this message]
2024-11-04 12:13   ` [iwl-next v7 7/9] ice: enable_rdma devlink param Michal Swiatkowski
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 8/9] ice: simplify VF MSI-X managing Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-13  9:20   ` [Intel-wired-lan] " Romanowski, Rafal
2024-11-13  9:20     ` Romanowski, Rafal
2024-11-04 12:13 ` [Intel-wired-lan] [iwl-next v7 9/9] ice: init flow director before RDMA Michal Swiatkowski
2024-11-04 12:13   ` Michal Swiatkowski
2024-11-14 14:11   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2024-11-14 14:11     ` Pucha, HimasekharX Reddy

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=20241104121337.129287-8-michal.swiatkowski@linux.intel.com \
    --to=michal.swiatkowski@linux.intel.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=horms@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jacob.e.keller@intel.com \
    --cc=jiri@resnulli.us \
    --cc=konrad.knitter@intel.com \
    --cc=marcin.szycik@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=nex.sw.ncis.nat.hpm.dev@intel.com \
    --cc=pawel.chmielewski@intel.com \
    --cc=pio.raczynski@gmail.com \
    --cc=pmenzel@molgen.mpg.de \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=sridhar.samudrala@intel.com \
    --cc=wojciech.drewek@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.