AnsweredAssumed Answered

eLBC NAND driver is blocking whole kernel

Question asked by Aleksander Dutkowski on Feb 17, 2016
Latest reply on Feb 29, 2016 by Pavel Chubakov

CPU: P2020

Linux ipinput 3.10.24 #1 SMP Tue Feb 16 14:33:04 CET 2016 ppc e500v2 GNU/Linux

Driver: Linux/drivers/mtd/nand/fsl_elbc_nand.c - Linux Cross Reference - Free Electrons




I have a NAND ubifs partiton, mounted in sync mode. I discovered, that when performing read's or write's on nand, gianfar driver is loosing frames. This does not happen on mtd-ram driver. Also, this does not happen on NOR in the same device and same bus. UBIFS is also not an issue (tested on mtd-ram). Setting rx-ring size (by ethtool -g) up (even to 32k) does not solve the problem.


It seems like, when performing read/write, the kernel is blocked, waiting for IC to complete, and in that time eTSEC is filling RX ring (we use our device as a router, with bandwidth up to 500Mbps) and overflowing it. You can see it with "ethtool -S ethX | grep rx-overrun-errors).


Can you confirm, that the issue is reproducible? I can provide additional info or perform some additional tests.


Best regards