Skip to contentSkip to conversation

remove some limitations and operations

PATCH Superseded Guoyang Zhou 2 participants 6 messages Nov 23, 2020 – Nov 25, 2020 Network drivers

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover remove some limitations and operations

The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two, and remove the operation of optical modules in the link function.

--
v1:
- remove the limitation for max queue num
- remove the operation of optical modules in the link function

Guoyang Zhou (2):
net/hinic/base: remove the limitation for max queue num net/hinic: remove the operation of optical modules

 drivers/net/hinic/base/hinic_pmd_niccfg.c | 38 -------------------------------
 drivers/net/hinic/base/hinic_pmd_niccfg.h |  2 --
 drivers/net/hinic/base/hinic_pmd_nicio.c  |  5 ----
 drivers/net/hinic/hinic_pmd_ethdev.c      | 14 ------------
 4 files changed, 59 deletions(-)
Signature · 1 line
1.8.3.1
#1 lore raw

PATCH 1/2 net/hinic/base: remove the limitation for max queue num

The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two.

Fixes 511b7371d32b ("net/hinic: fix hugepage memory leaks")
---
 drivers/net/hinic/base/hinic_pmd_nicio.c | 5 -----
 1 file changed, 5 deletions(-)
drivers/net/hinic/base/hinic_pmd_nicio.c +0 -5
index 2736305..162308b 100644
@@ -758,11 +758,6 @@ static int hinic_alloc_nicio(struct hinic_hwdev *hwdev)
 	int err;
 
 	max_qps = hinic_func_max_qnum(hwdev);
-	if ((max_qps & (max_qps - 1))) {
-		PMD_DRV_LOG(ERR, "Wrong number of max_qps: %d",
-			max_qps);
-		return -EINVAL;
-	}
 
 	nic_io->max_qps = max_qps;
 	nic_io->num_qps = max_qps;
Signature · 1 line
1.8.3.1
#2 lore raw

PATCH 2/2 net/hinic: remove the operation of optical modules

In reply to Guoyang Zhou

In the link up and link down functions, they do not need to operate the optical module.

Fixes 511b7371d32b ("net/hinic: fix hugepage memory leaks")
---
 drivers/net/hinic/base/hinic_pmd_niccfg.c | 38 -------------------------------
 drivers/net/hinic/base/hinic_pmd_niccfg.h |  2 --
 drivers/net/hinic/hinic_pmd_ethdev.c      | 14 ------------
 3 files changed, 54 deletions(-)
drivers/net/hinic/base/hinic_pmd_niccfg.c +0 -38
index be6445d..8c08d63 100644
@@ -1659,44 +1659,6 @@ int hinic_get_link_mode(void *hwdev, u32 *supported, u32 *advertised)
 }
 
 /**
- * hinic_set_xsfp_tx_status - Enable or disable the fiber in
- * tx direction when set link up or down.
- *
- * @param hwdev
- *   The hardware interface of a nic device.
- * @param enable
- *   Enable or Disable.
- *
- * @return
- *   0 on success.
- *   negative error value otherwise.
- */
-int hinic_set_xsfp_tx_status(void *hwdev, bool enable)
-{
-	struct hinic_set_xsfp_status xsfp_status;
-	u16 out_size = sizeof(struct hinic_set_xsfp_status);
-	int err;
-
-	memset(&xsfp_status, 0, sizeof(xsfp_status));
-	xsfp_status.mgmt_msg_head.resp_aeq_num = HINIC_AEQ1;
-	xsfp_status.port_id = hinic_global_func_id(hwdev);
-	xsfp_status.xsfp_tx_dis = ((enable == 0) ? 1 : 0);
-
-	err = l2nic_msg_to_mgmt_sync(hwdev, HINIC_PORT_CMD_SET_XSFP_STATUS,
-		&xsfp_status, sizeof(struct hinic_set_xsfp_status),
-		&xsfp_status, &out_size);
-	if (err || !out_size || xsfp_status.mgmt_msg_head.status) {
-		PMD_DRV_LOG(ERR,
-			"Failed to %s port xsfp status, err: %d, status: 0x%x, out size: 0x%x\n",
-			enable ? "Disable" : "Enable", err,
-			xsfp_status.mgmt_msg_head.status, out_size);
-		return -EIO;
-	}
-
-	return 0;
-}
-
-/**
  * hinic_flush_qp_res - Flush tx && rx chip resources in case of set vport
  * fake failed when device start.
  *
drivers/net/hinic/base/hinic_pmd_niccfg.h +0 -2
index 73b16b4..04cd374 100644
@@ -909,8 +909,6 @@ int hinic_set_link_status_follow(void *hwdev,
 
 int hinic_get_link_mode(void *hwdev, u32 *supported, u32 *advertised);
 
-int hinic_set_xsfp_tx_status(void *hwdev, bool enable);
-
 int hinic_flush_qp_res(void *hwdev);
 
 int hinic_init_function_table(void *hwdev, u16 rx_buf_sz);
drivers/net/hinic/hinic_pmd_ethdev.c +0 -14
index 378f2c8..6264235 100644
@@ -939,13 +939,6 @@ static int hinic_dev_set_link_up(struct rte_eth_dev *dev)
 	struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev);
 	int ret;
 
-	ret = hinic_set_xsfp_tx_status(nic_dev->hwdev, true);
-	if (ret) {
-		PMD_DRV_LOG(ERR, "Enable port tx xsfp failed, dev_name: %s, port_id: %d",
-			    nic_dev->proc_dev_name, dev->data->port_id);
-		return ret;
-	}
-
 	/* link status follow phy port status, up will open pma */
 	ret = hinic_set_port_enable(nic_dev->hwdev, true);
 	if (ret)
