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