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...