[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49B55A34.8060707@us.ibm.com>
Date: Mon, 09 Mar 2009 11:04:36 -0700
From: Darren Hart <dvhltc@...ibm.com>
To: Thomas Gleixner <tglx@...utronix.de>
CC: "lkml, " <linux-kernel@...r.kernel.org>,
Steven Rostedt <srostedt@...hat.com>,
Sripathi Kodi <sripathik@...ibm.com>,
John Stultz <johnstul@...ux.vnet.ibm.com>
Subject: Re: [TIP][RFC 2/7] futex: futex_top_waiter()
Thomas Gleixner wrote:
> On Mon, 2 Mar 2009, Darren Hart wrote:
>
>> From: Darren Hart <dvhltc@...ibm.com>
>>
>> Improve legibility by wrapping finding the top waiter in a function. This
>> will be used by the follow-on patches for enabling requeue pi.
>> +static struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb,
>> + union futex_key *key)
>
> Can we just have *head as argument instead of *hb ?
>
>> +{
>> + struct plist_head *head;
>> + struct futex_q *this;
>> + struct futex_q *top_waiter = NULL;
>
> struct futex_q *this;
>
>> + head = &hb->chain;
>> + plist_for_each_entry(this, head, list) {
>> + if (match_futex(&this->key, key)) {
> return this;
>
>> + top_waiter = this;
>> + break;
>> + }
>> + }
>> + return top_waiter;
>
> return NULL;
>
> Makes the function half the size.
I'd prefer to keep a futex_hash_bucket in the signature as a plist_head
doesn't help describe what the function does. However, I believe I have
addressed your concerns as to length with the following. Does this look
acceptable? I'll be resending the entire V6 patch series soon.
/**
* futex_top_waiter - return the highest priority waiter on a futex
* @hb: the hash bucket the futex_q's reside in
* @key: the futex key (to distinguish it from other futex futex_q's)
*
* Must be called with the hb lock held.
**/
static struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb,
union futex_key *key)
{
struct futex_q *this;
plist_for_each_entry(this, &hb->chain, list) {
if (match_futex(&this->key, key))
return this;
}
return NULL;
}
--
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists