Commit e0302de
committed
net: stmmac: add attribute to disable split header support
Split headers (SPH) is a DMA feature to split the header and payload in
the receive path. See `SPH` bit in `EMAC_DMA[n]_CTL` register on page
30-255 of the ADSP-SC598 HRM.
With this feature enabled I ran into a oops fairly quickly on 5.15 and
immediately on 6.12.
[ 6129.476843] Unable to handle kernel paging request at virtual address ffff00019414af80
...
[ 6129.657171] dcache_inval_poc+0x28/0x58
[ 6129.660990] dma_direct_sync_single_for_cpu+0x3c/0x70
[ 6129.666024] __dma_sync_single_for_cpu+0x34/0x6c
[ 6129.670625] stmmac_napi_poll_rx+0x8dc/0xb64
...
https://lore.kernel.org/all/CABnpCuCLN6VNgmoWHwc4_8AT34xqmQnEoUHLncvE2yLqYZBaKg@mail.gmail.com/
Matches the above stack trace most closely and includes some debugging
information.
https://lore.kernel.org/all/[email protected]
Includes some debug code from an Nvidia Tegra developer who states the
code, "causes other issues". In my testing passing `buf1_len` causes
the following:
Connection to ... closed by remote host.
Note that `dwmac-intel.c` and `dwmac-dwc-qos-eth.c`, primarily used by
Nvidia Tegra SoCs, have already disabled this feature:
47f753c ("net: stmmac: disable Split Header (SPH) for Intel platforms")
029c1c2 ("net: stmmac: dwc-qos: Disable split header for Tegra194")
In testing disabling split headers resulted in a 200 Mbits/sec decrease
in performance on receive.
Signed-off-by: Philip Molloy <[email protected]>1 parent 76b1422 commit e0302de
1 file changed
+3
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
503 | 503 | | |
504 | 504 | | |
505 | 505 | | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
506 | 509 | | |
507 | 510 | | |
508 | 511 | | |
| |||
0 commit comments