From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: jmerkey@wolfmountaingroup.com, linux-kernel@vger.kernel.org
Subject: Re: [ANNOUNCE] mdb-2.6.27-rc2-ia32-08-07-08.patch
Date: Fri, 08 Aug 2008 22:07:12 -0700 [thread overview]
Message-ID: <489D2600.7020400@goop.org> (raw)
In-Reply-To: <489B199B.40305@s5r6.in-berlin.de>
Stefan Richter wrote:
> jmerkey@wolfmountaingroup.com wrote:
>
>> The mdb-rc2 patch was posted this morning with the changes for a modular
>> kernel debugger using kprobes.
>>
>> ftp://ftp.wolfmountaingroup.org/pub/mdb/mdb-2.6.27-rc2-ia32-08-07-08.patch
>>
>> Jeffrey Vernon Merkey
>>
>
>
> Quoting from this patch:
>
>
>> +typedef struct _RLOCK
>> +{
>> +#if defined(CONFIG_SMP)
>> + spinlock_t lock;
>> +#endif
>> + unsigned long flags;
>> + unsigned long processor;
>> + unsigned long count;
>> +} rlock_t;
>>
>
> Is this something along the lines of a counting semaphore? As far as I
> understand its accessor functions, an rlock
> - can be taken by one CPU multiple times,
> - will block the other CPUs as long as the first CPU hasn't unlocked
> the rlock as many times as it locked it.
>
> The accessors rspin_lock() and rspin_try_lock() peek into spinlock_t and
> may therefore not be fully portable. Also, they and rspin_unlock()
> don't look SMP safe:
>
>
>> +//
>> +// returns 0 - atomic lock occurred, processor assigned
>> +// 1 - recusive count increased
>> +//
>> +
>> +unsigned long rspin_lock(volatile rlock_t *rlock)
>> +{
>> +#if defined(CONFIG_SMP)
>> + register unsigned long proc = get_processor_id();
>> + register unsigned long retCode;
>> +
>> + if (rlock->lock.raw_lock.slock && rlock->processor == proc)
>>
Ticket locks will almost always have a non-zero slock. It doesn't
indicate anything about the locked/unlocked state. But this looks like
it's effectively doing a trylock:
if (!spin_trylock(rlock) && rlock->processor == proc) {
rlock->count++;
...
} else {
rlock->processor = proc;
...
}
J
next prev parent reply other threads:[~2008-08-09 5:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-07 14:29 [ANNOUNCE] mdb-2.6.27-rc2-ia32-08-07-08.patch jmerkey
2008-08-07 15:49 ` Stefan Richter
2008-08-07 15:59 ` Stefan Richter
2008-08-07 15:56 ` jmerkey
2008-08-07 16:46 ` Stefan Richter
2008-08-07 16:33 ` jmerkey
2008-08-07 17:19 ` Stefan Richter
2008-08-07 17:33 ` Stefan Richter
2008-08-07 17:52 ` jmerkey
2008-08-07 17:52 ` jmerkey
2008-08-07 16:04 ` jmerkey
2008-08-09 5:07 ` Jeremy Fitzhardinge [this message]
2008-08-09 8:04 ` Stefan Richter
2008-08-09 14:44 ` jmerkey
2008-08-08 2:18 ` Parag Warudkar
-- strict thread matches above, loose matches on Subject: below --
2008-08-08 4:33 Parag Warudkar
2008-08-08 13:11 ` jmerkey
[not found] ` <37357.166.70.238.45.1218201115.squirrel@webmail.wolfmountaingroup.com >
2008-08-08 13:23 ` jmerkey
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=489D2600.7020400@goop.org \
--to=jeremy@goop.org \
--cc=jmerkey@wolfmountaingroup.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stefanr@s5r6.in-berlin.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.