| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Date: Tue, 29 Sep 2020 15:21:17 +0200 |
| Subject: [PATCH 01/22] locking/rtmutex: Remove cruft |
| |
| Most of this is around since the very beginning. I'm not sure if this |
| was used while the rtmutex-deadlock-tester was around but today it seems |
| to only waste memory: |
| - save_state: No users |
| - name: Assigned and printed if a dead lock was detected. I'm keeping it |
| but want to point out that lockdep has the same information. |
| - file + line: Printed if ::name was NULL. This is only used for |
| in-kernel locks so it ::name shouldn't be NULL and then ::file and |
| ::line isn't used. |
| - magic: Assigned to NULL by rt_mutex_destroy(). |
| |
| Remove members of rt_mutex which are not used. |
| |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| --- |
| include/linux/rtmutex.h | 7 ++----- |
| kernel/locking/rtmutex-debug.c | 7 +------ |
| kernel/locking/rtmutex.c | 3 --- |
| kernel/locking/rtmutex_common.h | 1 - |
| 4 files changed, 3 insertions(+), 15 deletions(-) |
| |
| --- a/include/linux/rtmutex.h |
| +++ b/include/linux/rtmutex.h |
| @@ -32,10 +32,7 @@ struct rt_mutex { |
| struct rb_root_cached waiters; |
| struct task_struct *owner; |
| #ifdef CONFIG_DEBUG_RT_MUTEXES |
| - int save_state; |
| - const char *name, *file; |
| - int line; |
| - void *magic; |
| + const char *name; |
| #endif |
| #ifdef CONFIG_DEBUG_LOCK_ALLOC |
| struct lockdep_map dep_map; |
| @@ -60,7 +57,7 @@ struct hrtimer_sleeper; |
| |
| #ifdef CONFIG_DEBUG_RT_MUTEXES |
| # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ |
| - , .name = #mutexname, .file = __FILE__, .line = __LINE__ |
| + , .name = #mutexname |
| |
| # define rt_mutex_init(mutex) \ |
| do { \ |
| --- a/kernel/locking/rtmutex-debug.c |
| +++ b/kernel/locking/rtmutex-debug.c |
| @@ -42,12 +42,7 @@ static void printk_task(struct task_stru |
| |
| static void printk_lock(struct rt_mutex *lock, int print_owner) |
| { |
| - if (lock->name) |
| - printk(" [%p] {%s}\n", |
| - lock, lock->name); |
| - else |
| - printk(" [%p] {%s:%d}\n", |
| - lock, lock->file, lock->line); |
| + printk(" [%p] {%s}\n", lock, lock->name); |
| |
| if (print_owner && rt_mutex_owner(lock)) { |
| printk(".. ->owner: %p\n", lock->owner); |
| --- a/kernel/locking/rtmutex.c |
| +++ b/kernel/locking/rtmutex.c |
| @@ -1655,9 +1655,6 @@ void __sched rt_mutex_futex_unlock(struc |
| void rt_mutex_destroy(struct rt_mutex *lock) |
| { |
| WARN_ON(rt_mutex_is_locked(lock)); |
| -#ifdef CONFIG_DEBUG_RT_MUTEXES |
| - lock->magic = NULL; |
| -#endif |
| } |
| EXPORT_SYMBOL_GPL(rt_mutex_destroy); |
| |
| --- a/kernel/locking/rtmutex_common.h |
| +++ b/kernel/locking/rtmutex_common.h |
| @@ -30,7 +30,6 @@ struct rt_mutex_waiter { |
| struct task_struct *task; |
| struct rt_mutex *lock; |
| #ifdef CONFIG_DEBUG_RT_MUTEXES |
| - unsigned long ip; |
| struct pid *deadlock_task_pid; |
| struct rt_mutex *deadlock_lock; |
| #endif |