Subject: Re: [PATCH net-next v5 07/10] forcedeth: implement ndo_get_stats64() API

From: Stephen Hemminger <[email-masked]>
Date: Wed, 16 Nov 2011 08:55:33 -0800

On Tue, 15 Nov 2011 21:15:55 -0800
David Decotigny <[email-masked]> wrote:

> This commit implements the ndo_get_stats64() API for forcedeth. Since
> these stats are being updated from different contexts (process and
> timer), this commit adds protection (locking + atomic variables).
> 
> Tested:
>   - 16-way SMP x86_64 ->
>     RX bytes:7244556582 (7.2 GB)  TX bytes:181904254 (181.9 MB)
>   - pktgen + loopback: identical rx_bytes/tx_bytes and rx_packets/tx_packets

Rather than adding additional locking why not use a percpu structure
to hold statistics. See loopback, macvlan, veth, xen-netfront.

Or realize that the Tx side is single threaded by dev->xmit_lock already
and the Rx side is single threaded by NAPI.