I'm developing the Linux driver for the Cyclades-PC300, a new synchronous
card from Cyclades.
I've got to the point where I can establish a PPP connection with a router
and generate IP traffic through the link with telnet, FTP, etc.
However, I noticed that the TX throughput shows up as half the nominal
rate, while the RX throughput goes beyond nominal. By placing a breakout
(light) box on the line, I am able to see that transmission happens on
stalls (it transmits, then stops for a while, then transmits again, then
stops, then ...).
After following the PC300 driver flow, I figured that the "hang" doesn't
happen inside its functions, yet somewhere else.
Furthermore, I noticed that the first thing that is called after a "hang"
is cpc_queue_xmit (i.e., the TX function to which the hard_start_xmit
pointer in the device structure points to). My question is: what could
cause this function not to be called immediately by the network subsystem
as soon as TX data is available from the application? Since I could see
that the "hang" doesn't happen inside the driver's functions, this is my
best guess on what's happening with the transmission.
If you need to have a look at the src code, please let me know (it'll be
GPL'd anyway ;).
Thanks in advance. Any help would be highly appreciated.
Regards,
Ivan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/