1. 10 Apr, 2019 1 commit
  2. 02 Apr, 2019 14 commits
  3. 19 Feb, 2019 1 commit
  4. 14 Feb, 2019 15 commits
  5. 13 Feb, 2019 1 commit
  6. 11 Feb, 2019 1 commit
    • Cong Wang's avatar
      mlx5: use RCU lock in mlx5_eq_cq_get() · 1fbf1252
      Cong Wang authored
      mlx5_eq_cq_get() is called in IRQ handler, the spinlock inside
      gets a lot of contentions when we test some heavy workload
      with 60 RX queues and 80 CPU's, and it is clearly shown in the
      flame graph.
      
      In fact, radix_tree_lookup() is perfectly fine with RCU read lock,
      we don't have to take a spinlock on this hot path. This is pretty
      much similar to commit 291c566a
      ("net/mlx4_core: Fix racy CQ (Completion Queue) free"). Slow paths
      are still serialized with the spinlock, and with synchronize_irq()
      it should be safe to just move the fast path to RCU read lock.
      
      This patch itself reduces the latency by about 50% for our memcached
      workload on a 4.14 kernel we test. In upstream, as pointed out by Saeed,
      this spinlock gets some rework in commit 02d92f79
      ("net/mlx5: CQ Database per EQ"), so the difference could be smaller.
      
      Cc: Saeed Mahameed <saeedm@mellanox.com>
      Cc: Tariq Toukan <tariqt@mellanox.com>
      Acked-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      1fbf1252
  7. 03 Feb, 2019 2 commits
  8. 24 Jan, 2019 2 commits
  9. 15 Jan, 2019 1 commit
  10. 13 Jan, 2019 2 commits