On Wed, 2015-05-06 at 18:28 +0000, KY Srinivasan wrote: > Ah! I too was wondering how we could get into this situation. The condition you mention > is already handled in the lower level - if the attempt to put the last packet on vmbus were to > fail because the ring is full, we will notify the host independent of kick_q parameter - look > at the function vmbus_sendpacket_ctl() in drivers/hv/channel.c > > I will resend the patch by reverting this to version 2. I am not really convinced by what you are saying ;) problem is not when you fail to add an additional packet. Problem is : You queue a packet but not kick because skb->xmit_more = 1, and _then_ you call netif_tx_stop_queue(). No further packet will be delivered to your driver, until netif_tx_wake_queue() is called again from netvsc_send_completion(), possibly milli seconds later. If qdisc was replaced by another one, no packet will kick again, unless other traffic comes. Given complexity of your driver, I have no easy way to check you made this xmit_more conversion correctly, and one packet can not sit in the equivalent of TX ring buffer for unbound time. Better add a full explanation into your changelog. _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel