From: "Jan Beulich" <jbeulich@novell.com>
To: "Ingo Molnar" <mingo@elte.hu>
Cc: "Andreas Kleen" <ak@suse.de>, <linux-kernel@vger.kernel.org>,
<discuss@x86-64.org>
Subject: Re: [PATCH 1/3] reliable stack trace support
Date: Tue, 16 May 2006 18:01:31 +0200 [thread overview]
Message-ID: <446A137B.76E4.0078.0@novell.com> (raw)
In-Reply-To: <20060516150555.GB10760@elte.hu>
>>> Ingo Molnar <mingo@elte.hu> 16.05.06 17:05 >>>
>* Jan Beulich <jbeulich@novell.com> wrote:
>> +#ifdef CONFIG_STACK_UNWIND
>> +#include <asm/unwind.h>
>> +#else
>> +#include <asm-generic/unwind.h>
>> +#endif
>
>this wants to become include/linux/unwind.h?
Not really, at least not until IA64 and PARISC get adopted to the same (architecture independent) interface.
>> +#ifdef MODULE_UNWIND_INFO
>> +#include <asm/unwind.h>
>> +#endif
>
>this too could then include <linux/unwind.h>
As above.
>> +DEFINE_SPINLOCK(table_lock);
>
>static?
Oh, yes.
>> +static struct unwind_table *
>> +find_table(unsigned long pc)
>> +{
>> + int old_removals;
>> + struct unwind_table *table = NULL;
>> +
>> + do {
>> + if (table)
>> + atomic_dec(&table->users);
>> + old_removals = atomic_read(&removals);
>
>racy? wants to become rcu?
I don't think so. As far as I can tell, this isn't going to be a problem, it may just result in an extra, normally
unneeded, re-run of the loop.
>> + spin_lock(&table_lock);
>
>spin_lock_irq?
Why?
>> + if (init_only && table == last_table) {
>> + table->init.pc = 0;
>> + table->init.range = 0;
>> + return;
>> + }
>
>SMP and PREEMPT unsafe.
I don't think so, given that this can be called only from the module loader. As Andi pointed out elsewhere, it may even
be unnecessary to do the locking at all.
>> + spin_lock(&table_lock);
>
>spin_lock_irq().
Again, why?
>> + if (table) {
>> + while (atomic_read(&table->users) || atomic_read(&lookups))
>> + msleep(1);
>> + kfree(table);
>> + }
>
>ugh!
???
>> +//todo case DW_CFA_def_cfa_expression:
>> +//todo case DW_CFA_expression:
>> +//todo case DW_CFA_val_expression:
>
>hm?
This means what it says - it needs to be done, and I have no clear understanding of how these expressions are to be
treated, as I've never seen them in use anywhere.
>> +{
>> + info->task = current;
>> + arch_unwind_init_running(info, callback, arg);
>> + return 0;
>
>newline before the return. (this happens in a couple of other places
>too)
Surely can do that, although I don't see why this should be needed in functions this small.
Jan
next prev parent reply other threads:[~2006-05-16 16:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-16 14:21 [PATCH 1/3] reliable stack trace support Jan Beulich
2006-05-16 14:39 ` Ingo Molnar
2006-05-16 15:22 ` Jan Beulich
2006-05-16 15:25 ` Ingo Molnar
2006-05-16 15:04 ` Andi Kleen
2006-05-18 13:42 ` Jan Beulich
2006-05-18 15:32 ` [discuss] " Andi Kleen
2006-05-16 15:05 ` Ingo Molnar
2006-05-16 16:01 ` Jan Beulich [this message]
2006-05-18 11:16 ` Pavel Machek
2006-05-18 12:04 ` Jan Beulich
2006-05-18 12:14 ` Pavel Machek
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=446A137B.76E4.0078.0@novell.com \
--to=jbeulich@novell.com \
--cc=ak@suse.de \
--cc=discuss@x86-64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox