Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1606346 > unrolled thread

[PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter()

Started byPeter Zijlstra <peterz@infradead.org>
First post2017-03-22 11:50 +0100
Last post2017-03-24 22:20 +0100
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter() Peter Zijlstra <peterz@infradead.org> - 2017-03-22 11:50 +0100
    [tip:locking/core] futex: Cleanup variable names for  futex_top_waiter() tip-bot for Peter Zijlstra <tipbot@zytor.com> - 2017-03-23 19:30 +0100
    Re: [PATCH -v6 01/13] futex: Cleanup variable names for  futex_top_waiter() Darren Hart <dvhart@infradead.org> - 2017-03-24 22:20 +0100

#1606346 — [PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter()

FromPeter Zijlstra <peterz@infradead.org>
Date2017-03-22 11:50 +0100
Subject[PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter()
Message-ID<tnM02-11I-13@gated-at.bofh.it>
futex_top_waiter() returns the top-waiter on the pi_mutex. Assinging
this to a variable 'match' totally obscures the code.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 kernel/futex.c |   30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -1120,14 +1120,14 @@ static int attach_to_pi_owner(u32 uval,
 static int lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
 			   union futex_key *key, struct futex_pi_state **ps)
 {
-	struct futex_q *match = futex_top_waiter(hb, key);
+	struct futex_q *top_waiter = futex_top_waiter(hb, key);
 
 	/*
 	 * If there is a waiter on that futex, validate it and
 	 * attach to the pi_state when the validation succeeds.
 	 */
-	if (match)
-		return attach_to_pi_state(uval, match->pi_state, ps);
+	if (top_waiter)
+		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
 
 	/*
 	 * We are the first waiter - try to look up the owner based on
@@ -1174,7 +1174,7 @@ static int futex_lock_pi_atomic(u32 __us
 				struct task_struct *task, int set_waiters)
 {
 	u32 uval, newval, vpid = task_pid_vnr(task);
-	struct futex_q *match;
+	struct futex_q *top_waiter;
 	int ret;
 
 	/*
@@ -1200,9 +1200,9 @@ static int futex_lock_pi_atomic(u32 __us
 	 * Lookup existing state first. If it exists, try to attach to
 	 * its pi_state.
 	 */
-	match = futex_top_waiter(hb, key);
-	if (match)
-		return attach_to_pi_state(uval, match->pi_state, ps);
+	top_waiter = futex_top_waiter(hb, key);
+	if (top_waiter)
+		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
 
 	/*
 	 * No waiter and user TID is 0. We are here because the
@@ -1292,11 +1292,11 @@ static void mark_wake_futex(struct wake_
 	q->lock_ptr = NULL;
 }
 
-static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this,
+static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *top_waiter,
 			 struct futex_hash_bucket *hb)
 {
 	struct task_struct *new_owner;
-	struct futex_pi_state *pi_state = this->pi_state;
+	struct futex_pi_state *pi_state = top_waiter->pi_state;
 	u32 uninitialized_var(curval), newval;
 	DEFINE_WAKE_Q(wake_q);
 	bool deboost;
@@ -1317,11 +1317,11 @@ static int wake_futex_pi(u32 __user *uad
 
 	/*
 	 * It is possible that the next waiter (the one that brought
-	 * this owner to the kernel) timed out and is no longer
+	 * top_waiter owner to the kernel) timed out and is no longer
 	 * waiting on the lock.
 	 */
 	if (!new_owner)
-		new_owner = this->task;
+		new_owner = top_waiter->task;
 
 	/*
 	 * We pass it to the next owner. The WAITERS bit is always
@@ -2631,7 +2631,7 @@ static int futex_unlock_pi(u32 __user *u
 	u32 uninitialized_var(curval), uval, vpid = task_pid_vnr(current);
 	union futex_key key = FUTEX_KEY_INIT;
 	struct futex_hash_bucket *hb;
-	struct futex_q *match;
+	struct futex_q *top_waiter;
 	int ret;
 
 retry:
@@ -2655,9 +2655,9 @@ static int futex_unlock_pi(u32 __user *u
 	 * all and we at least want to know if user space fiddled
 	 * with the futex value instead of blindly unlocking.
 	 */
-	match = futex_top_waiter(hb, &key);
-	if (match) {
-		ret = wake_futex_pi(uaddr, uval, match, hb);
+	top_waiter = futex_top_waiter(hb, &key);
+	if (top_waiter) {
+		ret = wake_futex_pi(uaddr, uval, top_waiter, hb);
 		/*
 		 * In case of success wake_futex_pi dropped the hash
 		 * bucket lock.

[toc] | [next] | [standalone]


#1607780 — [tip:locking/core] futex: Cleanup variable names for futex_top_waiter()

Fromtip-bot for Peter Zijlstra <tipbot@zytor.com>
Date2017-03-23 19:30 +0100
Subject[tip:locking/core] futex: Cleanup variable names for futex_top_waiter()
Message-ID<tofEK-666-31@gated-at.bofh.it>
In reply to#1606346
Commit-ID:  499f5aca2cdd5e958b27e2655e7e7f82524f46b1
Gitweb:     http://git.kernel.org/tip/499f5aca2cdd5e958b27e2655e7e7f82524f46b1
Author:     Peter Zijlstra <peterz@infradead.org>
AuthorDate: Wed, 22 Mar 2017 11:35:48 +0100
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 23 Mar 2017 19:10:06 +0100

futex: Cleanup variable names for futex_top_waiter()

futex_top_waiter() returns the top-waiter on the pi_mutex. Assinging
this to a variable 'match' totally obscures the code.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104151.554710645@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 kernel/futex.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index 45858ec..1531cc4 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -1122,14 +1122,14 @@ static int attach_to_pi_owner(u32 uval, union futex_key *key,
 static int lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
 			   union futex_key *key, struct futex_pi_state **ps)
 {
-	struct futex_q *match = futex_top_waiter(hb, key);
+	struct futex_q *top_waiter = futex_top_waiter(hb, key);
 
 	/*
 	 * If there is a waiter on that futex, validate it and
 	 * attach to the pi_state when the validation succeeds.
 	 */
-	if (match)
-		return attach_to_pi_state(uval, match->pi_state, ps);
+	if (top_waiter)
+		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
 
 	/*
 	 * We are the first waiter - try to look up the owner based on
@@ -1176,7 +1176,7 @@ static int futex_lock_pi_atomic(u32 __user *uaddr, struct futex_hash_bucket *hb,
 				struct task_struct *task, int set_waiters)
 {
 	u32 uval, newval, vpid = task_pid_vnr(task);
-	struct futex_q *match;
+	struct futex_q *top_waiter;
 	int ret;
 
 	/*
@@ -1202,9 +1202,9 @@ static int futex_lock_pi_atomic(u32 __user *uaddr, struct futex_hash_bucket *hb,
 	 * Lookup existing state first. If it exists, try to attach to
 	 * its pi_state.
 	 */
-	match = futex_top_waiter(hb, key);
-	if (match)
-		return attach_to_pi_state(uval, match->pi_state, ps);
+	top_waiter = futex_top_waiter(hb, key);
+	if (top_waiter)
+		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
 
 	/*
 	 * No waiter and user TID is 0. We are here because the
@@ -1294,11 +1294,11 @@ static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q)
 	q->lock_ptr = NULL;
 }
 
-static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this,
+static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *top_waiter,
 			 struct futex_hash_bucket *hb)
 {
 	struct task_struct *new_owner;
-	struct futex_pi_state *pi_state = this->pi_state;
+	struct futex_pi_state *pi_state = top_waiter->pi_state;
 	u32 uninitialized_var(curval), newval;
 	DEFINE_WAKE_Q(wake_q);
 	bool deboost;
@@ -1319,11 +1319,11 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this,
 
 	/*
 	 * It is possible that the next waiter (the one that brought
-	 * this owner to the kernel) timed out and is no longer
+	 * top_waiter owner to the kernel) timed out and is no longer
 	 * waiting on the lock.
 	 */
 	if (!new_owner)
-		new_owner = this->task;
+		new_owner = top_waiter->task;
 
 	/*
 	 * We pass it to the next owner. The WAITERS bit is always
@@ -2633,7 +2633,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
 	u32 uninitialized_var(curval), uval, vpid = task_pid_vnr(current);
 	union futex_key key = FUTEX_KEY_INIT;
 	struct futex_hash_bucket *hb;
-	struct futex_q *match;
+	struct futex_q *top_waiter;
 	int ret;
 
 retry:
@@ -2657,9 +2657,9 @@ retry:
 	 * all and we at least want to know if user space fiddled
 	 * with the futex value instead of blindly unlocking.
 	 */
-	match = futex_top_waiter(hb, &key);
-	if (match) {
-		ret = wake_futex_pi(uaddr, uval, match, hb);
+	top_waiter = futex_top_waiter(hb, &key);
+	if (top_waiter) {
+		ret = wake_futex_pi(uaddr, uval, top_waiter, hb);
 		/*
 		 * In case of success wake_futex_pi dropped the hash
 		 * bucket lock.

[toc] | [prev] | [next] | [standalone]


#1608978 — Re: [PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter()

FromDarren Hart <dvhart@infradead.org>
Date2017-03-24 22:20 +0100
SubjectRe: [PATCH -v6 01/13] futex: Cleanup variable names for futex_top_waiter()
Message-ID<toEMN-7q1-13@gated-at.bofh.it>
In reply to#1606346
On Wed, Mar 22, 2017 at 11:35:48AM +0100, Peter Zijlstra wrote:
> futex_top_waiter() returns the top-waiter on the pi_mutex. Assinging
> this to a variable 'match' totally obscures the code.
> 
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Yup, still happy to see this one.

Reviewed-by: Darren Hart (VMware) <dvhart@infradead.org>

> ---
>  kernel/futex.c |   30 +++++++++++++++---------------
>  1 file changed, 15 insertions(+), 15 deletions(-)
> 
> --- a/kernel/futex.c
> +++ b/kernel/futex.c
> @@ -1120,14 +1120,14 @@ static int attach_to_pi_owner(u32 uval,
>  static int lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
>  			   union futex_key *key, struct futex_pi_state **ps)
>  {
> -	struct futex_q *match = futex_top_waiter(hb, key);
> +	struct futex_q *top_waiter = futex_top_waiter(hb, key);
>  
>  	/*
>  	 * If there is a waiter on that futex, validate it and
>  	 * attach to the pi_state when the validation succeeds.
>  	 */
> -	if (match)
> -		return attach_to_pi_state(uval, match->pi_state, ps);
> +	if (top_waiter)
> +		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
>  
>  	/*
>  	 * We are the first waiter - try to look up the owner based on
> @@ -1174,7 +1174,7 @@ static int futex_lock_pi_atomic(u32 __us
>  				struct task_struct *task, int set_waiters)
>  {
>  	u32 uval, newval, vpid = task_pid_vnr(task);
> -	struct futex_q *match;
> +	struct futex_q *top_waiter;
>  	int ret;
>  
>  	/*
> @@ -1200,9 +1200,9 @@ static int futex_lock_pi_atomic(u32 __us
>  	 * Lookup existing state first. If it exists, try to attach to
>  	 * its pi_state.
>  	 */
> -	match = futex_top_waiter(hb, key);
> -	if (match)
> -		return attach_to_pi_state(uval, match->pi_state, ps);
> +	top_waiter = futex_top_waiter(hb, key);
> +	if (top_waiter)
> +		return attach_to_pi_state(uval, top_waiter->pi_state, ps);
>  
>  	/*
>  	 * No waiter and user TID is 0. We are here because the
> @@ -1292,11 +1292,11 @@ static void mark_wake_futex(struct wake_
>  	q->lock_ptr = NULL;
>  }
>  
> -static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this,
> +static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *top_waiter,
>  			 struct futex_hash_bucket *hb)
>  {
>  	struct task_struct *new_owner;
> -	struct futex_pi_state *pi_state = this->pi_state;
> +	struct futex_pi_state *pi_state = top_waiter->pi_state;
>  	u32 uninitialized_var(curval), newval;
>  	DEFINE_WAKE_Q(wake_q);
>  	bool deboost;
> @@ -1317,11 +1317,11 @@ static int wake_futex_pi(u32 __user *uad
>  
>  	/*
>  	 * It is possible that the next waiter (the one that brought
> -	 * this owner to the kernel) timed out and is no longer
> +	 * top_waiter owner to the kernel) timed out and is no longer
>  	 * waiting on the lock.
>  	 */
>  	if (!new_owner)
> -		new_owner = this->task;
> +		new_owner = top_waiter->task;
>  
>  	/*
>  	 * We pass it to the next owner. The WAITERS bit is always
> @@ -2631,7 +2631,7 @@ static int futex_unlock_pi(u32 __user *u
>  	u32 uninitialized_var(curval), uval, vpid = task_pid_vnr(current);
>  	union futex_key key = FUTEX_KEY_INIT;
>  	struct futex_hash_bucket *hb;
> -	struct futex_q *match;
> +	struct futex_q *top_waiter;
>  	int ret;
>  
>  retry:
> @@ -2655,9 +2655,9 @@ static int futex_unlock_pi(u32 __user *u
>  	 * all and we at least want to know if user space fiddled
>  	 * with the futex value instead of blindly unlocking.
>  	 */
> -	match = futex_top_waiter(hb, &key);
> -	if (match) {
> -		ret = wake_futex_pi(uaddr, uval, match, hb);
> +	top_waiter = futex_top_waiter(hb, &key);
> +	if (top_waiter) {
> +		ret = wake_futex_pi(uaddr, uval, top_waiter, hb);
>  		/*
>  		 * In case of success wake_futex_pi dropped the hash
>  		 * bucket lock.
> 
> 
> 

-- 
Darren Hart
VMware Open Source Technology Center

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web