Thread (18 messages) flat view 18 messages, 3 authors, 2014-08-08

Re: [PATCH net-next 0/2] xen-netback: Changes around carrier handling

From: David Miller <davem@davemloft.net>
Date: 2014-08-08 05:28:07
Also in: lkml

From: Zoltan Kiss <redacted>
Date: Thu, 7 Aug 2014 16:51:17 +0100
Ok, how about this:
* ndo_start_xmit tries to set up the grant copy operations, something
* which is done now in the thread
* no estimation madness, just go ahead and try to do it
* if the skb can fit, kick the thread
* if it fails (not enough slots to complete the TX), then:
  * call netif_tx_stop_queue on that queue (just like now)
  * set up timer rx_stalled (just like now)
  * save the state of the current skb (where the grant copy op setup is
  * halted)
* if new slots coming in, continue to create the grant copy ops for the
* stalled skb, and if it succeeds, kick the thread plus call
* netif_tx_start_queue. (just like now)
* if the timer fires, drop the stalled skb, and set the carrier off, so
* QDisc won't bother to queue packets for a stalled interface
* the thread will only do the actual grant copy hypercall and releasing
* the skb
* in any case, ndo_start_xmit should return NETDEV_TX_OK, just like now
It sounds like this would work, and indeed it would abide by the intended
rules of netif_{stop,wake}_queue() and ->ndo_start_xmit()'s return
values.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help