Forum Discussion
Altera_Forum
Honored Contributor
15 years agoI haven't looked at it for a few months and didn't look into this much just now, but IIRC:
The altera_tse driver uses NAPI: http://www.linuxfoundation.org/collaborate/workgroups/networking/napi What this essentially means is that when it gets a TX or RX interrupt it schedules a polling loop which handles all TX and RX events until there aren't any, then reenables interrupts. This is supposed to improve network performance by not handling interrupts one at a time. Unfortunately, the altera_tse NAPI implementation is broken: http://sopc.et.ntust.edu.tw/pipermail/nios2-dev/2010-april/003726.html I tried to fix the problem I ran into there (which is different from yours) but ended up causing a system freeze instead which I didn't get around to debugging. It may be that's what you are running into, and if so I'm glad you found it. Addendum since I see you are actually from Altera: I sent the above patch to Dalon Westergreen and he said he was actively working on the driver and SGDMA related things, but it seems he since got swamped with other tasks. As you can see the driver is broken in a couple ways and a bit strange in a few more ways. I started fixing it up when I ran into the above problem, but I am not a kernel expert either so I have a lot of catching up to do to fix the driver properly, so I put it off hoping someone else (maybe someone at Altera) will get to it. Maybe you can find out internally if there is any work being done on it or if someone else who has worked on the driver has insight into the problem you found.