search for: u64_stats_fetch_retry

Displaying 10 results from an estimated 10 matches for "u64_stats_fetch_retry".

2012 Jun 06
9
[PATCH] virtio-net: fix a race on 32bit arches
...tats64 *virtnet_stats(struct net_device *dev, u64 tpackets, tbytes, rpackets, rbytes; do { - start = u64_stats_fetch_begin(&stats->syncp); + start = u64_stats_fetch_begin(&stats->tx_syncp); tpackets = stats->tx_packets; tbytes = stats->tx_bytes; + } while (u64_stats_fetch_retry(&stats->tx_syncp, start)); + + do { + start = u64_stats_fetch_begin(&stats->rx_syncp); rpackets = stats->rx_packets; rbytes = stats->rx_bytes; - } while (u64_stats_fetch_retry(&stats->syncp, start)); + } while (u64_stats_fetch_retry(&stats->rx_syncp,...
2012 Jun 06
9
[PATCH] virtio-net: fix a race on 32bit arches
...tats64 *virtnet_stats(struct net_device *dev, u64 tpackets, tbytes, rpackets, rbytes; do { - start = u64_stats_fetch_begin(&stats->syncp); + start = u64_stats_fetch_begin(&stats->tx_syncp); tpackets = stats->tx_packets; tbytes = stats->tx_bytes; + } while (u64_stats_fetch_retry(&stats->tx_syncp, start)); + + do { + start = u64_stats_fetch_begin(&stats->rx_syncp); rpackets = stats->rx_packets; rbytes = stats->rx_bytes; - } while (u64_stats_fetch_retry(&stats->syncp, start)); + } while (u64_stats_fetch_retry(&stats->rx_syncp,...
2012 Jun 06
2
[V2 RFC net-next PATCH 1/2] virtio_net: convert the statistics into array
...s->tx_bytes; - rpackets = stats->rx_packets; - rbytes = stats->rx_bytes; + tpackets = stats->data[VIRTNET_TX_PACKETS]; + tbytes = stats->data[VIRTNET_TX_BYTES]; + rpackets = stats->data[VIRTNET_RX_PACKETS]; + rbytes = stats->data[VIRTNET_RX_BYTES]; } while (u64_stats_fetch_retry(&stats->syncp, start)); tot->rx_packets += rpackets;
2012 Jun 06
2
[V2 RFC net-next PATCH 1/2] virtio_net: convert the statistics into array
...s->tx_bytes; - rpackets = stats->rx_packets; - rbytes = stats->rx_bytes; + tpackets = stats->data[VIRTNET_TX_PACKETS]; + tbytes = stats->data[VIRTNET_TX_BYTES]; + rpackets = stats->data[VIRTNET_RX_PACKETS]; + rbytes = stats->data[VIRTNET_RX_BYTES]; } while (u64_stats_fetch_retry(&stats->syncp, start)); tot->rx_packets += rpackets;
2011 Jun 15
3
[PATCH] virtio-net: per cpu 64 bit stats
...= per_cpu_ptr(vi->stats, cpu); + u64 tpackets, tbytes, rpackets, rbytes; + + do { + start = u64_stats_fetch_begin(&stats->syncp); + tpackets = stats->tx_packets; + tbytes = stats->tx_bytes; + rpackets = stats->rx_packets; + rbytes = stats->rx_bytes; + } while (u64_stats_fetch_retry(&stats->syncp, start)); + + tot->rx_packets += rpackets; + tot->tx_packets += tpackets; + tot->rx_bytes += rbytes; + tot->tx_bytes += tbytes; + } + + tot->tx_dropped = dev->stats.tx_dropped; + tot->rx_dropped = dev->stats.rx_dropped; + tot->rx_length_errors...
2011 Jun 15
3
[PATCH] virtio-net: per cpu 64 bit stats
...= per_cpu_ptr(vi->stats, cpu); + u64 tpackets, tbytes, rpackets, rbytes; + + do { + start = u64_stats_fetch_begin(&stats->syncp); + tpackets = stats->tx_packets; + tbytes = stats->tx_bytes; + rpackets = stats->rx_packets; + rbytes = stats->rx_bytes; + } while (u64_stats_fetch_retry(&stats->syncp, start)); + + tot->rx_packets += rpackets; + tot->tx_packets += tpackets; + tot->rx_bytes += rbytes; + tot->tx_bytes += tbytes; + } + + tot->tx_dropped = dev->stats.tx_dropped; + tot->rx_dropped = dev->stats.rx_dropped; + tot->rx_length_errors...
2012 Jun 05
1
[net-next RFC PATCH] virtio_net: collect satistics and export through ethtool
...; + + for_each_possible_cpu(cpu) { + struct virtnet_stats *stats = per_cpu_ptr(vi->stats, cpu); + do { + start = u64_stats_fetch_begin(&stats->syncp); + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + VIRTNET_STAT(&sample, i) = + VIRTNET_STAT(stats, i); + + } + } while (u64_stats_fetch_retry(&stats->syncp, start)); + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + *buf = VIRTNET_STAT(&sample, i); + VIRTNET_STAT(&total, i) += VIRTNET_STAT(stats, i); + buf++; + } + } + + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + *buf = VIRTNET_STAT(&total, i); + buf++; +...
2012 Jun 05
1
[net-next RFC PATCH] virtio_net: collect satistics and export through ethtool
...; + + for_each_possible_cpu(cpu) { + struct virtnet_stats *stats = per_cpu_ptr(vi->stats, cpu); + do { + start = u64_stats_fetch_begin(&stats->syncp); + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + VIRTNET_STAT(&sample, i) = + VIRTNET_STAT(stats, i); + + } + } while (u64_stats_fetch_retry(&stats->syncp, start)); + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + *buf = VIRTNET_STAT(&sample, i); + VIRTNET_STAT(&total, i) += VIRTNET_STAT(stats, i); + buf++; + } + } + + for (i = 0; i < VIRTNET_NUM_STATS; i++) { + *buf = VIRTNET_STAT(&total, i); + buf++; +...
2011 Nov 11
10
[RFC] [ver3 PATCH 0/6] Implement multiqueue virtio-net
This patch series resurrects the earlier multiple TX/RX queues functionality for virtio_net, and addresses the issues pointed out. It also includes an API to share irq's, f.e. amongst the TX vqs. I plan to run TCP/UDP STREAM and RR tests for local->host and local->remote, and send the results in the next couple of days. patch #1: Introduce VIRTIO_NET_F_MULTIQUEUE patch #2: Move
2011 Nov 11
10
[RFC] [ver3 PATCH 0/6] Implement multiqueue virtio-net
This patch series resurrects the earlier multiple TX/RX queues functionality for virtio_net, and addresses the issues pointed out. It also includes an API to share irq's, f.e. amongst the TX vqs. I plan to run TCP/UDP STREAM and RR tests for local->host and local->remote, and send the results in the next couple of days. patch #1: Introduce VIRTIO_NET_F_MULTIQUEUE patch #2: Move