From: David Mosberger <davidm@napali.hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: Make MCA stack look like a normal kernel stack
Date: Thu, 10 Feb 2005 05:38:07 +0000 [thread overview]
Message-ID: <16906.62271.997281.29000@napali.hpl.hp.com> (raw)
In-Reply-To: <10372.1107999173@kao2.melbourne.sgi.com>
>>>>> On Thu, 10 Feb 2005 13:47:47 +1100, Keith Owens <kaos@sgi.com> said:
Keith> The problem is that some of the dirty registers will be in
Keith> the original stack, some will be in the MCA stack.
That's OK, libunwind already handles that. The only thing that's
needed to make this work is that ar.bsp/ar.bspstore/ar.rnat are saved
and that those saves properly be described by the unwind-info. The
rest will be automatic. There is one problem though: in pt_regs, we
save the loadrs value instead of ar.bsp. That can't be described at
the moment (the pt_regs code was written long before I knew about
unwind-info...). However, since pt_regs is special anyhow, we can
just handle that in the unwinder, analogous to what we do for
signal-handlers (check_rbs_switch() in libunwind's src/ia64/Gstep.c).
Keith> The preserved registers at the time of MCA/INIT still need to
Keith> be saved so they can be restored on return to SAL. Save the
Keith> preserved registers, set the values that the kernel needs,
Keith> call C code, restore original preserved registers, return to
Keith> SAL. Hmm, I just described struct switch_stack, didn't I?
True. If you really return, then there is no need to even use switch_stack.
You'd just return and that magically restores the preserved registers.
--david
prev parent reply other threads:[~2005-02-10 5:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-10 1:32 Make MCA stack look like a normal kernel stack Keith Owens
2005-02-10 2:26 ` David Mosberger
2005-02-10 2:47 ` Keith Owens
2005-02-10 5:38 ` David Mosberger [this message]
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=16906.62271.997281.29000@napali.hpl.hp.com \
--to=davidm@napali.hpl.hp.com \
--cc=linux-ia64@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.