The following commit has been merged into the locking/core branch of tip: Commit-ID: 222993395ed38f3751287f4bd82ef46b3eb3a66d Gitweb: https://git.kernel.org/tip/222993395ed38f3751287f4bd82ef46b3eb3a66d Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx> AuthorDate: Wed, 04 Mar 2020 13:02:41 +01:00 Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx> CommitterDate: Fri, 06 Mar 2020 11:06:18 +01:00 futex: Remove pointless mmgrap() + mmdrop() We always set 'key->private.mm' to 'current->mm', getting an extra reference on 'current->mm' is quite pointless, because as long as the task is blocked it isn't going to go away. Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> --- kernel/futex.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c index e14f7cd..3463c91 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -331,17 +331,6 @@ static void compat_exit_robust_list(struct task_struct *curr); static inline void compat_exit_robust_list(struct task_struct *curr) { } #endif -static inline void futex_get_mm(union futex_key *key) -{ - mmgrab(key->private.mm); - /* - * Ensure futex_get_mm() implies a full barrier such that - * get_futex_key() implies a full barrier. This is relied upon - * as smp_mb(); (B), see the ordering comment above. - */ - smp_mb__after_atomic(); -} - /* * Reflects a new waiter being added to the waitqueue. */ @@ -432,7 +421,7 @@ static void get_futex_key_refs(union futex_key *key) smp_mb(); /* explicit smp_mb(); (B) */ break; case FUT_OFF_MMSHARED: - futex_get_mm(key); /* implies smp_mb(); (B) */ + smp_mb(); /* explicit smp_mb(); (B) */ break; default: /* @@ -465,7 +454,6 @@ static void drop_futex_key_refs(union futex_key *key) case FUT_OFF_INODE: break; case FUT_OFF_MMSHARED: - mmdrop(key->private.mm); break; } }
![]() |