From: Peter Zijlstra <peterz@infradead.org> To: tglx@linutronix.de Cc: mingo@kernel.org, juri.lelli@arm.com, rostedt@goodmis.org, xlpang@redhat.com, bigeasy@linutronix.de, linux-kernel@vger.kernel.org, mathieu.desnoyers@efficios.com, jdesfossez@efficios.com, bristot@redhat.com, dvhart@infradead.org, peterz@infradead.org Subject: [PATCH -v6 03/13] futex: Remove rt_mutex_deadlock_account_*() Date: Wed, 22 Mar 2017 11:35:50 +0100 Message-ID: <20170322104151.652692478@infradead.org> (raw) In-Reply-To: <20170322103547.756091212@infradead.org> [-- Attachment #0: peterz-futex-cleanup-deadlock.patch --] [-- Type: text/plain, Size: 4950 bytes --] These are unused and clutter up the code. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- kernel/locking/rtmutex-debug.c | 9 ------- kernel/locking/rtmutex-debug.h | 3 -- kernel/locking/rtmutex.c | 47 +++++++++++++++-------------------------- kernel/locking/rtmutex.h | 2 - 4 files changed, 18 insertions(+), 43 deletions(-) --- a/kernel/locking/rtmutex-debug.c +++ b/kernel/locking/rtmutex-debug.c @@ -173,12 +173,3 @@ void debug_rt_mutex_init(struct rt_mutex lock->name = name; } -void -rt_mutex_deadlock_account_lock(struct rt_mutex *lock, struct task_struct *task) -{ -} - -void rt_mutex_deadlock_account_unlock(struct task_struct *task) -{ -} - --- a/kernel/locking/rtmutex-debug.h +++ b/kernel/locking/rtmutex-debug.h @@ -9,9 +9,6 @@ * This file contains macros used solely by rtmutex.c. Debug version. */ -extern void -rt_mutex_deadlock_account_lock(struct rt_mutex *lock, struct task_struct *task); -extern void rt_mutex_deadlock_account_unlock(struct task_struct *task); extern void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter); extern void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter); extern void debug_rt_mutex_init(struct rt_mutex *lock, const char *name); --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -936,8 +936,6 @@ static int try_to_take_rt_mutex(struct r */ rt_mutex_set_owner(lock, task); - rt_mutex_deadlock_account_lock(lock, task); - return 1; } @@ -1340,8 +1338,6 @@ static bool __sched rt_mutex_slowunlock( debug_rt_mutex_unlock(lock); - rt_mutex_deadlock_account_unlock(current); - /* * We must be careful here if the fast path is enabled. If we * have no waiters queued we cannot set owner to NULL here @@ -1407,11 +1403,10 @@ rt_mutex_fastlock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout, enum rtmutex_chainwalk chwalk)) { - if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) { - rt_mutex_deadlock_account_lock(lock, current); + if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) return 0; - } else - return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK); + + return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK); } static inline int @@ -1423,21 +1418,19 @@ rt_mutex_timed_fastlock(struct rt_mutex enum rtmutex_chainwalk chwalk)) { if (chwalk == RT_MUTEX_MIN_CHAINWALK && - likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) { - rt_mutex_deadlock_account_lock(lock, current); + likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) return 0; - } else - return slowfn(lock, state, timeout, chwalk); + + return slowfn(lock, state, timeout, chwalk); } static inline int rt_mutex_fasttrylock(struct rt_mutex *lock, int (*slowfn)(struct rt_mutex *lock)) { - if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) { - rt_mutex_deadlock_account_lock(lock, current); + if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) return 1; - } + return slowfn(lock); } @@ -1447,19 +1440,18 @@ rt_mutex_fastunlock(struct rt_mutex *loc struct wake_q_head *wqh)) { DEFINE_WAKE_Q(wake_q); + bool deboost; - if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) { - rt_mutex_deadlock_account_unlock(current); + if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) + return; - } else { - bool deboost = slowfn(lock, &wake_q); + deboost = slowfn(lock, &wake_q); - wake_up_q(&wake_q); + wake_up_q(&wake_q); - /* Undo pi boosting if necessary: */ - if (deboost) - rt_mutex_adjust_prio(current); - } + /* Undo pi boosting if necessary: */ + if (deboost) + rt_mutex_adjust_prio(current); } /** @@ -1570,10 +1562,9 @@ EXPORT_SYMBOL_GPL(rt_mutex_unlock); bool __sched rt_mutex_futex_unlock(struct rt_mutex *lock, struct wake_q_head *wqh) { - if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) { - rt_mutex_deadlock_account_unlock(current); + if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) return false; - } + return rt_mutex_slowunlock(lock, wqh); } @@ -1635,7 +1626,6 @@ void rt_mutex_init_proxy_locked(struct r __rt_mutex_init(lock, NULL); debug_rt_mutex_proxy_lock(lock, proxy_owner); rt_mutex_set_owner(lock, proxy_owner); - rt_mutex_deadlock_account_lock(lock, proxy_owner); } /** @@ -1655,7 +1645,6 @@ void rt_mutex_proxy_unlock(struct rt_mut { debug_rt_mutex_proxy_unlock(lock); rt_mutex_set_owner(lock, NULL); - rt_mutex_deadlock_account_unlock(proxy_owner); } /** --- a/kernel/locking/rtmutex.h +++ b/kernel/locking/rtmutex.h @@ -11,8 +11,6 @@ */ #define rt_mutex_deadlock_check(l) (0) -#define rt_mutex_deadlock_account_lock(m, t) do { } while (0) -#define rt_mutex_deadlock_account_unlock(l) do { } while (0) #define debug_rt_mutex_init_waiter(w) do { } while (0) #define debug_rt_mutex_free_waiter(w) do { } while (0) #define debug_rt_mutex_lock(l) do { } while (0)
next prev parent reply index Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-22 10:35 [PATCH -v6 00/13] The arduous story of FUTEX_UNLOCK_PI Peter Zijlstra 2017-03-22 10:35 ` [PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter() Peter Zijlstra 2017-03-23 18:19 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-03-24 21:11 ` [PATCH -v6 01/13] " Darren Hart 2017-03-22 10:35 ` [PATCH -v6 02/13] futex: Use smp_store_release() in mark_wake_futex() Peter Zijlstra 2017-03-23 18:19 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-03-24 21:16 ` [PATCH -v6 02/13] " Darren Hart 2017-03-22 10:35 ` Peter Zijlstra [this message] 2017-03-23 18:20 ` [tip:locking/core] futex: Remove rt_mutex_deadlock_account_*() tip-bot for Peter Zijlstra 2017-03-24 21:29 ` [PATCH -v6 03/13] " Darren Hart 2017-03-24 21:31 ` Darren Hart 2017-03-22 10:35 ` [PATCH -v6 04/13] futex,rt_mutex: Provide futex specific rt_mutex API Peter Zijlstra 2017-03-23 18:20 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-03-25 0:37 ` [PATCH -v6 04/13] " Darren Hart 2017-04-06 12:15 ` Peter Zijlstra 2017-04-06 17:02 ` Darren Hart 2017-04-05 15:02 ` Darren Hart 2017-04-06 12:17 ` Peter Zijlstra 2017-04-06 17:08 ` Darren Hart 2017-03-22 10:35 ` [PATCH -v6 05/13] futex: Change locking rules Peter Zijlstra 2017-03-23 18:21 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-05 21:18 ` [PATCH -v6 05/13] " Darren Hart 2017-04-06 12:28 ` Peter Zijlstra 2017-04-06 15:58 ` Joe Perches 2017-04-06 17:21 ` Darren Hart 2017-03-22 10:35 ` [PATCH -v6 06/13] futex: Cleanup refcounting Peter Zijlstra 2017-03-23 18:21 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-05 21:29 ` [PATCH -v6 06/13] " Darren Hart 2017-03-22 10:35 ` [PATCH -v6 07/13] futex: Rework inconsistent rt_mutex/futex_q state Peter Zijlstra 2017-03-23 18:22 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-05 21:58 ` [PATCH -v6 07/13] " Darren Hart 2017-03-22 10:35 ` [PATCH -v6 08/13] futex: Pull rt_mutex_futex_unlock() out from under hb->lock Peter Zijlstra 2017-03-23 18:22 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-05 23:52 ` [PATCH -v6 08/13] " Darren Hart 2017-04-06 12:42 ` Peter Zijlstra 2017-04-06 17:42 ` Darren Hart 2017-03-22 10:35 ` [PATCH -v6 09/13] futex,rt_mutex: Introduce rt_mutex_init_waiter() Peter Zijlstra 2017-03-23 18:23 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-05 23:57 ` [PATCH -v6 09/13] " Darren Hart 2017-03-22 10:35 ` [PATCH -v6 10/13] futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock() Peter Zijlstra 2017-03-23 18:23 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-07 23:30 ` [PATCH -v6 10/13] " Darren Hart 2017-04-07 23:35 ` Darren Hart 2017-03-22 10:35 ` [PATCH -v6 11/13] futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock() Peter Zijlstra 2017-03-23 18:24 ` [tip:locking/core] " tip-bot for Peter Zijlstra 2017-04-08 0:55 ` [PATCH -v6 11/13] " Darren Hart 2017-04-10 15:51 ` alexander.levin 2017-04-10 16:03 ` Thomas Gleixner 2017-04-14 9:30 ` [tip:locking/core] futex: Avoid freeing an active timer tip-bot for Thomas Gleixner 2017-03-22 10:35 ` [PATCH -v6 12/13] futex: futex_unlock_pi() determinism Peter Zijlstra 2017-03-23 18:24 ` [tip:locking/core] futex: Futex_unlock_pi() determinism tip-bot for Peter Zijlstra 2017-04-08 1:27 ` [PATCH -v6 12/13] futex: futex_unlock_pi() determinism Darren Hart 2017-03-22 10:36 ` [PATCH -v6 13/13] futex: futex_lock_pi() vs PREEMPT_RT_FULL Peter Zijlstra 2017-03-23 18:25 ` [tip:locking/core] futex: Drop hb->lock before enqueueing on the rtmutex tip-bot for Peter Zijlstra 2017-04-08 2:26 ` [PATCH -v6 13/13] futex: futex_lock_pi() vs PREEMPT_RT_FULL Darren Hart 2017-04-08 5:22 ` Mike Galbraith 2017-04-10 8:43 ` Sebastian Andrzej Siewior 2017-04-10 9:08 ` Peter Zijlstra 2017-04-10 16:05 ` Darren Hart 2017-03-24 1:45 ` [PATCH -v6 00/13] The arduous story of FUTEX_UNLOCK_PI Darren Hart
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170322104151.652692478@infradead.org \ --to=peterz@infradead.org \ --cc=bigeasy@linutronix.de \ --cc=bristot@redhat.com \ --cc=dvhart@infradead.org \ --cc=jdesfossez@efficios.com \ --cc=juri.lelli@arm.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mathieu.desnoyers@efficios.com \ --cc=mingo@kernel.org \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=xlpang@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git