diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2024-11-11 09:38:26 -0800 |
---|---|---|
committer | Frederic Weisbecker <frederic@kernel.org> | 2024-11-12 23:30:33 +0100 |
commit | 174dd22a781b97cb355b1037f0931436a254d3be (patch) | |
tree | 5dda585f3b2ce6bf957245be2118e7c7bad1747b | |
parent | 768b1f87098a4a586353898b074989808b1b27ad (diff) |
srcu: Remove smp_mb() from srcu_read_unlock_lite()
The srcu_read_unlock_lite() function invokes __srcu_read_unlock() instead
of __srcu_read_unlock_lite(), which means that it is doing an unnecessary
smp_mb(). This is harmless other than the performance degradation.
This commit therefore switches to __srcu_read_unlock_lite().
Reported-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Closes: https://lore.kernel.org/all/d07e8f4a-d5ff-4c8e-8e61-50db285c57e9@amd.com/
Fixes: c0f08d6b5a61 ("srcu: Add srcu_read_lock_lite() and srcu_read_unlock_lite()")
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
-rw-r--r-- | include/linux/srcu.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/srcu.h b/include/linux/srcu.h index bab1dae3f69e..56f83237de4d 100644 --- a/include/linux/srcu.h +++ b/include/linux/srcu.h @@ -372,7 +372,7 @@ static inline void srcu_read_unlock_lite(struct srcu_struct *ssp, int idx) WARN_ON_ONCE(idx & ~0x1); srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_LITE); srcu_lock_release(&ssp->dep_map); - __srcu_read_unlock(ssp, idx); + __srcu_read_unlock_lite(ssp, idx); } /** |