Hello, everybody,

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.

Just as additional info (this thread is currently in lunux-kernel also),
just after the only place where I change dev->tbusy to 0 (zero), there is
a call to mark_bh(NET_BH) (this is an answer to Alan Cox's question).

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-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to