From: Keith Owens <kaos@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [patch] Resched skip_rbs_switch to run 4 cycles faster on McKinley-type cores.
Date: Thu, 20 Jan 2005 10:26:18 +0000 [thread overview]
Message-ID: <8236.1106216778@ocs3.ocs.com.au> (raw)
In-Reply-To: <200501190500.j0J505jY002441@napali.hpl.hp.com>
On Wed, 19 Jan 2005 22:50:07 -0800,
David Mosberger <davidm@napali.hpl.hp.com> wrote:
>>>>>> On Thu, 20 Jan 2005 09:25:35 +1100, Keith Owens <kaos@sgi.com> said:
>
> Keith> Instead of being garbage when the interrupted code was in the
> Keith> kernel, ar_bspstore and ar_rnat are set to zero. The test
> Keith> for "do I skip_rbs_switch" changes from pUStk to "is saved
> Keith> ar_bspstore non-zero".
>
>Wouldn't this prevent user-level code from setting ar.bspstore to
>zero? I'm not sure we should nail that into the kernel (by default
>the first page is a NaT page, so it's not likely to be a real problem
>as of today).
Good point, use ar_bspstore = 1 to mean no rbs switch required.
> Keith> Comments?
>
>Libunwind does support multiple register backing-stores, but since we
>cannot unwind across firmware, I'm not sure whether this by itself
>would make your life easier. If it would, let me know.
It would help, if libunwind were in the kernel.
Unwinding across firmware is not an issue here, we have two views of
the MCA/INIT context. One view is "how to return to SAL?", that data
is stored outside the stack. The other view is "what was the cpu doing
when the event occurred?". It is the latter that I am working on.
From the point of view of unwind, I want the MCA/INIT to look like a
normal interrupt, with the addition of separate backing store. That
will let us backtrace during MCA/INIT processing to see what the cpu
was really doing. SAL will not appear in the backtrace at all.
One side effect of this change is that the unwinder needs an MCA/INIT
safe allocator. The existing code uses kmalloc which works most of the
time, but some MCA/INIT traces have been killed by the unwinder calling
kmalloc when the slab structures were inconsistent. I recently added
an MCA/INIT safe, last ditch allocator to kdb, so we can get
diagnostics even when GFP_ATOMIC has been exhausted and in MCA/INIT.
next prev parent reply other threads:[~2005-01-20 10:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-19 5:00 [patch] Resched skip_rbs_switch to run 4 cycles faster on McKinley-type cores David Mosberger
2005-01-19 22:25 ` Keith Owens
2005-01-20 6:50 ` David Mosberger
2005-01-20 10:26 ` Keith Owens [this message]
2005-01-20 17:01 ` David Mosberger
2005-01-28 2:08 ` David Mosberger
2005-01-28 3:04 ` Keith Owens
2005-01-28 5:22 ` David Mosberger
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=8236.1106216778@ocs3.ocs.com.au \
--to=kaos@sgi.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox