From: Scott Wood <scottwood@freescale.com>
To: Tiejun Chen <tiejun.chen@windriver.com>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [v6,2/5] powerpc/book3e: store crit/mc/dbg exception thread info
Date: Tue, 14 Jan 2014 19:27:13 -0600 [thread overview]
Message-ID: <20140115012121.GA11229@home.buserror.net> (raw)
In-Reply-To: <1382520685-11609-3-git-send-email-tiejun.chen@windriver.com>
On Wed, Oct 23, 2013 at 05:31:22PM +0800, Tiejun Chen wrote:
> We need to store thread info to these exception thread info like something
> we already did for PPC32.
>
> Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
>
> ---
> arch/powerpc/kernel/exceptions-64e.S | 22 +++++++++++++++++++---
> 1 file changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
> index 68d74b4..a55cf62 100644
> --- a/arch/powerpc/kernel/exceptions-64e.S
> +++ b/arch/powerpc/kernel/exceptions-64e.S
> @@ -36,6 +36,19 @@
> */
> #define SPECIAL_EXC_FRAME_SIZE INT_FRAME_SIZE
>
> +/* Now we only store something to exception thread info */
Now as opposed to when? Only as opposed to what else?
> +#define EXC_LEVEL_EXCEPTION_PROLOG(type) \
I'd prefer .macro over #define.
> + ld r14,PACAKSAVE(r13); \
> + CURRENT_THREAD_INFO(r14, r14); \
> + CURRENT_THREAD_INFO(r15, r1); \
> + ld r10,TI_FLAGS(r14); \
> + std r10,TI_FLAGS(r15); \
> + ld r10,TI_PREEMPT(r14); \
> + std r10,TI_PREEMPT(r15); \
> + ld r10,TI_TASK(r14); \
> + std r10,TI_TASK(r15);
This is a start, but we'll also need to save some more context to allow
TLB misses from within the exception (e.g. if a machine check handler or
GDB stub writes to a serial port, and the I/O registers aren't in the
TLB). At a minimum I think we need to save SRR0, SRR1,
SPRN_SPRG_GEN_SCRATCH, SPRN_SPRG_TLB_SCRATCH, and the MAS registers.
We'll also need to make the bolted TLB miss handlers capable of pointing
to different extables (though they won't need to auto-advance as the
original TLB miss handlers do -- we would advance SPRN_SPRG_TLB_EXFRAME
from this code), and the original TLB miss handlers will now need to
support more than 3 levels of nesting.
For the e6500 tablewalk TLB miss handler, we'll need to do something
special if we interrupt it when the lock is held, to revoke the lock and
return to code that retries.
Is there anything else I'm missing?
-Scott
next prev parent reply other threads:[~2014-01-15 1:27 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-23 9:31 [v6][PATCH 0/5] powerpc/book3e: powerpc/book3e: make kgdb to work well Tiejun Chen
2013-10-23 9:31 ` [v6][PATCH 1/5] powerpc/book3e: initialize crit/mc/dbg kernel stack pointers Tiejun Chen
2013-10-23 9:31 ` [v6][PATCH 2/5] powerpc/book3e: store crit/mc/dbg exception thread info Tiejun Chen
2013-12-18 2:45 ` Scott Wood
2014-01-15 1:27 ` Scott Wood [this message]
2013-10-23 9:31 ` [v6][PATCH 3/5] powerpc/book3e: support kgdb for kernel space Tiejun Chen
2014-05-09 19:36 ` [v6,3/5] " Scott Wood
2013-10-23 9:31 ` [v6][PATCH 4/5] powerpc/kgdb: use DEFINE_PER_CPU to allocate kgdb's thread_info Tiejun Chen
2013-10-23 9:31 ` [v6][PATCH 5/5] powerpc/book3e/kgdb: Fix a single stgep case of lazy IRQ Tiejun Chen
2013-12-18 2:45 ` Scott Wood
2013-11-18 8:36 ` [v6][PATCH 0/5] powerpc/book3e: powerpc/book3e: make kgdb to work well "“tiejun.chen”"
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=20140115012121.GA11229@home.buserror.net \
--to=scottwood@freescale.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=tiejun.chen@windriver.com \
/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;
as well as URLs for NNTP newsgroup(s).