Comment 54 for bug 709245

Revision history for this message
Emeric Vigier (emeric-vigier) wrote :

I don't think it is the same problem. My ethernet TX gets stuck stuck to 10-20KBps (80-160Kbps). When I force some activity (USB mouse events) it can reach ~1MBps (8Mbps). Also the interface is supposed to (and says to) be 100Mbps...

I opened a thread on various mailing-lists:
http://comments.gmane.org/gmane.linux.network/234335

I saw your ehci patch on this thread:
https://patchwork.kernel.org/patch/1113332/

The thing is, my kernel already includes your patch. I also included Will Deacon's patch in process.c (cpu_idle), the one you mentioned here.

But I have some reasons to believe that none of the patches are suited in my case because:
1. Ethernet TX performance is still very bad with these patches and corresponding configs,
2. smsc95xx driver relies on usbnet. I think that usbnet uses interrupt for RX but not for TX. Then flushing the caches with wmb() just before entering idle (WFI in my case) won't be efficient for me as ethernet TX has no way to wake-up the cpu, it has to wait for an external wakeup source. USB Mouse event improves TX performance.
3. I cannot state whether your patch in ehci-q.c "should" work for me, because I don't know if (TX) URB submission in usbnet finally goes through this file's functions or another.

Do you know if my statements above make sense? Do you know where I should put the memory barrier and test again in my particular case?