* [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver
@ 2023-08-07 11:34 Jijie Shao
2023-08-08 23:40 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 10+ messages in thread
From: Jijie Shao @ 2023-08-07 11:34 UTC (permalink / raw)
To: yisen.zhuang, salil.mehta, davem, edumazet, kuba, pabeni
Cc: shenjian15, wangjie125, liuyonglong, wangpeiyang1, shaojijie,
netdev, linux-kernel
There are some bugfix for the HNS3 ethernet driver
ChangeLog:
v1->v2:
delete two patches in this patchset:
net: hns3: fix wrong print link down up
- This patch is being analyzed according to Andrew Lunn's suggestion
net: hns3: fix side effects passed to min_t()
- This patch is unnecessary suggested by David Laight
v1: https://lore.kernel.org/all/20230728075840.4022760-2-shaojijie@huawei.com/
Jian Shen (1):
net: hns3: restore user pause configure when disable autoneg
Jie Wang (2):
net: hns3: refactor hclge_mac_link_status_wait for interface reuse
net: hns3: add wait until mac link down
Yonglong Liu (1):
net: hns3: fix deadlock issue when externel_lb and reset are executed
together
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 14 ++++++++-
.../hisilicon/hns3/hns3pf/hclge_main.c | 29 ++++++++++++++-----
.../ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 2 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 1 +
4 files changed, 37 insertions(+), 9 deletions(-)
--
2.30.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver
2023-08-07 11:34 Jijie Shao
@ 2023-08-08 23:40 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 10+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-08-08 23:40 UTC (permalink / raw)
To: Jijie Shao
Cc: yisen.zhuang, salil.mehta, davem, edumazet, kuba, pabeni,
shenjian15, wangjie125, liuyonglong, wangpeiyang1, netdev,
linux-kernel
Hello:
This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Mon, 7 Aug 2023 19:34:48 +0800 you wrote:
> There are some bugfix for the HNS3 ethernet driver
>
> ChangeLog:
> v1->v2:
> delete two patches in this patchset:
> net: hns3: fix wrong print link down up
> - This patch is being analyzed according to Andrew Lunn's suggestion
> net: hns3: fix side effects passed to min_t()
> - This patch is unnecessary suggested by David Laight
> v1: https://lore.kernel.org/all/20230728075840.4022760-2-shaojijie@huawei.com/
>
> [...]
Here is the summary with links:
- [V2,net,1/4] net: hns3: restore user pause configure when disable autoneg
https://git.kernel.org/netdev/net/c/15159ec0c831
- [V2,net,2/4] net: hns3: refactor hclge_mac_link_status_wait for interface reuse
https://git.kernel.org/netdev/net/c/08469dacfad2
- [V2,net,3/4] net: hns3: add wait until mac link down
https://git.kernel.org/netdev/net/c/6265e242f7b9
- [V2,net,4/4] net: hns3: fix deadlock issue when externel_lb and reset are executed together
https://git.kernel.org/netdev/net/c/ac6257a3ae5d
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver
@ 2025-07-22 12:54 Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 1/4] net: hns3: fix concurrent setting vlan filter issue Jijie Shao
` (5 more replies)
0 siblings, 6 replies; 10+ messages in thread
From: Jijie Shao @ 2025-07-22 12:54 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel,
shaojijie
There are some bugfix for the HNS3 ethernet driver
---
ChangeLog:
v1 -> v2:
- Fix wrong Fixes tag, suggested by Simon Horman
- Replace min_t() with min(), suggested by Simon Horman
- Split patch4, omits the ethtool changes,
ethtool changes will be sent to net-next, suggested by Simon Horman
v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
---
Jian Shen (2):
net: hns3: fix concurrent setting vlan filter issue
net: hns3: fixed vf get max channels bug
Jijie Shao (1):
net: hns3: default enable tx bounce buffer when smmu enabled
Yonglong Liu (1):
net: hns3: disable interrupt when ptp init failed
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 31 ++++++++++++++++
.../net/ethernet/hisilicon/hns3/hns3_enet.h | 2 ++
.../hisilicon/hns3/hns3pf/hclge_main.c | 36 +++++++++++--------
.../hisilicon/hns3/hns3pf/hclge_ptp.c | 9 +++--
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 6 +---
5 files changed, 61 insertions(+), 23 deletions(-)
--
2.33.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V2 net 1/4] net: hns3: fix concurrent setting vlan filter issue
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
@ 2025-07-22 12:54 ` Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 2/4] net: hns3: disable interrupt when ptp init failed Jijie Shao
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Jijie Shao @ 2025-07-22 12:54 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel,
shaojijie
From: Jian Shen <shenjian15@huawei.com>
The vport->req_vlan_fltr_en may be changed concurrently by function
hclge_sync_vlan_fltr_state() called in periodic work task and
function hclge_enable_vport_vlan_filter() called by user configuration.
It may cause the user configuration inoperative. Fixes it by protect
the vport->req_vlan_fltr by vport_lock.
Fixes: 2ba306627f59 ("net: hns3: add support for modify VLAN filter state")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
---
ChangeLog:
v1 -> v2:
- Fix wrong Fixes tag, suggested by Simon Horman
v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
---
.../hisilicon/hns3/hns3pf/hclge_main.c | 36 +++++++++++--------
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index a7de67699a01..30bdec1acb57 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -9576,33 +9576,36 @@ static bool hclge_need_enable_vport_vlan_filter(struct hclge_vport *vport)
return false;
}
-int hclge_enable_vport_vlan_filter(struct hclge_vport *vport, bool request_en)
+static int __hclge_enable_vport_vlan_filter(struct hclge_vport *vport,
+ bool request_en)
{
- struct hclge_dev *hdev = vport->back;
bool need_en;
int ret;
- mutex_lock(&hdev->vport_lock);
-
- vport->req_vlan_fltr_en = request_en;
-
need_en = hclge_need_enable_vport_vlan_filter(vport);
- if (need_en == vport->cur_vlan_fltr_en) {
- mutex_unlock(&hdev->vport_lock);
+ if (need_en == vport->cur_vlan_fltr_en)
return 0;
- }
ret = hclge_set_vport_vlan_filter(vport, need_en);
- if (ret) {
- mutex_unlock(&hdev->vport_lock);
+ if (ret)
return ret;
- }
vport->cur_vlan_fltr_en = need_en;
+ return 0;
+}
+
+int hclge_enable_vport_vlan_filter(struct hclge_vport *vport, bool request_en)
+{
+ struct hclge_dev *hdev = vport->back;
+ int ret;
+
+ mutex_lock(&hdev->vport_lock);
+ vport->req_vlan_fltr_en = request_en;
+ ret = __hclge_enable_vport_vlan_filter(vport, request_en);
mutex_unlock(&hdev->vport_lock);
- return 0;
+ return ret;
}
static int hclge_enable_vlan_filter(struct hnae3_handle *handle, bool enable)
@@ -10623,16 +10626,19 @@ static void hclge_sync_vlan_fltr_state(struct hclge_dev *hdev)
&vport->state))
continue;
- ret = hclge_enable_vport_vlan_filter(vport,
- vport->req_vlan_fltr_en);
+ mutex_lock(&hdev->vport_lock);
+ ret = __hclge_enable_vport_vlan_filter(vport,
+ vport->req_vlan_fltr_en);
if (ret) {
dev_err(&hdev->pdev->dev,
"failed to sync vlan filter state for vport%u, ret = %d\n",
vport->vport_id, ret);
set_bit(HCLGE_VPORT_STATE_VLAN_FLTR_CHANGE,
&vport->state);
+ mutex_unlock(&hdev->vport_lock);
return;
}
+ mutex_unlock(&hdev->vport_lock);
}
}
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH V2 net 2/4] net: hns3: disable interrupt when ptp init failed
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 1/4] net: hns3: fix concurrent setting vlan filter issue Jijie Shao
@ 2025-07-22 12:54 ` Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 3/4] net: hns3: fixed vf get max channels bug Jijie Shao
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Jijie Shao @ 2025-07-22 12:54 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel,
shaojijie
From: Yonglong Liu <liuyonglong@huawei.com>
When ptp init failed, we'd better disable the interrupt and clear the
flag, to avoid early report interrupt at next probe.
Fixes: 0bf5eb788512 ("net: hns3: add support for PTP")
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
index ec581d4b696f..4bd52eab3914 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
@@ -497,14 +497,14 @@ int hclge_ptp_init(struct hclge_dev *hdev)
if (ret) {
dev_err(&hdev->pdev->dev,
"failed to init freq, ret = %d\n", ret);
- goto out;
+ goto out_clear_int;
}
ret = hclge_ptp_set_ts_mode(hdev, &hdev->ptp->ts_cfg);
if (ret) {
dev_err(&hdev->pdev->dev,
"failed to init ts mode, ret = %d\n", ret);
- goto out;
+ goto out_clear_int;
}
ktime_get_real_ts64(&ts);
@@ -512,7 +512,7 @@ int hclge_ptp_init(struct hclge_dev *hdev)
if (ret) {
dev_err(&hdev->pdev->dev,
"failed to init ts time, ret = %d\n", ret);
- goto out;
+ goto out_clear_int;
}
set_bit(HCLGE_STATE_PTP_EN, &hdev->state);
@@ -520,6 +520,9 @@ int hclge_ptp_init(struct hclge_dev *hdev)
return 0;
+out_clear_int:
+ clear_bit(HCLGE_PTP_FLAG_EN, &hdev->ptp->flags);
+ hclge_ptp_int_en(hdev, false);
out:
hclge_ptp_destroy_clock(hdev);
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH V2 net 3/4] net: hns3: fixed vf get max channels bug
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 1/4] net: hns3: fix concurrent setting vlan filter issue Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 2/4] net: hns3: disable interrupt when ptp init failed Jijie Shao
@ 2025-07-22 12:54 ` Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled Jijie Shao
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Jijie Shao @ 2025-07-22 12:54 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel,
shaojijie
From: Jian Shen <shenjian15@huawei.com>
Currently, the queried maximum of vf channels is the maximum of channels
supported by each TC. However, the actual maximum of channels is
the maximum of channels supported by the device.
Fixes: 849e46077689 ("net: hns3: add ethtool_ops.get_channels support for VF")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Hao Lan <lanhao@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
---
ChangeLog:
v1 -> v2:
- Replace min_t() with min(), suggested by Simon Horman
v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
---
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index c4f35e8e2177..4cf6ac04662a 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -3094,11 +3094,7 @@ static void hclgevf_uninit_ae_dev(struct hnae3_ae_dev *ae_dev)
static u32 hclgevf_get_max_channels(struct hclgevf_dev *hdev)
{
- struct hnae3_handle *nic = &hdev->nic;
- struct hnae3_knic_private_info *kinfo = &nic->kinfo;
-
- return min_t(u32, hdev->rss_size_max,
- hdev->num_tqps / kinfo->tc_info.num_tc);
+ return min(hdev->rss_size_max, hdev->num_tqps);
}
/**
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
` (2 preceding siblings ...)
2025-07-22 12:54 ` [PATCH V2 net 3/4] net: hns3: fixed vf get max channels bug Jijie Shao
@ 2025-07-22 12:54 ` Jijie Shao
2025-07-23 7:29 ` Simon Horman
2025-07-24 9:29 ` [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Paolo Abeni
2025-07-24 9:40 ` patchwork-bot+netdevbpf
5 siblings, 1 reply; 10+ messages in thread
From: Jijie Shao @ 2025-07-22 12:54 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel,
shaojijie
The SMMU engine on HIP09 chip has a hardware issue.
SMMU pagetable prefetch features may prefetch and use a invalid PTE
even the PTE is valid at that time. This will cause the device trigger
fake pagefaults. The solution is to avoid prefetching by adding a
SYNC command when smmu mapping a iova. But the performance of nic has a
sharp drop. Then we do this workaround, always enable tx bounce buffer,
avoid mapping/unmapping on TX path.
This issue only affects HNS3, so we always enable
tx bounce buffer when smmu enabled to improve performance.
Fixes: 295ba232a8c3 ("net: hns3: add device version to replace pci revision")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
---
ChangeLog:
v1 -> v2:
- Split this patch, omits the ethtool changes,
ethtool changes will be sent to net-next, suggested by Simon Horman
v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
---
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 31 +++++++++++++++++++
.../net/ethernet/hisilicon/hns3/hns3_enet.h | 2 ++
2 files changed, 33 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index b03b8758c777..aaa803563bd2 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -11,6 +11,7 @@
#include <linux/irq.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
+#include <linux/iommu.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/skbuff.h>
@@ -1039,6 +1040,8 @@ static bool hns3_can_use_tx_sgl(struct hns3_enet_ring *ring,
static void hns3_init_tx_spare_buffer(struct hns3_enet_ring *ring)
{
u32 alloc_size = ring->tqp->handle->kinfo.tx_spare_buf_size;
+ struct net_device *netdev = ring_to_netdev(ring);
+ struct hns3_nic_priv *priv = netdev_priv(netdev);
struct hns3_tx_spare *tx_spare;
struct page *page;
dma_addr_t dma;
@@ -1080,6 +1083,7 @@ static void hns3_init_tx_spare_buffer(struct hns3_enet_ring *ring)
tx_spare->buf = page_address(page);
tx_spare->len = PAGE_SIZE << order;
ring->tx_spare = tx_spare;
+ ring->tx_copybreak = priv->tx_copybreak;
return;
dma_mapping_error:
@@ -4874,6 +4878,30 @@ static void hns3_nic_dealloc_vector_data(struct hns3_nic_priv *priv)
devm_kfree(&pdev->dev, priv->tqp_vector);
}
+static void hns3_update_tx_spare_buf_config(struct hns3_nic_priv *priv)
+{
+#define HNS3_MIN_SPARE_BUF_SIZE (2 * 1024 * 1024)
+#define HNS3_MAX_PACKET_SIZE (64 * 1024)
+
+ struct iommu_domain *domain = iommu_get_domain_for_dev(priv->dev);
+ struct hnae3_ae_dev *ae_dev = hns3_get_ae_dev(priv->ae_handle);
+ struct hnae3_handle *handle = priv->ae_handle;
+
+ if (ae_dev->dev_version < HNAE3_DEVICE_VERSION_V3)
+ return;
+
+ if (!(domain && iommu_is_dma_domain(domain)))
+ return;
+
+ priv->min_tx_copybreak = HNS3_MAX_PACKET_SIZE;
+ priv->min_tx_spare_buf_size = HNS3_MIN_SPARE_BUF_SIZE;
+
+ if (priv->tx_copybreak < priv->min_tx_copybreak)
+ priv->tx_copybreak = priv->min_tx_copybreak;
+ if (handle->kinfo.tx_spare_buf_size < priv->min_tx_spare_buf_size)
+ handle->kinfo.tx_spare_buf_size = priv->min_tx_spare_buf_size;
+}
+
static void hns3_ring_get_cfg(struct hnae3_queue *q, struct hns3_nic_priv *priv,
unsigned int ring_type)
{
@@ -5107,6 +5135,7 @@ int hns3_init_all_ring(struct hns3_nic_priv *priv)
int i, j;
int ret;
+ hns3_update_tx_spare_buf_config(priv);
for (i = 0; i < ring_num; i++) {
ret = hns3_alloc_ring_memory(&priv->ring[i]);
if (ret) {
@@ -5311,6 +5340,8 @@ static int hns3_client_init(struct hnae3_handle *handle)
priv->ae_handle = handle;
priv->tx_timeout_count = 0;
priv->max_non_tso_bd_num = ae_dev->dev_specs.max_non_tso_bd_num;
+ priv->min_tx_copybreak = 0;
+ priv->min_tx_spare_buf_size = 0;
set_bit(HNS3_NIC_STATE_DOWN, &priv->state);
handle->msg_enable = netif_msg_init(debug, DEFAULT_MSG_LEVEL);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
index d36c4ed16d8d..caf7a4df8585 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
@@ -596,6 +596,8 @@ struct hns3_nic_priv {
struct hns3_enet_coalesce rx_coal;
u32 tx_copybreak;
u32 rx_copybreak;
+ u32 min_tx_copybreak;
+ u32 min_tx_spare_buf_size;
};
union l3_hdr_info {
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled
2025-07-22 12:54 ` [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled Jijie Shao
@ 2025-07-23 7:29 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-07-23 7:29 UTC (permalink / raw)
To: Jijie Shao
Cc: davem, edumazet, kuba, pabeni, andrew+netdev, shenjian15,
liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel
On Tue, Jul 22, 2025 at 08:54:23PM +0800, Jijie Shao wrote:
> The SMMU engine on HIP09 chip has a hardware issue.
> SMMU pagetable prefetch features may prefetch and use a invalid PTE
> even the PTE is valid at that time. This will cause the device trigger
> fake pagefaults. The solution is to avoid prefetching by adding a
> SYNC command when smmu mapping a iova. But the performance of nic has a
> sharp drop. Then we do this workaround, always enable tx bounce buffer,
> avoid mapping/unmapping on TX path.
>
> This issue only affects HNS3, so we always enable
> tx bounce buffer when smmu enabled to improve performance.
>
> Fixes: 295ba232a8c3 ("net: hns3: add device version to replace pci revision")
> Signed-off-by: Jian Shen <shenjian15@huawei.com>
> Signed-off-by: Jijie Shao <shaojijie@huawei.com>
> ---
> ChangeLog:
> v1 -> v2:
> - Split this patch, omits the ethtool changes,
> ethtool changes will be sent to net-next, suggested by Simon Horman
> v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
Thanks for breaking this out.
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
` (3 preceding siblings ...)
2025-07-22 12:54 ` [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled Jijie Shao
@ 2025-07-24 9:29 ` Paolo Abeni
2025-07-24 9:40 ` patchwork-bot+netdevbpf
5 siblings, 0 replies; 10+ messages in thread
From: Paolo Abeni @ 2025-07-24 9:29 UTC (permalink / raw)
To: Jijie Shao, davem, edumazet, kuba, andrew+netdev, horms
Cc: shenjian15, liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel
On 7/22/25 2:54 PM, Jijie Shao wrote:
> There are some bugfix for the HNS3 ethernet driver
Note for future memory: I would appreciate a slightly more descriptive
cover letter, i.e. very briefly describing the fixes included, and/or
outlining the most relevant ones.
Thanks,
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
` (4 preceding siblings ...)
2025-07-24 9:29 ` [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Paolo Abeni
@ 2025-07-24 9:40 ` patchwork-bot+netdevbpf
5 siblings, 0 replies; 10+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-07-24 9:40 UTC (permalink / raw)
To: Jijie Shao
Cc: davem, edumazet, kuba, pabeni, andrew+netdev, horms, shenjian15,
liuyonglong, chenhao418, jonathan.cameron,
shameerali.kolothum.thodi, salil.mehta, netdev, linux-kernel
Hello:
This series was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:
On Tue, 22 Jul 2025 20:54:19 +0800 you wrote:
> There are some bugfix for the HNS3 ethernet driver
>
> ---
> ChangeLog:
> v1 -> v2:
> - Fix wrong Fixes tag, suggested by Simon Horman
> - Replace min_t() with min(), suggested by Simon Horman
> - Split patch4, omits the ethtool changes,
> ethtool changes will be sent to net-next, suggested by Simon Horman
> v1: https://lore.kernel.org/all/20250702130901.2879031-1-shaojijie@huawei.com/
>
> [...]
Here is the summary with links:
- [V2,net,1/4] net: hns3: fix concurrent setting vlan filter issue
https://git.kernel.org/netdev/net/c/4555f8f8b6aa
- [V2,net,2/4] net: hns3: disable interrupt when ptp init failed
https://git.kernel.org/netdev/net/c/cde304655f25
- [V2,net,3/4] net: hns3: fixed vf get max channels bug
https://git.kernel.org/netdev/net/c/b3e75c0bcc53
- [V2,net,4/4] net: hns3: default enable tx bounce buffer when smmu enabled
https://git.kernel.org/netdev/net/c/49ade8630f36
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-07-24 9:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-22 12:54 [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 1/4] net: hns3: fix concurrent setting vlan filter issue Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 2/4] net: hns3: disable interrupt when ptp init failed Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 3/4] net: hns3: fixed vf get max channels bug Jijie Shao
2025-07-22 12:54 ` [PATCH V2 net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled Jijie Shao
2025-07-23 7:29 ` Simon Horman
2025-07-24 9:29 ` [PATCH V2 net 0/4] There are some bugfix for the HNS3 ethernet driver Paolo Abeni
2025-07-24 9:40 ` patchwork-bot+netdevbpf
-- strict thread matches above, loose matches on Subject: below --
2023-08-07 11:34 Jijie Shao
2023-08-08 23:40 ` patchwork-bot+netdevbpf
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).