1. 24 Feb, 2020 36 commits
  2. 23 Feb, 2020 4 commits
    • Heiner Kallweit's avatar
      r8169: remove RTL_EVENT_NAPI constants · 2045e158
      Heiner Kallweit authored
      These constants are used in one place only, so we can remove them and
      use the values directly.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2045e158
    • David S. Miller's avatar
      Merge branch 'mlxsw-Remove-RTNL-from-route-insertion-path' · 68e2617a
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Remove RTNL from route insertion path
      
      This patch set removes RTNL from the route insertion path in mlxsw in
      order to reduce the control plane latency: the time it takes to push
      routes from user space to the kernel and mlxsw.
      
      Up until now mlxsw did not have a lock to protect its shared router data
      structures and instead relied on RTNL. While this was simple and worked,
      it resulted in large control plane latencies as RTNL was heavily
      contended - by both the task receiving the netlink messages from user
      space and the mlxsw workqueue that programs the routes to the device.
      
      By removing RTNL and introducing a new router mutex, this patch set
      reduces the control plane latency by ~80%. A single mutex is added as
      inside mlxsw there is not a lot of concurrency. In addition, a more
      fine-grained locking scheme is much more error-prone.
      
      Patches #1-#6 are preparations. They add needed locking in NVE and
      multicast routing code instead of relying on RTNL
      Patch #7 introduces the new mutex
      Patches #8-#12 gradually take the lock in various entry points into the
      routing code
      Patch #13 removes RTNL in places where it is no longer required
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      68e2617a
    • Ido Schimmel's avatar
      mlxsw: spectrum: Remove RTNL where possible · 9811f7a2
      Ido Schimmel authored
      After introducing the router lock in previous patches and making sure it
      protects internal router structures, we no longer need to rely on RTNL
      to serialize access to these structures.
      
      Remove RTNL from call sites that no longer require it.
      
      Two calls sites that keep taking the lock are
      mlxsw_sp_router_fibmr_event_work() and mlxsw_sp_inet6addr_event_work().
      The first calls into ACL code that still assumes RTNL is taken. The
      second potentially calls into the FID code that also relies on RTNL.
      Removing RTNL from these two call sites is the subject of future work.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9811f7a2
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Take router lock from exported helpers · 50c173c3
      Ido Schimmel authored
      The routing code exports some helper functions that can be called from
      other driver modules such as the bridge. These helpers are never called
      with the router lock already held and therefore need to take it in order
      to serialize access to shared router structures.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      50c173c3