search for: netdev_tx_completed_queue

Displaying 20 results from an estimated 30 matches for "netdev_tx_completed_queue".

2018 Dec 06
7
[PATCH RFC 1/2] virtio-net: bql support
...truct send_queue *sq, struct netdev_queue *txq, > + bool use_napi) > { > struct sk_buff *skb; > unsigned int len; > @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) > if (!packets) > return; > > + if (use_napi) > + netdev_tx_completed_queue(txq, packets, bytes); > + > u64_stats_update_begin(&sq->stats.syncp); > sq->stats.bytes += bytes; > sq->stats.packets += packets; > @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) > return; > > if (__netif_tx_t...
2018 Dec 06
7
[PATCH RFC 1/2] virtio-net: bql support
...truct send_queue *sq, struct netdev_queue *txq, > + bool use_napi) > { > struct sk_buff *skb; > unsigned int len; > @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) > if (!packets) > return; > > + if (use_napi) > + netdev_tx_completed_queue(txq, packets, bytes); > + > u64_stats_update_begin(&sq->stats.syncp); > sq->stats.bytes += bytes; > sq->stats.packets += packets; > @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) > return; > > if (__netif_tx_t...
2014 Oct 15
1
[PATCH RFC v2 2/3] virtio_net: bql
...ts_update_begin(&stats->tx_syncp); stats->tx_bytes += skb->len; + bytes += skb->len; stats->tx_packets++; u64_stats_update_end(&stats->tx_syncp); @@ -240,6 +243,8 @@ static unsigned int free_old_xmit_skbs(struct send_queue *sq, int budget) packets++; } + netdev_tx_completed_queue(txq, packets, bytes); + return packets; } @@ -810,7 +815,7 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget) again: __netif_tx_lock(txq, smp_processor_id()); virtqueue_disable_cb(sq->vq); - sent += free_old_xmit_skbs(sq, budget - sent); + sent += free_old_xmit_skbs(tx...
2014 Oct 15
1
[PATCH RFC v2 2/3] virtio_net: bql
...ts_update_begin(&stats->tx_syncp); stats->tx_bytes += skb->len; + bytes += skb->len; stats->tx_packets++; u64_stats_update_end(&stats->tx_syncp); @@ -240,6 +243,8 @@ static unsigned int free_old_xmit_skbs(struct send_queue *sq, int budget) packets++; } + netdev_tx_completed_queue(txq, packets, bytes); + return packets; } @@ -810,7 +815,7 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget) again: __netif_tx_lock(txq, smp_processor_id()); virtqueue_disable_cb(sq->vq); - sent += free_old_xmit_skbs(sq, budget - sent); + sent += free_old_xmit_skbs(tx...
2018 Dec 27
2
[PATCH RFC 1/2] virtio-net: bql support
...bool use_napi) >>> { >>> struct sk_buff *skb; >>> unsigned int len; >>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>> if (!packets) >>> return; >>> + if (use_napi) >>> + netdev_tx_completed_queue(txq, packets, bytes); >>> + >>> u64_stats_update_begin(&sq->stats.syncp); >>> sq->stats.bytes += bytes; >>> sq->stats.packets += packets; >>> @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) >&g...
2018 Dec 27
2
[PATCH RFC 1/2] virtio-net: bql support
...bool use_napi) >>> { >>> struct sk_buff *skb; >>> unsigned int len; >>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>> if (!packets) >>> return; >>> + if (use_napi) >>> + netdev_tx_completed_queue(txq, packets, bytes); >>> + >>> u64_stats_update_begin(&sq->stats.syncp); >>> sq->stats.bytes += bytes; >>> sq->stats.packets += packets; >>> @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) >&g...
2018 Dec 05
3
[PATCH RFC 0/2] virtio-net: interrupt related improvements
Now that we have brought the virtio overhead way down with a fast packed ring implementation, we seem to be actually observing TCP drops indicative of bufferbloat. So let's try to enable TSQ. Note: it isn't clear that the default pacing is great for the virt usecase. It's worth trying to play with sk_pacing_shift_update to see what happens. For this reason, and for a more important
2018 Dec 27
2
[PATCH RFC 1/2] virtio-net: bql support
...bool use_napi) >>> { >>> struct sk_buff *skb; >>> unsigned int len; >>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>> if (!packets) >>> return; >>> + if (use_napi) >>> + netdev_tx_completed_queue(txq, packets, bytes); >>> + >>> u64_stats_update_begin(&sq->stats.syncp); >>> sq->stats.bytes += bytes; >>> sq->stats.packets += packets; >>> @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) >&g...
2018 Dec 27
2
[PATCH RFC 1/2] virtio-net: bql support
...bool use_napi) >>> { >>> struct sk_buff *skb; >>> unsigned int len; >>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>> if (!packets) >>> return; >>> + if (use_napi) >>> + netdev_tx_completed_queue(txq, packets, bytes); >>> + >>> u64_stats_update_begin(&sq->stats.syncp); >>> sq->stats.bytes += bytes; >>> sq->stats.packets += packets; >>> @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) >&g...
2014 Oct 15
0
[PATCH RFC v2 3/3] virtio-net: optimize free_old_xmit_skbs stats
...ead when no packets have been processed + * happens when called speculatively from start_xmit. */ + if (!packets) + return 0; + + u64_stats_update_begin(&stats->tx_syncp); + stats->tx_bytes += bytes; + stats->tx_packets += packets; + u64_stats_update_end(&stats->tx_syncp); + netdev_tx_completed_queue(txq, packets, bytes); return packets; -- MST
2014 Oct 20
0
[PATCH RFC v3 2/3] virtio_net: bql
...u64_stats_update_begin(&stats->tx_syncp); stats->tx_bytes += skb->len; + bytes += skb->len; stats->tx_packets++; u64_stats_update_end(&stats->tx_syncp); @@ -241,6 +243,8 @@ static unsigned int free_old_xmit_skbs(struct netdev_queue *txq, packets++; } + netdev_tx_completed_queue(txq, packets, bytes); + if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) netif_tx_start_queue(txq); @@ -959,6 +963,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) int err; struct netdev_queue *txq = netdev_get_tx_queue(dev, qnum); bool kick = !skb->x...
2014 Oct 20
0
[PATCH RFC v3 3/3] virtio-net: optimize free_old_xmit_skbs stats
...ead when no packets have been processed + * happens when called speculatively from start_xmit. */ + if (!packets) + return 0; + + u64_stats_update_begin(&stats->tx_syncp); + stats->tx_bytes += bytes; + stats->tx_packets += packets; + u64_stats_update_end(&stats->tx_syncp); + netdev_tx_completed_queue(txq, packets, bytes); if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) -- MST
2014 Oct 15
0
[PATCH RFC v2 3/3] virtio-net: optimize free_old_xmit_skbs stats
...ead when no packets have been processed + * happens when called speculatively from start_xmit. */ + if (!packets) + return 0; + + u64_stats_update_begin(&stats->tx_syncp); + stats->tx_bytes += bytes; + stats->tx_packets += packets; + u64_stats_update_end(&stats->tx_syncp); + netdev_tx_completed_queue(txq, packets, bytes); return packets; -- MST
2014 Oct 20
0
[PATCH RFC v3 2/3] virtio_net: bql
...u64_stats_update_begin(&stats->tx_syncp); stats->tx_bytes += skb->len; + bytes += skb->len; stats->tx_packets++; u64_stats_update_end(&stats->tx_syncp); @@ -241,6 +243,8 @@ static unsigned int free_old_xmit_skbs(struct netdev_queue *txq, packets++; } + netdev_tx_completed_queue(txq, packets, bytes); + if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) netif_tx_start_queue(txq); @@ -959,6 +963,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) int err; struct netdev_queue *txq = netdev_get_tx_queue(dev, qnum); bool kick = !skb->x...
2014 Oct 20
0
[PATCH RFC v3 3/3] virtio-net: optimize free_old_xmit_skbs stats
...ead when no packets have been processed + * happens when called speculatively from start_xmit. */ + if (!packets) + return 0; + + u64_stats_update_begin(&stats->tx_syncp); + stats->tx_bytes += bytes; + stats->tx_packets += packets; + u64_stats_update_end(&stats->tx_syncp); + netdev_tx_completed_queue(txq, packets, bytes); if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) -- MST
2018 Dec 05
0
[PATCH RFC 1/2] virtio-net: bql support
...struct send_queue *sq) +static void free_old_xmit_skbs(struct send_queue *sq, struct netdev_queue *txq, + bool use_napi) { struct sk_buff *skb; unsigned int len; @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) if (!packets) return; + if (use_napi) + netdev_tx_completed_queue(txq, packets, bytes); + u64_stats_update_begin(&sq->stats.syncp); sq->stats.bytes += bytes; sq->stats.packets += packets; @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) return; if (__netif_tx_trylock(txq)) { - free_old_xmit_skbs(sq); + f...
2019 Jan 02
2
[PATCH RFC 1/2] virtio-net: bql support
...struct sk_buff *skb; >>>>> unsigned int len; >>>>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>>>> if (!packets) >>>>> return; >>>>> + if (use_napi) >>>>> + netdev_tx_completed_queue(txq, packets, bytes); >>>>> + >>>>> u64_stats_update_begin(&sq->stats.syncp); >>>>> sq->stats.bytes += bytes; >>>>> sq->stats.packets += packets; >>>>> @@ -1364,7 +1368,7 @@ static void virtnet_po...
2019 Jan 02
2
[PATCH RFC 1/2] virtio-net: bql support
...struct sk_buff *skb; >>>>> unsigned int len; >>>>> @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) >>>>> if (!packets) >>>>> return; >>>>> + if (use_napi) >>>>> + netdev_tx_completed_queue(txq, packets, bytes); >>>>> + >>>>> u64_stats_update_begin(&sq->stats.syncp); >>>>> sq->stats.bytes += bytes; >>>>> sq->stats.packets += packets; >>>>> @@ -1364,7 +1368,7 @@ static void virtnet_po...
2018 Dec 26
0
[PATCH RFC 1/2] virtio-net: bql support
...ueue *txq, > > + bool use_napi) > > { > > struct sk_buff *skb; > > unsigned int len; > > @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) > > if (!packets) > > return; > > + if (use_napi) > > + netdev_tx_completed_queue(txq, packets, bytes); > > + > > u64_stats_update_begin(&sq->stats.syncp); > > sq->stats.bytes += bytes; > > sq->stats.packets += packets; > > @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) > > return; &g...
2018 Dec 26
0
[PATCH RFC 1/2] virtio-net: bql support
...ueue *txq, > > + bool use_napi) > > { > > struct sk_buff *skb; > > unsigned int len; > > @@ -1347,6 +1348,9 @@ static void free_old_xmit_skbs(struct send_queue *sq) > > if (!packets) > > return; > > + if (use_napi) > > + netdev_tx_completed_queue(txq, packets, bytes); > > + > > u64_stats_update_begin(&sq->stats.syncp); > > sq->stats.bytes += bytes; > > sq->stats.packets += packets; > > @@ -1364,7 +1368,7 @@ static void virtnet_poll_cleantx(struct receive_queue *rq) > > return; &g...