1. 23 Feb, 2022 38 commits
  2. 22 Feb, 2022 2 commits
    • Eric Dumazet's avatar
      gro_cells: avoid using synchronize_rcu() in gro_cells_destroy() · ee8f97ef
      Eric Dumazet authored
      Another thing making netns dismantles potentially very slow is located
      in gro_cells_destroy(),
      whenever cleanup_net() has to remove a device using gro_cells framework.
      
      RTNL is not held at this stage, so synchronize_net()
      is calling synchronize_rcu():
      
      netdev_run_todo()
       ip_tunnel_dev_free()
        gro_cells_destroy()
         synchronize_net()
          synchronize_rcu() // Ouch.
      
      This patch uses call_rcu(), and gave me a 25x performance improvement
      in my tests.
      
      cleanup_net() is no longer blocked ~10 ms per synchronize_rcu()
      call.
      
      In the case we could not allocate the memory needed to queue the
      deferred free, use synchronize_rcu_expedited()
      
      v2: made percpu_free_defer_callback() static
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Link: https://lore.kernel.org/r/20220220041155.607637-1-eric.dumazet@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ee8f97ef
    • David S. Miller's avatar
      Merge branch 'net-dsa-b53-non-legacy' · d4276e57
      David S. Miller authored
      Russell King says:
      
      ====================
      net: dsa: b53: convert to phylink_generic_validate() and mark as non-legacy
      
      This series converts b53 to use phylink_generic_validate() and also
      marks this driver as non-legacy.
      
      Patch 1 cleans up an if() condition to be more readable before we
      proceed with the conversion.
      
      Patch 2 populates the supported_interfaces and mac_capabilities members
      of phylink_config.
      
      Patch 3 drops the use of phylink_helper_basex_speed() which is now not
      necessary.
      
      Patch 4 switches the driver to use phylink_generic_validate()
      
      Patch 5 marks the driver as non-legacy.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4276e57