Thread (18 messages) flat view 18 messages, 4 authors, 2011-11-16

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

From: Eric Dumazet <hidden>
Date: 2011-11-16 20:32:40
Also in: lkml

Le mercredi 16 novembre 2011 à 19:32 +0000, Ben Hutchings a écrit :
On Wed, 2011-11-16 at 11:25 -0800, David Decotigny wrote:
quoted
Thanks for your feedback on these concerns.

On Wed, Nov 16, 2011 at 9:14 AM, Ben Hutchings
[off-list ref] wrote:
quoted
On Wed, 2011-11-16 at 08:55 -0800, Stephen Hemminger wrote:
quoted
Or realize that the Tx side is single threaded by dev->xmit_lock already
and the Rx side is single threaded by NAPI.
Right.
Yes, that's what I meant by "Each software stat field is updated by
one single writer." in a previous email. However, I think that TX and
RX paths are not always synchronized. So I'm afraid that if I'm using
a single seqcount, I might run into trouble in the absence of a lock
around each update.... and I'd really prefer to avoid such a lock. Are
you suggesting I should use 2 independent seqcounts? One for RX path,
the other for TX path, all this without a lock around writers?
Yes, there should be 1 for each path.
David, drivers/net/ethernet/marvell/sky2.c contains code like that
(different syncpfor rx/tx)

TX path:
                        u64_stats_update_begin(&sky2->tx_stats.syncp);
                        ++sky2->tx_stats.packets;
                        sky2->tx_stats.bytes += skb->len;
                        u64_stats_update_end(&sky2->tx_stats.syncp);


RX path:

        u64_stats_update_begin(&sky2->rx_stats.syncp);
        sky2->rx_stats.packets += packets;
        sky2->rx_stats.bytes += bytes;
        u64_stats_update_end(&sky2->rx_stats.syncp);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help