openwrt/target/linux
Daniel Golle 5a1e4a7fdb oxnas: reduce size of ATA DMA descriptor space
After years of trying to find the reason for random kernel crashes
while both CPU and SATA are under load it has been found.
Some odd commented-out #defines in kref's single-port driver [1] which
were copied from the vendor driver made me develop a theory:
The IO-mapped memory area for DMA descriptors apparetly got some holes
just before the alignment boundaries.
This feels like an off-by-one bug in the hardware or maybe those fields
are used internally by the SATA controller's firmware.
Whatever the cause is: they cannot be used and trying to use them
results in reading back unexpected stuff and ends up with oopsing
Unable to handle kernel paging request at virtual address d085c004

Work around the issue by reducing the area used for bmdma descriptors.
This reduces SATA performance (iops) quite a bit, but finally makes
things work reliably. Possibly one could optimize this much more by
really just skipping the holes in that memory area -- however, that
seems to be non-trivial with the driver and libata in it's current form
(suggestions are welcome).
The 'proper' way to have good SATA performance would be to make use of
the hardware RAID features (one can use the JBOD mode to access even
just a single disc transparently through the RAID controller integrated
in the SATA host instead of accessing the SATA ports 'raw' as we do
now).

[1]: https://github.com/kref/linux-oxnas/blob/master/drivers/ata/sata_oxnas.c#L25

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 5793112f75,
including fixup commit d75e753063)
2020-08-29 01:17:26 +01:00
..
apm821xx kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
ar71xx kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
arc770 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
archs38 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
armvirt armvirt,x86: fix build breakage of crypto ccp module 2020-07-05 13:33:31 +02:00
at91 at91: disable legacy PTYs and virtual terminals 2019-12-17 11:27:20 +02:00
ath25 kernel: bump 4.14 to 4.14.171 2020-02-24 14:20:14 +01:00
ath79 ath79: add support for TP-Link TL-WR710N v2.1 2020-08-24 19:56:10 +02:00
bcm53xx bcm53xx: add support for Luxul FullMAC WiFi devices 2020-04-07 15:51:11 +02:00
brcm47xx bcm47xx: fix switch setup for Linksys WRT610N v2 2020-07-23 17:40:00 +02:00
brcm63xx bcm63xx: DGND3700v1: fix port order 2020-06-28 14:32:42 +02:00
brcm2708 kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
cns3xxx kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
gemini kernel: bump 4.14 to 4.14.156 2019-11-29 10:00:35 +01:00
generic kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
imx6 treewide: remove 4.19 leftovers 2019-10-08 12:45:13 +02:00
ipq40xx kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
ipq806x ipq806x: EA8500 fix boot partition detection 2020-06-03 15:29:03 +02:00
kirkwood kirkwood: support for button in Pogoplug V4 2020-07-10 13:55:54 +02:00
lantiq lantiq/xrx200: make WLAN button responsive on Fritzbox 7360 & 7362 2020-07-23 17:39:42 +02:00
layerscape kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
malta malta: remove CONFIG_LEGACY_PTY from kernel config 2019-12-17 11:27:30 +02:00
mediatek kernel: Update kernel 4.14 to version 4.14.195 2020-08-27 00:27:56 +02:00
mpc85xx kernel: bump 4.14 to 4.14.171 2020-02-24 14:20:14 +01:00
mvebu mvebu: fix LAN/WAN port assignment on ClearFog Base/Pro 2020-08-07 17:13:40 +02:00
mxs kernel: bump 4.14 to 4.14.178 2020-05-04 21:05:21 +02:00
octeon treewide: remove 4.19 leftovers 2019-10-08 12:45:13 +02:00
octeontx kernel: bump 4.14 to 4.14.176 2020-04-16 13:23:52 +02:00
omap treewide: use new procd sysupgrade $UPGRADE_BACKUP variable 2019-09-12 13:27:29 +02:00
oxnas oxnas: reduce size of ATA DMA descriptor space 2020-08-29 01:17:26 +01:00
pistachio kernel: Update kernel 4.14 to version 4.14.187 2020-07-04 19:22:23 +02:00
ramips ramips: fix Xiaomi MiWiFi Mini switch definition 2020-08-13 13:56:27 +02:00
rb532 kernel: bump 4.14 to 4.14.86 2018-12-10 11:48:44 +01:00
samsung kernel: fix nand_release() usage. 2020-07-04 21:04:11 +02:00
sunxi kernel: bump 4.14 to 4.14.169 2020-02-04 18:11:26 +01:00
tegra tegra: correct cpu subtype 2020-04-18 00:18:13 +02:00
uml uml: remove CONFIG_LEGACY_PTY from kernel config 2019-12-17 11:27:16 +02:00
x86 x86: Add CONFIG_EFI_CUSTOM_SSDT_OVERLAYS 2020-08-11 20:44:31 +02:00
zynq zynq: make title consistent for all devices 2019-05-17 21:41:43 +02:00
Makefile