All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH net-next 00/13] Make .ndo_get_stats64 sleepable
@ 2020-12-06 23:59 Vladimir Oltean
  2020-12-06 23:59 ` [RFC PATCH net-next 01/13] RDMA/mlx4: remove bogus dev_base_lock usage Vladimir Oltean
                   ` (12 more replies)
  0 siblings, 13 replies; 24+ messages in thread
From: Vladimir Oltean @ 2020-12-06 23:59 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski
  Cc: netdev, Andrew Lunn, Florian Fainelli, Paul Gortmaker,
	Pablo Neira Ayuso, Jiri Benc, Cong Wang, Jamal Hadi Salim,
	Stephen Hemminger, Eric Dumazet, George McCollister,
	Oleksij Rempel, Leon Romanovsky, Heiko Carstens, Vasily Gorbik,
	linux-s390, Jay Vosburgh, Veaceslav Falico, Andy Gospodarek,
	Sridhar Samudrala, James E.J. Bottomley, Helge Deller,
	linux-parisc, Christian Brauner

This series converts all callers of dev_get_stats() to be in sleepable
context, so that we can do more work in the .ndo_get_stats64 method.

The situation today is that if we have hardware that needs to be
accessed through a slow bus like SPI, or through a firmware, we cannot
do that directly in .ndo_get_stats64, so we have to poll counters
periodically and return a cached (not up to date) copy in the atomic NDO
callback. This is undesirable on both ends: more work than strictly
needed is being done, and the end result is also worse (not guaranteed
to be up to date). So converting the code paths to be compatible with
sleeping seems to make more sense.

Cc: Leon Romanovsky <leon@kernel.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: linux-s390@vger.kernel.org
Cc: Jay Vosburgh <j.vosburgh@gmail.com>
Cc: Veaceslav Falico <vfalico@gmail.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: Sridhar Samudrala <sridhar.samudrala@intel.com>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-parisc@vger.kernel.org
Cc: Christian Brauner <christian.brauner@ubuntu.com>

Vladimir Oltean (13):
  RDMA/mlx4: remove bogus dev_base_lock usage
  net: mark dev_base_lock for deprecation
  net: introduce a mutex for the netns interface lists
  s390/appldata_net_sum: hold the netdev lists lock when retrieving
    device statistics
  net: bonding: hold the netdev lists lock when retrieving device
    statistics
  net_failover: hold the netdev lists lock when retrieving device
    statistics
  parisc/led: remove trailing whitespaces
  parisc/led: reindent the code that gathers device statistics
  parisc/led: hold the netdev lists lock when retrieving device
    statistics
  net: procfs: hold the netdev lists lock when retrieving device
    statistics
  net: sysfs: don't hold dev_base_lock while retrieving device
    statistics
  net: mark ndo_get_stats64 as being able to sleep
  net: remove obsolete comments about ndo_get_stats64 context from eth
    drivers

 Documentation/networking/netdevices.rst     |   4 +-
 Documentation/networking/statistics.rst     |   9 +-
 arch/s390/appldata/appldata_net_sum.c       |   8 +-
 drivers/infiniband/hw/mlx4/main.c           |   3 -
 drivers/net/bonding/bond_main.c             |  16 +-
 drivers/net/ethernet/cisco/enic/enic_main.c |   1 -
 drivers/net/ethernet/nvidia/forcedeth.c     |   2 -
 drivers/net/ethernet/sfc/efx_common.c       |   1 -
 drivers/net/ethernet/sfc/falcon/efx.c       |   1 -
 drivers/net/net_failover.c                  |  15 +-
 drivers/parisc/led.c                        | 164 ++++++++++----------
 include/net/bonding.h                       |   1 -
 include/net/net_failover.h                  |   3 -
 include/net/net_namespace.h                 |   5 +
 net/core/dev.c                              |  63 +++++---
 net/core/net-procfs.c                       |  13 +-
 net/core/net-sysfs.c                        |   3 +-
 17 files changed, 162 insertions(+), 150 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2020-12-09  1:29 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-06 23:59 [RFC PATCH net-next 00/13] Make .ndo_get_stats64 sleepable Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 01/13] RDMA/mlx4: remove bogus dev_base_lock usage Vladimir Oltean
2020-12-08  6:43   ` Leon Romanovsky
2020-12-06 23:59 ` [RFC PATCH net-next 02/13] net: mark dev_base_lock for deprecation Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 03/13] net: introduce a mutex for the netns interface lists Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 04/13] s390/appldata_net_sum: hold the netdev lists lock when retrieving device statistics Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 05/13] net: bonding: " Vladimir Oltean
2020-12-07  1:00   ` Vladimir Oltean
2020-12-07 15:22     ` Vladimir Oltean
2020-12-08 23:57     ` Jakub Kicinski
2020-12-09  0:03       ` Vladimir Oltean
2020-12-09  0:17         ` Jakub Kicinski
2020-12-09  1:14           ` Vladimir Oltean
2020-12-09  1:28             ` Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 06/13] net_failover: " Vladimir Oltean
2020-12-07  2:22   ` kernel test robot
2020-12-06 23:59 ` [RFC PATCH net-next 07/13] parisc/led: remove trailing whitespaces Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 08/13] parisc/led: reindent the code that gathers device statistics Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 09/13] parisc/led: hold the netdev lists lock when retrieving " Vladimir Oltean
2020-12-07  6:14   ` kernel test robot
2020-12-06 23:59 ` [RFC PATCH net-next 10/13] net: procfs: " Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 11/13] net: sysfs: don't hold dev_base_lock while " Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 12/13] net: mark ndo_get_stats64 as being able to sleep Vladimir Oltean
2020-12-06 23:59 ` [RFC PATCH net-next 13/13] net: remove obsolete comments about ndo_get_stats64 context from eth drivers Vladimir Oltean

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.