@@ -969,13 +962,6 @@ static int hinic_dev_set_link_down(struct rte_eth_dev *dev)
 	struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev);
 	int ret;
 
-	ret = hinic_set_xsfp_tx_status(nic_dev->hwdev, false);
-	if (ret) {
-		PMD_DRV_LOG(ERR, "Disable port tx xsfp failed, dev_name: %s, port_id: %d",
-			    nic_dev->proc_dev_name, dev->data->port_id);
-		return ret;
-	}
-
 	/* link status follow phy port status, up will close pma */
 	ret = hinic_set_port_enable(nic_dev->hwdev, false);
 	if (ret)
Signature · 1 line
1.8.3.1
#3 lore raw
In reply to Guoyang Zhou
Quoted 4 lines · Guoyang Zhou

The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two, and remove the operation of optical modules in the link function.

Quoted 9 lines

--
v1:
- remove the limitation for max queue num
- remove the operation of optical modules in the link function

Guoyang Zhou (2):
net/hinic/base: remove the limitation for max queue num net/hinic: remove the operation of optical modules

Hi Guoyang,

How critical is this set, can you please describe the impact of the fixes?

If they are not critical, let's postpone them to next release, since the release is a few days away.

btw, both patches has [1] as a fixed patch, but that patch looks unrelated with both, that patch only cleans up the uninit/destroy path. Can you please elaborate why that patch is fixed?

As far as I can see the condition removed in first patch introduced in v19.08 ([2]) and the calls in second patch added in v19.11 ([3]).

[1]
Fixes 511b7371d32b ("net/hinic: fix hugepage memory leaks")
[2]
Fixes 828d3e15a9dc ("net/hinic/base: support context and work queue")
[3]
Fixes 54ac33869932 ("net/hinic: set link down and up")
#4 lore raw
Quoted 15 lines · Ferruh Yigit
Quoted 13 lines · Guoyang Zhou

The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two, and remove the operation of optical modules in the link function.

Signature · 7 lines
v1:
   - remove the limitation for max queue num
   - remove the operation of optical modules in the link function

Guoyang Zhou (2):
   net/hinic/base: remove the limitation for max queue num
   net/hinic: remove the operation of optical modules
Quoted 6 lines

Hi Guoyang,

How critical is this set, can you please describe the impact of the fixes?

If they are not critical, let's postpone them to next release, since the release is a few days away.

Hi Guoyang,

I can see that a v2 has been sent but it is still not clear if you are OK to defer the patches, can you please share your thoughts on it?

Thanks,
ferruh

Quoted 16 lines

btw, both patches has [1] as a fixed patch, but that patch looks unrelated with both, that patch only cleans up the uninit/destroy path. Can you please elaborate why that patch is fixed?

As far as I can see the condition removed in first patch introduced in v19.08 ([2]) and the calls in second patch added in v19.11 ([3]).

[1]
Fixes 511b7371d32b ("net/hinic: fix hugepage memory leaks")
[2]
Fixes 828d3e15a9dc ("net/hinic/base: support context and work queue")
[3]
Fixes 54ac33869932 ("net/hinic: set link down and up")
#5 lore raw

Hi ferruh,

I hope that these two patches can be applied.
Because in that way, the version can be stable.

Thanks,
Guoyang zhou

Quoted 51 lines · Ferruh Yigit
Quoted 15 lines · Ferruh Yigit
Quoted 13 lines · Guoyang Zhou

The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two, and remove the operation of optical modules in the link function.

Signature · 7 lines
v1:
    - remove the limitation for max queue num
    - remove the operation of optical modules in the link function

Guoyang Zhou (2):
    net/hinic/base: remove the limitation for max queue num
    net/hinic: remove the operation of optical modules
Quoted 7 lines

Hi Guoyang,

How critical is this set, can you please describe the impact of the fixes?

If they are not critical, let's postpone them to next release, since the release is a few days away.

Hi Guoyang,

I can see that a v2 has been sent but it is still not clear if you are OK to defer the patches, can you please share your thoughts on it?

Thanks,
ferruh

Quoted 18 lines

btw, both patches has [1] as a fixed patch, but that patch looks unrelated with both, that patch only cleans up the uninit/destroy path.
Can you please elaborate why that patch is fixed?

As far as I can see the condition removed in first patch introduced in v19.08 ([2]) and the calls in second patch added in v19.11 ([3]).

[1]
Fixes 511b7371d32b ("net/hinic: fix hugepage memory leaks")
[2]
Fixes 828d3e15a9dc ("net/hinic/base: support context and work queue")
[3]
Fixes 54ac33869932 ("net/hinic: set link down and up")