All, Background MPC8360, using a T1 PHY as an HDLC device.
Developing my hdlc driver, and was writing a simple send utility. To test it out. Things seem well when I had massive delays in between the write() or sendot(), and I was able to attain 100+Kbytes/sec. However, when I replaced the simple usleeps(xxx) with select statements, suddenly I started getting a ton of these messages. "Virtual device hdlc0 asks to que packet!" Along with dropped or non-sent data. In my driver I am tracking the available TX buffers, and issue a netif_stop_que() statement inside the start_xmit() call, with a corresponding netif_wake_que() in the tx_handler. Is there something else that needs to be done in order to make a select statement wait for the socket to not be busy? It seems that it always returns immediately with no timeout. I guess the other pieces of the scenario are as follows: * Using 'sethdlc hdlc0 hdlc' for the mode, so no IP stack is used. * Opening the socket to the hdlc device directly to the device itself, i.e. no port number socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); I have used both sendto() and write() to pass data down, and they both return as if all the data has been sent, i.e. I never get an error. -Russ _______________________________________________ Linuxppc-embedded mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-embedded
