From: Nicholas Piggin <npiggin@gmail.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH 02/12] powerpc: remove arguments from interrupt handler functions
Date: Tue, 08 Sep 2020 17:46:58 +1000 [thread overview]
Message-ID: <1599550991.5091a1442f.astroid@bobo.none> (raw)
In-Reply-To: <e34fead9-a356-3ae6-aa33-544380230bd5@csgroup.eu>
Excerpts from Christophe Leroy's message of September 7, 2020 7:20 pm:
>
>
> Le 05/09/2020 à 19:43, Nicholas Piggin a écrit :
>> Make interrupt handlers all just take the pt_regs * argument and load
>> DAR/DSISR etc from that. Make those that return a value return long.
>
> I like this, it will likely simplify a bit the VMAP_STACK mess.
>
> Not sure it is that easy. My board is stuck after the start of init.
>
>
> On the 8xx, on Instruction TLB Error exception, we do
>
> andis. r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
>
> On book3s/32, on ISI exception we do:
> andis. r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
>
> On 40x and bookE, on ISI exception we do:
> li r5,0 /* Pass zero as arg3 */
>
>
> And regs->dsisr will just contain nothing
>
> So it means we should at least write back r5 into regs->dsisr from there
> ? The performance impact should be minimal as we already write _DAR so
> the cache line should already be in the cache.
Yes, I think that would be required. Sorry I didn't look closely at
32 bit.
> A hacky 'stw r5, _DSISR(r1)' in handle_page_fault() does the trick,
> allthough we don't want to do it for both ISI and DSI at the end, so
> you'll have to do it in every head_xxx.S
>
>
> While you are at it, it would probably also make sense to do remove the
> address param of bad_page_fault(), there is no point in loading back
> regs->dar in handle_page_fault() and machine_check_8xx() and
> alignment_exception(), just read regs->dar in bad_page_fault()
>
> The case of do_break() should also be looked at.
Yeah that's valid, I didn't do that because bad_page_fault was also
being called from asm, but an incremental patch should be quite easy.
> Why changing return code from int to long ?
Oh it's to make the next patch work without any changes to function
prototypes. Some handlers are returning int, others long. There is
no reason not to just return long AFAIKS so that's what I changed to.
Thanks,
Nick
next prev parent reply other threads:[~2020-09-08 7:49 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-05 17:43 [RFC PATCH 00/12] interrupt entry wrappers Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 01/12] powerpc/64s: move the last of the page fault handling logic to C Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 02/12] powerpc: remove arguments from interrupt handler functions Nicholas Piggin
2020-09-07 9:20 ` Christophe Leroy
2020-09-07 11:34 ` Christophe Leroy
2020-09-08 7:48 ` Nicholas Piggin
2020-09-08 8:29 ` Christophe Leroy
2020-09-08 8:50 ` Christophe Leroy
2020-09-08 7:46 ` Nicholas Piggin [this message]
2020-09-05 17:43 ` [RFC PATCH 03/12] powerpc: interrupt handler wrapper functions Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 04/12] powerpc: add interrupt_cond_local_irq_enable helper Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 05/12] powerpc/64s: Do context tracking in interrupt entry wrapper Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 06/12] powerpc/64s: reconcile interrupts in C Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 07/12] powerpc/64: move account_stolen_time into its own function Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 08/12] powerpc/64: entry cpu time accounting in C Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 09/12] powerpc: move NMI entry/exit code into wrapper Nicholas Piggin
2020-09-07 8:25 ` Christophe Leroy
2020-09-05 17:43 ` [RFC PATCH 10/12] powerpc/64s: move NMI soft-mask handling to C Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 11/12] powerpc/64s: runlatch interrupt handling in C Nicholas Piggin
2020-09-05 17:43 ` [RFC PATCH 12/12] powerpc/64s: power4 nap fixup " Nicholas Piggin
2020-09-06 7:32 ` Christophe Leroy
2020-09-07 4:02 ` Nicholas Piggin
2020-09-07 4:48 ` Christophe Leroy
2020-09-07 13:05 ` Nicholas Piggin
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=1599550991.5091a1442f.astroid@bobo.none \
--to=npiggin@gmail.com \
--cc=christophe.leroy@csgroup.eu \
--cc=linuxppc-dev@lists.ozlabs.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;
as well as URLs for NNTP newsgroup(s).