wifipineapple-openwrt/target/linux
Jo-Philipp Wich f955432959 Fix hard reset of alix/soekris hardware under heavy NIC load
The following patch corrects a hard reset that occurs on alix and
soekris net5501 hardware. Specifically, this is an issue with the via
rhine NIC driver. Under periods of extreme load, the via rhine driver
can cause a reset of the entire system. When this happens no output is
seen on the console, the device simply reboots. This was reported in the
following ticket:

Consistent crash on Soekris NET5501
https://dev.openwrt.org/ticket/11882

I was able to reproduce the problem locally with numerous alix 2d13
platforms. Under heavy 64 byte frame size load from a Smartbits traffic
generator, the alix hardware will hard reset in under 5 minutes. The
same hardware, under the same load, on FreeBSD 9.0 does not reset.

The patch below backports most of the via rhine changes from kernel 3.5.
With OpenWrt trunk being on kernel 3.3.8, it seemed prudent to bring
these changes in to avoid this serious issue.

I've tested this heavily in my test environment and was able to keep the
device stable under load for extended periods of time without any resets.

Also, a nice side effect of this change is that it significantly raises
the performance the platform. Without this patch the alix 2d13 can move
approximately 29,000 packets per second at 64 byte frame sizes. After
this patch the alix can move 52,000 packets per second at 64 byte frame
sizes.

I put this patch under the x86 patches as those are the only platforms
with via rhine hardware that I'm aware of. If it needs to go some place
else please let me know.

Thanks,
Adam

Signed-off-by: Adam Gensler <openwrt@kristenandadam.net>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33072 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-09 09:41:22 +00:00
..
adm5120 [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
adm8668 [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
amazon [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
ar7 [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
ar71xx ar71xx: simplify misc IRQ handling 2012-08-02 11:25:49 +00:00
at91 [at91] move i2c module to target modules.mk 2012-07-29 13:20:51 +00:00
atheros [atheros] Add leds back after migration to sysfs 2012-07-26 17:06:55 +00:00
au1000 [au1000] rename upgrade image to sysupgrade.bin for consistency 2012-07-17 16:47:57 +00:00
avr32 [avr32] move mmc driver to target specific modules.mk 2012-07-25 15:50:26 +00:00
brcm47xx [brcm47xx] update tg3 driver 2012-08-05 20:27:40 +00:00
brcm63xx bcm63xx: fix USB base registers and IRQs for BCM6328 2012-08-05 23:18:22 +00:00
brcm2708 [brcm2708] add more missing config symbols 2012-07-26 17:03:08 +00:00
cns3xxx [cns3xx] laguna: fix eeprom read buffer size during platform configuration 2012-07-25 08:01:38 +00:00
cns21xx [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
cobalt [package] make kmod-fb dependent on DISPLAY_SUPPORT and update targets accordingly 2012-07-25 19:36:19 +00:00
coldfire linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
ep93xx [ep93xx] make sure target modules depend on the target 2012-07-26 17:03:02 +00:00
etrax linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
gemini [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
generic [bufferbloat] Codel: avoid a nul rec_inv_sqrt 2012-08-02 13:39:50 +00:00
goldfish linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
imx21 linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
iop32x [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
ixp4xx [ixp4xx] move ixp4xx-eth to target specific modules.mk 2012-07-25 15:50:23 +00:00
kirkwood kernel: add Marvell SoC built-in RTC to modules 2012-07-15 14:25:30 +00:00
lantiq [lantiq] pci gpio mapping 2012-08-08 12:14:43 +00:00
leon linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
malta [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
mcs814x [mcs814x] nuport-mac: use dma_mapping_error() instead of checking pointers 2012-08-09 09:06:35 +00:00
mpc52xx [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
mpc83xx [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
mpc85xx [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
octeon [octeon] move i2c driver to target modules.mk 2012-07-25 15:50:13 +00:00
omap4 [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
omap24xx [omap24xx] resync config 2012-07-29 13:20:39 +00:00
omap35xx linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
orion [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
ppc40x [ppc40x] move isp116x driver to target specific modules.mk 2012-07-25 15:50:45 +00:00
ppc44x [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
ps3 linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
pxa [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
pxcab
ramips [ramips] move rt305x-dwc driver to target specific modules.mk 2012-07-25 15:50:42 +00:00
rb532 [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
rdc [rdc] remove broken flags 2012-06-16 16:45:28 +00:00
realview [realview] resync config 2012-07-27 15:35:15 +00:00
s3c24xx linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
sibyte [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
sparc linux: add broken flag to targets which are using 2.6.36 2012-04-29 15:00:32 +00:00
ubicom32 linux: move certain disabled symbols to the generic configs 2012-05-15 10:58:52 +00:00
uml [kernel] bump to 3.3.8 2012-06-05 06:57:51 +00:00
x86 Fix hard reset of alix/soekris hardware under heavy NIC load 2012-08-09 09:41:22 +00:00
xburst [target/xburst] verified to work - remove broken flag 2012-06-20 19:04:35 +00:00
Makefile