All of lore.kernel.org
 help / color / mirror / Atom feed
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

      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.