Peter Zijlstra
a5e42516a6
locking/mutex: Fix HANDOFF condition
...
[ Upstream commit 048661a1f963e9517630f080687d48af79ed784c ]
Yanfei reported that setting HANDOFF should not depend on recomputing
@first, only on @first state. Which would then give:
if (ww_ctx || !first)
first = __mutex_waiter_is_first(lock, &waiter);
if (first)
__mutex_set_flag(lock, MUTEX_FLAG_HANDOFF);
But because 'ww_ctx || !first' is basically 'always' and the test for
first is relatively cheap, omit that first branch entirely.
Reported-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Waiman Long <longman@redhat.com>
Reviewed-by: Yanfei Xu <yanfei.xu@windriver.com>
Link: https://lore.kernel.org/r/20210630154114.896786297@infradead.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-15 09:47:25 +02:00
..
lock_events.c
lock_events.h
locking/lock_events: Use raw_cpu_{add,inc}() for stats
2019-06-03 12:32:56 +02:00
lock_events_list.h
locking/rwsem: Adaptive disabling of reader optimistic spinning
2019-06-17 12:28:09 +02:00
lockdep.c
lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage()
2021-07-14 16:53:15 +02:00
lockdep_internals.h
locking/lockdep: Decrement IRQ context counters when removing lock chain
2020-10-01 13:17:33 +02:00
lockdep_proc.c
locking/lockdep: Fix overflow in presentation of average lock-time
2020-09-03 11:26:47 +02:00
lockdep_states.h
locktorture.c
locktorture: Print ratio of acquisitions, not failures
2020-04-23 10:36:44 +02:00
Makefile
locking/rwsem: Merge rwsem.h and rwsem-xadd.c into rwsem.c
2019-06-17 12:27:57 +02:00
mcs_spinlock.h
mutex-debug.c
locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
2021-05-26 12:05:15 +02:00
mutex-debug.h
locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
2021-05-26 12:05:15 +02:00
mutex.c
locking/mutex: Fix HANDOFF condition
2021-09-15 09:47:25 +02:00
mutex.h
locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
2021-05-26 12:05:15 +02:00
osq_lock.c
percpu-rwsem.c
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
2019-06-28 19:46:47 +02:00
qrwlock.c
locking/qrwlock: Fix ordering in queued_write_lock_slowpath()
2021-04-28 13:19:14 +02:00
qspinlock.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
2019-05-30 11:26:37 -07:00
qspinlock_paravirt.h
Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
2019-09-25 10:22:37 +02:00
qspinlock_stat.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
2019-05-30 11:26:37 -07:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex.c
rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
2021-01-30 13:54:09 +01:00
rtmutex.h
rtmutex_common.h
rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
2021-01-30 13:54:09 +01:00
rwsem.c
exec: Transform exec_update_mutex into a rw_semaphore
2021-01-09 13:44:55 +01:00
rwsem.h
locking/rwsem: Merge rwsem.h and rwsem-xadd.c into rwsem.c
2019-06-17 12:27:57 +02:00
semaphore.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436
2019-06-05 17:37:17 +02:00
spinlock.c
spinlock_debug.c
locking/spinlock/debug: Fix various data races
2020-01-12 12:21:13 +01:00
test-ww_mutex.c