From: Keith Owens <kaos@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: Problems using psr.dd
Date: Thu, 20 Nov 2003 23:15:55 +0000 [thread overview]
Message-ID: <marc-linux-ia64-106937076615638@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-106879020623297@msgid-missing>
On Thu, 20 Nov 2003 10:47:50 -0800,
David Mosberger <davidm@napali.hpl.hp.com> wrote:
>>>>>> On Thu, 20 Nov 2003 18:52:33 +1100, Keith Owens <kaos@sgi.com> said:
> Keith> Beware of doing too much activity in the hardware breakpoint
> Keith> handler. I will create a patch against traps.c to detect a
> Keith> return with psr.dd set and issue loadrs to ensure that the
> Keith> RSE problem does not bite us.
>
>I'm still not sure what's triggering the spurious fault:
>
> (1) The RSE activity generated for restoring the current frame, or
> (2) The RSE activity generated by the alloc instruction that eventually
> follows the instruction to which "rfi" returns to.
It has to be (1). psr.dd is getting cleared before the st8 is being
executed. Just to be sure, I inserted 20 bundles of nop before and
after 'victim = 1;', the problem still occurs.
>Unfortunately, the description of Erratum 11 isn't terribly clear to
>me. It says:
>
> ... The rfi instruction is followed by additional instructions
> that generate register stack (RSE) activity (alloc, flushrs,
> br.ret).
>
>I assume "followed" is referring to execution order, not program order
>(i.e., inserting nop's around the "rfi" isn't going to do us any
>good). In your (original) case, the "rfi" is followed by a store
>instruction, br.call, then alloc. From reading the description, I
>wouldn't have expected this to trigger the Erratum, but perhaps it
>does. Can someone clarify?
Agreed that it is unclear. Given the workaround for errata 11 (add 4
nop bundles around rfi) I interpret errata 11 as an instruction read
ahead problem, where RSE instructions in the bundles after rfi could be
read, decoded and trip RSE activity even though they were not executed.
In any case, I added 20 nop bundles around the trapping instruction and
it made no difference.
Arch volume 2, section 5.3 is quite explicit, "A non-faulting mandatory
RSE load will clear PSR.da and PSR.dd". This does not appear to be a
problem when returning to user space with these bits set, probably
because the context switch does loadrs. AFAICT it is only an issue
when using hardware debug registers on the kernel itself. traps.c has
to detect that it is returning to kernel state with either of these
bits set and issue loadrs to ensure that the rfi does not require RSE
loads. Patch in progress.
next prev parent reply other threads:[~2003-11-20 23:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-14 6:09 Problems using psr.dd Keith Owens
2003-11-20 2:39 ` David Mosberger
2003-11-20 4:32 ` Keith Owens
2003-11-20 7:18 ` Matt Chapman
2003-11-20 7:52 ` Keith Owens
2003-11-20 18:47 ` David Mosberger
2003-11-20 20:29 ` Seth, Rohit
2003-11-20 21:24 ` David Mosberger
2003-11-20 23:15 ` Keith Owens [this message]
2003-11-20 23:32 ` David Mosberger
2003-11-21 0:55 ` Seth, Rohit
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=marc-linux-ia64-106937076615638@msgid-missing \
--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