From: Andi Kleen <ak@suse.de>
To: "Jan Beulich" <jbeulich@novell.com>
Cc: linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: [discuss] Re: [PATCH 2/3] reliable stack trace support (x86-64)
Date: Thu, 18 May 2006 12:20:45 +0200 [thread overview]
Message-ID: <200605181220.46037.ak@suse.de> (raw)
In-Reply-To: <446C5C6E.76E4.0078.0@novell.com>
On Thursday 18 May 2006 11:37, Jan Beulich wrote:
> >>> Andi Kleen <ak@suse.de> 16.05.06 19:05 >>>
> >
> >On Tuesday 16 May 2006 18:06, Jan Beulich wrote:
> >> >>> Andi Kleen <ak@suse.de> 16.05.06 17:13 >>>
> >>
> >> On Tuesday 16 May 2006 16:21, Jan Beulich wrote:
> >> >> These are the x86_64-specific pieces to enable reliable stack traces.
> >> >> The only restriction with this is that it currently cannot unwind
> >> >> across the interrupt->normal stack boundary, as that transition is
> >> >> lacking proper annotation.
> >> >
> >> >It would be nice if you could submit a patch to fix that.
> >>
> >> But I don't know how to fix it. See my other mail
> >
> >which mail?
>
> Reply to Ingo (with you on cc) regarding patch 1/3. Just saying that I
> don't know much about expressions here.
>
Hmm, maybe we can find somebody who does. But then they would
first need to be implemented in the unwinder anyways, I guess.
Could be nasty agreed.
> >> - I have no experience with expressions, nor have I ever seen them in
> >> use.
> >
> >I remember Jim Houston used a hack of just loading the old stack into a
> > register and defining that as a base register in CFI. I guess i would be
> > willing to trade a few moves for that (should be pretty much free on a
> > OOO CPU anyways) You think that trick would work?
>
> I don't think that would, because without CONFIG_DEBUG_INFO none of the
> preserved registers get saved, hence there's no register to use for this.
> Thus the price would not only be a move, but also a save/push and a
> reload/pop.
Three instructions? We might be still able to afford that.
push/pop is probably not needed because the stack frame will be already
set up (ok possibly after a few instructions, but a small window might be
tolerable)
> >> >> +#define UNW_PC(frame) (frame)->regs.rip
> >> >> +#define UNW_SP(frame) (frame)->regs.rsp
> >> >
> >> >I think we alreay have instruction_pointer(). Better add a
> >> > stack_pointer() in ptrace.h too.
> >>
> >> I could do that, but the macros will have to remain, as they don't
> >> access pt_regs dierectly, so I guess it'd be pointless to change it.
> >
> >UNW_PC() is instruction_pointer(&frame->regs), isn't it?
>
> Yes. But the intention is that the user of UNW_PC doesn't need to know any
> details of what fields frame has (i.e. the parameter of UNW_PC must only be
> frame), so you can't replace it with instruction_pointer().
Maybe I'm dense but I still don't get - frame has a pt_regs so why
isn't the caller allowed to know about that fact?
-Andi
next prev parent reply other threads:[~2006-05-18 11:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-16 14:21 [PATCH 2/3] reliable stack trace support (x86-64) Jan Beulich
2006-05-16 15:09 ` Ingo Molnar
2006-05-16 16:04 ` Jan Beulich
2006-05-16 15:13 ` Andi Kleen
2006-05-16 16:06 ` Jan Beulich
2006-05-16 17:05 ` [discuss] " Andi Kleen
2006-05-18 9:37 ` Jan Beulich
2006-05-18 10:20 ` Andi Kleen [this message]
2006-05-18 12:02 ` Jan Beulich
2006-05-18 12:25 ` Andi Kleen
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=200605181220.46037.ak@suse.de \
--to=ak@suse.de \
--cc=discuss@x86-64.org \
--cc=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
/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.