All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Low <jason.low2@hp.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	Lai Jiangshan <laijs@cn.fujitsu.com>,
	Jason Low <jason.low2@hp.com>, Brad Mouring <bmouring@ni.com>
Subject: Re: [patch V3 4/7] rtmutex: Siplify remove_waiter()
Date: Mon, 9 Jun 2014 20:44:15 -0700	[thread overview]
Message-ID: <CAGQ1y=5JGLfcQzyrOGYmxW3Us6z9MR8qfOw1sxFvYU6g7M0oog@mail.gmail.com> (raw)
In-Reply-To: <20140609205329.52b8c0d5@gandalf.local.home>

On Mon, Jun 9, 2014 at 5:53 PM, Steven Rostedt <rostedt@goodmis.org> wrote:
> On Mon, 09 Jun 2014 20:28:08 -0000
> Thomas Gleixner <tglx@linutronix.de> wrote:
>
>> Exit right away, when the removed waiter was not the top prioriy
>> waiter on the lock. Get rid of the extra indent level.
>>
>> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>> ---
>>  kernel/locking/rtmutex.c |   26 ++++++++++----------------
>>  1 file changed, 10 insertions(+), 16 deletions(-)
>>
>> Index: tip/kernel/locking/rtmutex.c
>> ===================================================================
>> --- tip.orig/kernel/locking/rtmutex.c
>> +++ tip/kernel/locking/rtmutex.c
>> @@ -780,7 +780,7 @@ static void remove_waiter(struct rt_mute
>>  {
>>       int first = (waiter == rt_mutex_top_waiter(lock));
>>       struct task_struct *owner = rt_mutex_owner(lock);
>> -     struct rt_mutex *next_lock = NULL;
>> +     struct rt_mutex *next_lock;
>>       unsigned long flags;
>>
>>       raw_spin_lock_irqsave(&current->pi_lock, flags);
>> @@ -788,28 +788,22 @@ static void remove_waiter(struct rt_mute
>>       current->pi_blocked_on = NULL;
>>       raw_spin_unlock_irqrestore(&current->pi_lock, flags);
>>
>
> Add comment here, something like...
>
>         /*
>          * Only update priority if this task was the highest priority
>          * task waiting on the lock, and there is an owner to update.
>          */

Would it also make it clearer if we were to change "first" to something
such as "bool is_top_waiter"?

> Rest looks good.
>
> Reviewed-by: Steven Rostedt <rostedt@goodmis.org>

Reviewed-by: Jason Low <jason.low2@hp.com>

> -- Steve
>
>
>> -     if (!owner)
>> +     if (!owner || !first)
>>               return;
>>
>> -     if (first) {
>> +     raw_spin_lock_irqsave(&owner->pi_lock, flags);
>>
>> -             raw_spin_lock_irqsave(&owner->pi_lock, flags);
>> +     rt_mutex_dequeue_pi(owner, waiter);
>>
>> -             rt_mutex_dequeue_pi(owner, waiter);
>> +     if (rt_mutex_has_waiters(lock))
>> +             rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock));
>>
>> -             if (rt_mutex_has_waiters(lock)) {
>> -                     struct rt_mutex_waiter *next;
>> +     __rt_mutex_adjust_prio(owner);
>>
>> -                     next = rt_mutex_top_waiter(lock);
>> -                     rt_mutex_enqueue_pi(owner, next);
>> -             }
>> -             __rt_mutex_adjust_prio(owner);
>> +     /* Store the lock on which owner is blocked or NULL */
>> +     next_lock = task_blocked_on_lock(owner);
>>
>> -             /* Store the lock on which owner is blocked or NULL */
>> -             next_lock = task_blocked_on_lock(owner);
>> -
>> -             raw_spin_unlock_irqrestore(&owner->pi_lock, flags);
>> -     }
>> +     raw_spin_unlock_irqrestore(&owner->pi_lock, flags);
>>
>>       if (!next_lock)
>>               return;

  parent reply	other threads:[~2014-06-10  3:44 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-09 20:28 [patch V3 0/7] rtmutex: Code clarification and optimization Thomas Gleixner
2014-06-09 20:28 ` [patch V3 1/7] rtmutex: Deobfuscate chain walk Thomas Gleixner
2014-06-09 20:59   ` Steven Rostedt
2014-06-10  3:52     ` Lai Jiangshan
2014-06-10  3:21   ` Jason Low
2014-06-10 13:57   ` Brad Mouring
2014-06-09 20:28 ` [patch V3 2/7] rtmutex: Clarify the boost/deboost part Thomas Gleixner
2014-06-10  0:37   ` Steven Rostedt
2014-06-10  3:22   ` Jason Low
2014-06-10 14:04   ` Brad Mouring
2014-06-09 20:28 ` [patch V3 3/7] rtmutex: Document pi chain walk Thomas Gleixner
2014-06-10  0:45   ` Steven Rostedt
2014-06-10  3:51     ` Lai Jiangshan
2014-06-10 14:21   ` Brad Mouring
2014-06-09 20:28 ` [patch V3 4/7] rtmutex: Siplify remove_waiter() Thomas Gleixner
2014-06-10  0:53   ` Steven Rostedt
2014-06-10  3:35     ` Lai Jiangshan
2014-06-10  3:44     ` Jason Low [this message]
2014-06-10 14:10   ` Brad Mouring
2014-06-09 20:28 ` [patch V3 5/7] rtmutex: Confine deadlock logic to futex Thomas Gleixner
2014-06-10  0:59   ` Steven Rostedt
2014-06-10  4:03     ` Lai Jiangshan
2014-06-10 17:39     ` Thomas Gleixner
2014-06-09 20:28 ` [patch V3 6/7] rtmutex: Cleanup deadlock detector debug logic Thomas Gleixner
2014-06-10  1:04   ` Steven Rostedt
2014-06-10 15:09   ` Brad Mouring
2014-06-09 20:28 ` [patch V3 7/7] rtmutex: Avoid pointless requeueing in the deadlock detection chain walk Thomas Gleixner
2014-06-10  1:20   ` Steven Rostedt
2014-06-10  3:48     ` Jason Low
2014-06-10 17:41     ` Thomas Gleixner
2014-06-10 17:47       ` Steven Rostedt
2014-06-10 20:45         ` Thomas Gleixner
2014-06-10 14:57   ` Brad Mouring
2014-06-10 15:19     ` Steven Rostedt
2014-06-10 17:43       ` Thomas Gleixner
2014-06-10 17:51         ` Steven Rostedt
2014-06-10 20:46           ` Thomas Gleixner
2014-06-10  0:27 ` [patch V3 0/7] rtmutex: Code clarification and optimization Steven Rostedt
2014-06-10  0:35   ` Steven Rostedt
2014-06-10  3:00     ` Lai Jiangshan

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='CAGQ1y=5JGLfcQzyrOGYmxW3Us6z9MR8qfOw1sxFvYU6g7M0oog@mail.gmail.com' \
    --to=jason.low2@hp.com \
    --cc=bmouring@ni.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.