[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160318.231506.825745828255522925.davem@davemloft.net>
Date: Fri, 18 Mar 2016 23:15:06 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: netdev@...r.kernel.org, gospo@...ulusnetworks.com,
j.vosburgh@...il.com, vfalico@...il.com
Subject: Re: [PATCH net] bonding: fix bond_get_stats()
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Thu, 17 Mar 2016 17:23:36 -0700
> From: Eric Dumazet <edumazet@...gle.com>
>
> bond_get_stats() can be called from rtnetlink (with RTNL held)
> or from /proc/net/dev seq handler (with RCU held)
>
> The logic added in commit 5f0c5f73e5ef ("bonding: make global bonding
> stats more reliable") kind of assumed only one cpu could run there.
>
> If multiple threads are reading /proc/net/dev, stats can be really
> messed up after a while.
>
> A second problem is that some fields are 32bit, so we need to properly
> handle the wrap around problem.
>
> Given that RTNL is not always held, we need to use
> bond_for_each_slave_rcu().
>
> Fixes: 5f0c5f73e5ef ("bonding: make global bonding stats more reliable")
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
Applied and queued up for -stable, thanks Eric.
Powered by blists - more mailing lists