[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170515155119.040047d1@xeon-e3>
Date: Mon, 15 May 2017 15:51:19 -0700
From: Stephen Hemminger <stephen@...workplumber.org>
To: Saeed Mahameed <saeedm@...lanox.com>
Cc: "David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Gal Pressman <galp@...lanox.com>, kernel-team@...com
Subject: Re: [net 1/6] net/mlx5e: Use a spinlock to synchronize statistics
On Fri, 12 May 2017 14:56:45 +0300
Saeed Mahameed <saeedm@...lanox.com> wrote:
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
> index 0099a3e397bc..c41cf7e82795 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
> @@ -756,6 +756,7 @@ struct mlx5e_priv {
> struct mlx5_core_dev *mdev;
> struct net_device *netdev;
> struct mlx5e_stats stats;
> + rwlock_t stats_lock;
A reader-writer lock is slower than a spin_lock.
The only case where reader/writer lock is preferred is when writer
will hold onto the lock for a significant amount of time.
Also you only need each statistic to be atomic, the network device API
never guarantees transactional update across multiple statistics.
Powered by blists - more mailing lists