Thread (15 messages) 15 messages, 3 authors, 2025-07-08

Re: [PATCH net 4/4] net: hns3: default enable tx bounce buffer when smmu enabled

From: Simon Horman <horms@kernel.org>
Date: 2025-07-08 16:35:56
Also in: lkml

On Tue, Jul 08, 2025 at 05:41:36PM +0800, Jijie Shao wrote:
on 2025/7/5 0:31, Simon Horman wrote:
quoted
On Wed, Jul 02, 2025 at 09:09:01PM +0800, Jijie Shao wrote:
quoted
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")
The cited commit may be a pre-requisite for this patch
to check HNAE3_DEVICE_VERSION_V3. But it seems to me that the problem
being addressed existed before the cited commit. If so, I think a different
Fixes tag is appropriate.
quoted
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
---
  .../net/ethernet/hisilicon/hns3/hns3_enet.c   | 31 +++++++++++++++++
  .../net/ethernet/hisilicon/hns3/hns3_enet.h   |  2 ++
  .../ethernet/hisilicon/hns3/hns3_ethtool.c    | 33 +++++++++++++++++++
It seems to me that the hns3_ethtool.c changes a) are not a requirement
for the work-around introduced by this patch and b) may introduce
complex behaviour between the effect of ethtool copybreak settings
and the enablement/non-enablement of the work-around.

Would it be possible to make a more minimal fix for net, that
omits the ethtool changes. And then follow-up with them for net-next
once the fix is present there?
I will discuss your suggestion with my team.
Thanks, much appreciated.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help