* [net PATCH 0/3] Fix PFC related issues
@ 2023-08-08 11:27 Suman Ghosh
2023-08-08 11:27 ` [net PATCH 1/3] octeontx2-pf: Update PFC configuration Suman Ghosh
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Suman Ghosh @ 2023-08-08 11:27 UTC (permalink / raw)
To: sgoutham, gakula, sbhatta, hkelam, davem, edumazet, kuba, pabeni,
netdev, linux-kernel, lcherian, jerinj
Cc: Suman Ghosh
This patchset fixes multiple PFC related issues related to Octeon.
Patch #1: octeontx2-pf: Update PFC configuration
Patch #2: octeontx2-pf: Fix PFC TX scheduler free
Patch #3: octeontx2-af: CN10KB: fix PFC configuration
Hariprasad Kelam (1):
octeontx2-af: CN10KB: fix PFC configuration
Suman Ghosh (2):
octeontx2-pf: Update PFC configuration
octeontx2-pf: Fix PFC TX scheduler free
.../net/ethernet/marvell/octeontx2/af/rpm.c | 17 ++++++------
.../ethernet/marvell/octeontx2/af/rvu_reg.c | 4 +--
.../marvell/octeontx2/nic/otx2_dcbnl.c | 27 ++++++-------------
3 files changed, 19 insertions(+), 29 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [net PATCH 1/3] octeontx2-pf: Update PFC configuration
2023-08-08 11:27 [net PATCH 0/3] Fix PFC related issues Suman Ghosh
@ 2023-08-08 11:27 ` Suman Ghosh
2023-08-08 11:27 ` [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free Suman Ghosh
2023-08-08 11:27 ` [net PATCH 3/3] octeontx2-af: CN10KB: fix PFC configuration Suman Ghosh
2 siblings, 0 replies; 5+ messages in thread
From: Suman Ghosh @ 2023-08-08 11:27 UTC (permalink / raw)
To: sgoutham, gakula, sbhatta, hkelam, davem, edumazet, kuba, pabeni,
netdev, linux-kernel, lcherian, jerinj
Cc: Suman Ghosh
As of now we are creating/deleting Tx schedulers when user is
setting PFC on/off. The problem is if we have a running traffic on
the interface and as we are updating the sq->smq mapping on the fly,
we might loose completion interrupt for some packets. As a result of
that a watchdog reset is hit from BQL.
This patch solves the issue by simply calling interface off/on APIs
which will reconfigure all the queues. We might loss the running traffic
momentarily but that should be fine.
Fixes: 99c969a83d82 ("octeontx2-pf: Add egress PFC support")
Signed-off-by: Suman Ghosh <sumang@marvell.com>
---
.../net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
index ccaf97bb1ce0..d54edfa8fcc9 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
@@ -406,6 +406,7 @@ static int otx2_dcbnl_ieee_getpfc(struct net_device *dev, struct ieee_pfc *pfc)
static int otx2_dcbnl_ieee_setpfc(struct net_device *dev, struct ieee_pfc *pfc)
{
struct otx2_nic *pfvf = netdev_priv(dev);
+ bool if_up = netif_running(dev);
int err;
/* Save PFC configuration to interface */
@@ -426,14 +427,9 @@ static int otx2_dcbnl_ieee_setpfc(struct net_device *dev, struct ieee_pfc *pfc)
if (err)
return err;
- /* Request Per channel Bpids */
- if (pfc->pfc_en)
- otx2_nix_config_bp(pfvf, true);
-
- err = otx2_pfc_txschq_update(pfvf);
- if (err) {
- dev_err(pfvf->dev, "%s failed to update TX schedulers\n", __func__);
- return err;
+ if (if_up) {
+ otx2_stop(dev);
+ otx2_open(dev);
}
return 0;
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free
2023-08-08 11:27 [net PATCH 0/3] Fix PFC related issues Suman Ghosh
2023-08-08 11:27 ` [net PATCH 1/3] octeontx2-pf: Update PFC configuration Suman Ghosh
@ 2023-08-08 11:27 ` Suman Ghosh
2023-08-08 22:15 ` Jakub Kicinski
2023-08-08 11:27 ` [net PATCH 3/3] octeontx2-af: CN10KB: fix PFC configuration Suman Ghosh
2 siblings, 1 reply; 5+ messages in thread
From: Suman Ghosh @ 2023-08-08 11:27 UTC (permalink / raw)
To: sgoutham, gakula, sbhatta, hkelam, davem, edumazet, kuba, pabeni,
netdev, linux-kernel, lcherian, jerinj
Cc: Suman Ghosh
During PFC TX schedulers free, flag TXSCHQ_FREE_ALL was being set
which caused free up all schedulers other than the PFC schedulers.
This patch fixes that to free only the PFC Tx schedulers.
Fixes: 99c969a83d82 ("octeontx2-pf: Add egress PFC support")
Signed-off-by: Suman Ghosh <sumang@marvell.com>
---
.../ethernet/marvell/octeontx2/nic/otx2_dcbnl.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
index d54edfa8fcc9..c75435bab411 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c
@@ -125,19 +125,12 @@ int otx2_pfc_txschq_alloc(struct otx2_nic *pfvf)
static int otx2_pfc_txschq_stop_one(struct otx2_nic *pfvf, u8 prio)
{
- struct nix_txsch_free_req *free_req;
+ int lvl;
- mutex_lock(&pfvf->mbox.lock);
/* free PFC TLx nodes */
- free_req = otx2_mbox_alloc_msg_nix_txsch_free(&pfvf->mbox);
- if (!free_req) {
- mutex_unlock(&pfvf->mbox.lock);
- return -ENOMEM;
- }
-
- free_req->flags = TXSCHQ_FREE_ALL;
- otx2_sync_mbox_msg(&pfvf->mbox);
- mutex_unlock(&pfvf->mbox.lock);
+ for (lvl = 0; lvl < pfvf->hw.txschq_link_cfg_lvl; lvl++)
+ otx2_txschq_free_one(pfvf, lvl,
+ pfvf->pfc_schq_list[lvl][prio]);
pfvf->pfc_alloc_status[prio] = false;
return 0;
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [net PATCH 3/3] octeontx2-af: CN10KB: fix PFC configuration
2023-08-08 11:27 [net PATCH 0/3] Fix PFC related issues Suman Ghosh
2023-08-08 11:27 ` [net PATCH 1/3] octeontx2-pf: Update PFC configuration Suman Ghosh
2023-08-08 11:27 ` [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free Suman Ghosh
@ 2023-08-08 11:27 ` Suman Ghosh
2 siblings, 0 replies; 5+ messages in thread
From: Suman Ghosh @ 2023-08-08 11:27 UTC (permalink / raw)
To: sgoutham, gakula, sbhatta, hkelam, davem, edumazet, kuba, pabeni,
netdev, linux-kernel, lcherian, jerinj
From: Hariprasad Kelam <hkelam@marvell.com>
The previous patch which added new CN10KB RPM block support,
has a bug due to which PFC is not getting configured properly.
This patch fixes the same.
Fixes: b9d0fedc6234 ("octeontx2-af: cn10kb: Add RPM_USX MAC support")
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
---
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 17 +++++++++--------
.../net/ethernet/marvell/octeontx2/af/rvu_reg.c | 4 ++--
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rpm.c b/drivers/net/ethernet/marvell/octeontx2/af/rpm.c
index b4fcb20c3f4f..af21e2030cff 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rpm.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rpm.c
@@ -355,8 +355,8 @@ int rpm_lmac_enadis_pause_frm(void *rpmd, int lmac_id, u8 tx_pause,
void rpm_lmac_pause_frm_config(void *rpmd, int lmac_id, bool enable)
{
+ u64 cfg, pfc_class_mask_cfg;
rpm_t *rpm = rpmd;
- u64 cfg;
/* ALL pause frames received are completely ignored */
cfg = rpm_read(rpm, lmac_id, RPMX_MTI_MAC100X_COMMAND_CONFIG);
@@ -380,9 +380,11 @@ void rpm_lmac_pause_frm_config(void *rpmd, int lmac_id, bool enable)
rpm_write(rpm, 0, RPMX_CMR_CHAN_MSK_OR, ~0ULL);
/* Disable all PFC classes */
- cfg = rpm_read(rpm, lmac_id, RPMX_CMRX_PRT_CBFC_CTL);
+ pfc_class_mask_cfg = is_dev_rpm2(rpm) ? RPM2_CMRX_PRT_CBFC_CTL :
+ RPMX_CMRX_PRT_CBFC_CTL;
+ cfg = rpm_read(rpm, lmac_id, pfc_class_mask_cfg);
cfg = FIELD_SET(RPM_PFC_CLASS_MASK, 0, cfg);
- rpm_write(rpm, lmac_id, RPMX_CMRX_PRT_CBFC_CTL, cfg);
+ rpm_write(rpm, lmac_id, pfc_class_mask_cfg, cfg);
}
int rpm_get_rx_stats(void *rpmd, int lmac_id, int idx, u64 *rx_stat)
@@ -605,8 +607,11 @@ int rpm_lmac_pfc_config(void *rpmd, int lmac_id, u8 tx_pause, u8 rx_pause, u16 p
if (!is_lmac_valid(rpm, lmac_id))
return -ENODEV;
+ pfc_class_mask_cfg = is_dev_rpm2(rpm) ? RPM2_CMRX_PRT_CBFC_CTL :
+ RPMX_CMRX_PRT_CBFC_CTL;
+
cfg = rpm_read(rpm, lmac_id, RPMX_MTI_MAC100X_COMMAND_CONFIG);
- class_en = rpm_read(rpm, lmac_id, RPMX_CMRX_PRT_CBFC_CTL);
+ class_en = rpm_read(rpm, lmac_id, pfc_class_mask_cfg);
pfc_en |= FIELD_GET(RPM_PFC_CLASS_MASK, class_en);
if (rx_pause) {
@@ -635,10 +640,6 @@ int rpm_lmac_pfc_config(void *rpmd, int lmac_id, u8 tx_pause, u8 rx_pause, u16 p
cfg |= RPMX_MTI_MAC100X_COMMAND_CONFIG_PFC_MODE;
rpm_write(rpm, lmac_id, RPMX_MTI_MAC100X_COMMAND_CONFIG, cfg);
-
- pfc_class_mask_cfg = is_dev_rpm2(rpm) ? RPM2_CMRX_PRT_CBFC_CTL :
- RPMX_CMRX_PRT_CBFC_CTL;
-
rpm_write(rpm, lmac_id, pfc_class_mask_cfg, class_en);
return 0;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c
index b3150f053291..d46ac29adb96 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c
@@ -31,8 +31,8 @@ static struct hw_reg_map txsch_reg_map[NIX_TXSCH_LVL_CNT] = {
{NIX_TXSCH_LVL_TL4, 3, 0xFFFF, {{0x0B00, 0x0B08}, {0x0B10, 0x0B18},
{0x1200, 0x12E0} } },
{NIX_TXSCH_LVL_TL3, 4, 0xFFFF, {{0x1000, 0x10E0}, {0x1600, 0x1608},
- {0x1610, 0x1618}, {0x1700, 0x17B0} } },
- {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17B0} } },
+ {0x1610, 0x1618}, {0x1700, 0x17C8} } },
+ {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17C8} } },
{NIX_TXSCH_LVL_TL1, 1, 0xFFFF, {{0x0C00, 0x0D98} } },
};
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free
2023-08-08 11:27 ` [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free Suman Ghosh
@ 2023-08-08 22:15 ` Jakub Kicinski
0 siblings, 0 replies; 5+ messages in thread
From: Jakub Kicinski @ 2023-08-08 22:15 UTC (permalink / raw)
To: Suman Ghosh
Cc: sgoutham, gakula, sbhatta, hkelam, davem, edumazet, pabeni,
netdev, linux-kernel, lcherian, jerinj
On Tue, 8 Aug 2023 16:57:07 +0530 Suman Ghosh wrote:
> + for (lvl = 0; lvl < pfvf->hw.txschq_link_cfg_lvl; lvl++)
> + otx2_txschq_free_one(pfvf, lvl,
> + pfvf->pfc_schq_list[lvl][prio]);
ERROR: modpost: "otx2_txschq_free_one" [drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicvf.ko] undefined!
--
pw-bot: cr
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-08-08 22:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-08 11:27 [net PATCH 0/3] Fix PFC related issues Suman Ghosh
2023-08-08 11:27 ` [net PATCH 1/3] octeontx2-pf: Update PFC configuration Suman Ghosh
2023-08-08 11:27 ` [net PATCH 2/3] octeontx2-pf: Fix PFC TX scheduler free Suman Ghosh
2023-08-08 22:15 ` Jakub Kicinski
2023-08-08 11:27 ` [net PATCH 3/3] octeontx2-af: CN10KB: fix PFC configuration Suman Ghosh
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).