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 {
> >>...
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 {
> >>...
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;
> }
>