search for: netif_start_queue

Displaying 20 results from an estimated 107 matches for "netif_start_queue".

2015 Mar 15
2
virtio-net: tx queue was stopped
...capacity += free_old_xmit_skbs(vi); > dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); > > capacity = 10; //########## test code : force not to call netif_start_queue > > if (capacity >= 2+MAX_SKB_FRAGS) { > netif_start_queue(dev); > virtqueue_disable_cb(vi->svq); > } else { > //########## OTOH if often enter this branch tx...
2015 Mar 15
2
virtio-net: tx queue was stopped
...capacity += free_old_xmit_skbs(vi); > dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); > > capacity = 10; //########## test code : force not to call netif_start_queue > > if (capacity >= 2+MAX_SKB_FRAGS) { > netif_start_queue(dev); > virtqueue_disable_cb(vi->svq); > } else { > //########## OTOH if often enter this branch tx...
2018 Oct 11
0
[PATCH] virtio_net: enable tx after resuming from suspend
...f81 100644 >>> --- a/drivers/net/virtio_net.c >>> +++ b/drivers/net/virtio_net.c >>> @@ -2256,6 +2256,7 @@ static int virtnet_restore_up(struct >>> virtio_device *vdev) >>> ????? } >>> ? ????? netif_device_attach(vi->dev); >>> +??? netif_start_queue(vi->dev); >> I believe this is duplicated with netif_tx_wake_all_queues() in >> netif_device_attach() above? > Thank you for your review. > > If both netif_tx_wake_all_queues() and netif_start_queue() result in > clearing __QUEUE_STATE_DRV_XOFF, then is it possible that s...
2018 Oct 12
0
[PATCH] virtio_net: enable tx after resuming from suspend
...et.c >>>>> +++ b/drivers/net/virtio_net.c >>>>> @@ -2256,6 +2256,7 @@ static int virtnet_restore_up(struct >>>>> virtio_device *vdev) >>>>> ?????? } >>>>> ?? ????? netif_device_attach(vi->dev); >>>>> +??? netif_start_queue(vi->dev); >>>> I believe this is duplicated with netif_tx_wake_all_queues() in >>>> netif_device_attach() above? >>> Thank you for your review. >>> >>> If both netif_tx_wake_all_queues() and netif_start_queue() result in >>> clearing __...
2018 Oct 16
0
[PATCH] virtio_net: enable tx after resuming from suspend
...gt;>>>>>> @@ -2256,6 +2256,7 @@ static int virtnet_restore_up(struct >>>>>>>> virtio_device *vdev) >>>>>>>> ??????? } >>>>>>>> ??? ????? netif_device_attach(vi->dev); >>>>>>>> +??? netif_start_queue(vi->dev); >>>>>>> I believe this is duplicated with netif_tx_wake_all_queues() in >>>>>>> netif_device_attach() above? >>>>>> Thank you for your review. >>>>>> >>>>>> If both netif_tx_wake_all_queues(...
2010 Jun 10
1
[PATCH for-2.6.35] virtio_net: fix oom handling on tx
...+571,14 @@ again: /* This can happen with OOM and indirect buffers. */ if (unlikely(capacity < 0)) { - netif_stop_queue(dev); - dev_warn(&dev->dev, "Unexpected full queue\n"); - if (unlikely(!virtqueue_enable_cb(vi->svq))) { - virtqueue_disable_cb(vi->svq); - netif_start_queue(dev); - goto again; + if (net_ratelimit()) { + if (likely(capacity == -ENOMEM)) + dev_warn(&dev->dev, + "TX queue failure: out of memory\n"); + else + dev_warn(&dev->dev, + "Unexpected TX queue failure: %d\n", + capacity); } return...
2010 Jun 10
1
[PATCH for-2.6.35] virtio_net: fix oom handling on tx
...+571,14 @@ again: /* This can happen with OOM and indirect buffers. */ if (unlikely(capacity < 0)) { - netif_stop_queue(dev); - dev_warn(&dev->dev, "Unexpected full queue\n"); - if (unlikely(!virtqueue_enable_cb(vi->svq))) { - virtqueue_disable_cb(vi->svq); - netif_start_queue(dev); - goto again; + if (net_ratelimit()) { + if (likely(capacity == -ENOMEM)) + dev_warn(&dev->dev, + "TX queue failure: out of memory\n"); + else + dev_warn(&dev->dev, + "Unexpected TX queue failure: %d\n", + capacity); } return...
2008 Apr 18
0
virtio: wean net driver off NETDEV_TX_BUSY
...to send\n", dev->name); - netif_stop_queue(dev); - /* Activate callback for using skbs: if this returns false it - * means some were used in the meantime. */ - if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { - vi->svq->vq_ops->disable_cb(vi->svq); - netif_start_queue(dev); - goto again; - } - __skb_unlink(skb, &vi->send); + /* If we has a buffer left over from last time, send it now. */ + if (vi->last_xmit_skb) { + if (xmit_skb(vi, vi->last_xmit_skb) != 0) + goto stop_queue; + vi->last_xmit_skb = NULL; + } - return NETDEV_TX_BUSY; + /...
2008 Apr 18
0
virtio: wean net driver off NETDEV_TX_BUSY
...to send\n", dev->name); - netif_stop_queue(dev); - /* Activate callback for using skbs: if this returns false it - * means some were used in the meantime. */ - if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { - vi->svq->vq_ops->disable_cb(vi->svq); - netif_start_queue(dev); - goto again; - } - __skb_unlink(skb, &vi->send); + /* If we has a buffer left over from last time, send it now. */ + if (vi->last_xmit_skb) { + if (xmit_skb(vi, vi->last_xmit_skb) != 0) + goto stop_queue; + vi->last_xmit_skb = NULL; + } - return NETDEV_TX_BUSY; + /...
2015 Mar 16
1
virtio-net: tx queue was stopped
...capacity += free_old_xmit_skbs(vi); >> dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); >> >> capacity = 10; //########## test code : force not to call netif_start_queue >> >> if (capacity >= 2+MAX_SKB_FRAGS) { >> netif_start_queue(dev); >> virtqueue_disable_cb(vi->svq); >> } else { >> //########## OTOH if oft...
2015 Mar 16
1
virtio-net: tx queue was stopped
...capacity += free_old_xmit_skbs(vi); >> dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); >> >> capacity = 10; //########## test code : force not to call netif_start_queue >> >> if (capacity >= 2+MAX_SKB_FRAGS) { >> netif_start_queue(dev); >> virtqueue_disable_cb(vi->svq); >> } else { >> //########## OTOH if oft...
2015 Mar 16
0
virtio-net: tx queue was stopped
...apacity += free_old_xmit_skbs(vi); > >> dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); > >> > >> capacity = 10; //########## test code : force not to call netif_start_queue > >> > >> if (capacity >= 2+MAX_SKB_FRAGS) { > >> netif_start_queue(dev); > >> virtqueue_disable_cb(vi->svq); > >> } else { > >&gt...
2015 Mar 16
0
virtio-net: tx queue was stopped
...apacity += free_old_xmit_skbs(vi); > >> dev_warn(&dev->dev, "free_old_xmit_skbs capacity =%d MAX_SKB_FRAGS=%d", capacity, MAX_SKB_FRAGS); > >> > >> capacity = 10; //########## test code : force not to call netif_start_queue > >> > >> if (capacity >= 2+MAX_SKB_FRAGS) { > >> netif_start_queue(dev); > >> virtqueue_disable_cb(vi->svq); > >> } else { > >&gt...
2011 Jun 02
6
[PATCHv2 RFC 0/4] virtio and vhost-net capacity handling
OK, here's a new attempt to use the new capacity api. I also added more comments to clarify the logic. Hope this is more readable. Let me know pls. This is on top of the patches applied by Rusty. Warning: untested. Posting now to give people chance to comment on the API. Changes from v1: - fix comment in patch 2 to correct confusion noted by Rusty - rewrite patch 3 along the lines
2011 Jun 02
6
[PATCHv2 RFC 0/4] virtio and vhost-net capacity handling
OK, here's a new attempt to use the new capacity api. I also added more comments to clarify the logic. Hope this is more readable. Let me know pls. This is on top of the patches applied by Rusty. Warning: untested. Posting now to give people chance to comment on the API. Changes from v1: - fix comment in patch 2 to correct confusion noted by Rusty - rewrite patch 3 along the lines
2008 Apr 28
3
[PATCH 1/4] virtio: wean net driver off NETDEV_TX_BUSY
...to send\n", dev->name); - netif_stop_queue(dev); - /* Activate callback for using skbs: if this returns false it - * means some were used in the meantime. */ - if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { - vi->svq->vq_ops->disable_cb(vi->svq); - netif_start_queue(dev); - goto again; + /* If we has a buffer left over from last time, send it now. */ + if (vi->last_xmit_skb) { + if (xmit_skb(vi, vi->last_xmit_skb) != 0) { + /* Drop this skb: we only queue one. */ + kfree_skb(skb); + goto stop_queue; } - __skb_unlink(skb, &vi->send); +...
2008 Apr 28
3
[PATCH 1/4] virtio: wean net driver off NETDEV_TX_BUSY
...to send\n", dev->name); - netif_stop_queue(dev); - /* Activate callback for using skbs: if this returns false it - * means some were used in the meantime. */ - if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { - vi->svq->vq_ops->disable_cb(vi->svq); - netif_start_queue(dev); - goto again; + /* If we has a buffer left over from last time, send it now. */ + if (vi->last_xmit_skb) { + if (xmit_skb(vi, vi->last_xmit_skb) != 0) { + /* Drop this skb: we only queue one. */ + kfree_skb(skb); + goto stop_queue; } - __skb_unlink(skb, &vi->send); +...
2011 Jun 01
5
[PATCH RFC 0/3] virtio and vhost-net capacity handling
OK, here's a new attempt to use the new capacity api. I also added more comments to clarify the logic. Hope this is more readable. Let me know pls. This is on top of the patches applied by Rusty. Note: there are now actually 2 calls to fee_old_xmit_skbs on data path so instead of passing flag '2' to the second one I thought we can just make each call free up at least 1 skb. This
2011 Jun 01
5
[PATCH RFC 0/3] virtio and vhost-net capacity handling
OK, here's a new attempt to use the new capacity api. I also added more comments to clarify the logic. Hope this is more readable. Let me know pls. This is on top of the patches applied by Rusty. Note: there are now actually 2 calls to fee_old_xmit_skbs on data path so instead of passing flag '2' to the second one I thought we can just make each call free up at least 1 skb. This
2018 Oct 11
0
[PATCH] virtio_net: enable tx after resuming from suspend
...et.c b/drivers/net/virtio_net.c > index dab504ec5e50..3453d80f5f81 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2256,6 +2256,7 @@ static int virtnet_restore_up(struct virtio_device *vdev) > } > > netif_device_attach(vi->dev); > + netif_start_queue(vi->dev); I believe this is duplicated with netif_tx_wake_all_queues() in netif_device_attach() above? Thanks > return err; > } >