Message ID | 20241112013143.1926484-1-paulmck@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | ea13f28bd2cb2404dcd87943498c37cc64c6220a |
Headers | show |
Series | [1/3] srcu: Remove smp_mb() from srcu_read_unlock_lite() | expand |
On 11/12/2024 7:01 AM, Paul E. McKenney wrote: > 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> - Neeraj
diff --git a/include/linux/srcu.h b/include/linux/srcu.h index 512a8c54ba5ba..fff6265818d4f 100644 --- a/include/linux/srcu.h +++ b/include/linux/srcu.h @@ -373,7 +373,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); } /**
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> --- include/linux/srcu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)