Hello. Mithlesh Thukral wrote:
>>>>Even with this patch, the packets probably get stuck somewhere in the >>>>driver, as cross-gdb sees tail of the $g packet reply only in reply to >>>>next packet... This wasn;t happeing on x86 probably because the register packet should be much shorted there than on PPC... >>> Argh! That's all because of the CONFIG_NETPOLL_TRAP that >>>CONFIG_KGDBOE* options select -- since the initial breakpoint enables >>>trapping via KGDBoE's pre_exception() handler, netif_{stop/wake}_queue() >>>stop to work and that causes KGDBoE to literally flood 8139too with >>>packets (although it can't queue up more than 4). Looks like a general >>>design issue to me... :-/ >> Well, maybe not. But many drivers are surely unprepared to their >>hard_start_xmit() method being called with queue alraedy stopped and those >>with small TX queue (like natsemi with which we're also having trouble) >>would get flooded as well. I'm going to submit a patch to netdev adding >>extra check for TX ring being full -- after/if it gets accepted, this patch >>won't be needed anymore. > Here is what comes to my mind right away. It might need some more polishing > or > cleaning up: > A potential solution will be to check the if hard_start_xmit() returns > NETDEV_TX_BUSY. In case transmit queue is busy (due to lot of threads or > queue getting full), we should wait in netpoll_send_skb(), call a cleanup > through poll() and then retry sending packet. This is already being done by netpoll iself. The thing is that hard_start_xmit() doesdn't return NETDEV_TX_BUSY in those drivers. :-/ > Regards, > Mithlesh Thukral WBR, Sergei ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport