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

From: Jijie Shao
Date: Wed Oct 16 2024 - 07:38:53 EST



on 2024/10/16 9:16, Jakub Kicinski wrote:
On Fri, 11 Oct 2024 17:45:13 +0800 Jijie Shao wrote:
From: Peiyang Wang <wangpeiyang1@xxxxxxxxxx>

When TX bounce buffer is enabled, dma map is used only when the buffer
initialized. When spending packages, the driver only do dma sync. To
packages -> packets

avoid SMMU prefetch, default enable tx bounce buffer if smmu enabled.
you seem to force it to be enabled, rather than just changing
the default. That is strange. Why not let the user lower the value?

Also I don't see why this is a fix. Seems like a performance
improvement.

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 to improve performance. Thanks, Jijie Shao