Thread (5 messages) 5 messages, 4 authors, 2002-03-30

Re: [PATCH] generic show_stack facility

From: David Mosberger <hidden>
Date: 2002-03-29 17:08:31

quoted
quoted
quoted
quoted
On Fri, 29 Mar 2002 16:06:18 +0000, Christoph Hellwig [off-list ref] said:
  Christoph> On Fri, Mar 29, 2002 at 07:46:07AM -0800, David Mosberger
  Christoph> wrote:
  >> Christoph, why do you think the prototype for ia64 is different?

  Christoph> I have stopped to wonder why ia64 does things
  Christoph> differently.

You might want to reconsider that stance.  It could open your mind. ;-)

BTW: this is not at all an ia64-specific issue.  It applies to any
arch that doesn't maintain a frame pointer on the stack.  Basic
compiler technology.

  >> It's because it *has to be*.  In general, you can't do a
  >> backtrace without having the full (preserved) state of the CPU at
  >> the point of which the backtrace begins.

  Christoph> So your suggestion is to move the other architectures to
  Christoph> the ia64 prototype or to not have an
  Christoph> architecture-independand stack-traceback facility at all?

I haven't done such an investigation.  I believe the ia64 prototype is
reasonable and probably implementable on all platforms that can unwind
the stack in the first place, but before making a change to the stable
kernel API, I'd think someone would have to investigate this a bit
further.

One issue to consider is whether it's safe to call the routine on a
task that is running on another processor.  The ia64 implementation
can handle this gracefully, because it's sometimes better to print a
meaningless (garbled) stack trace than to make provably certain that
the task won't be running on any other CPU.  A related question is
whether the routine can be called with interrupts masked.

My sense is this is something that should be considered for 2.5 first.

	--david
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help