linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Nicholas Piggin <npiggin@gmail.com>, linuxppc-dev@lists.ozlabs.org
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Subject: Re: [PATCH v7 00/42] powerpc: interrupt wrappers
Date: Tue, 2 Feb 2021 06:57:19 +0100	[thread overview]
Message-ID: <c2f36abd-c9e9-25af-d0c0-48d02c49f5b7@csgroup.eu> (raw)
In-Reply-To: <20210130130852.2952424-1-npiggin@gmail.com>



Le 30/01/2021 à 14:08, Nicholas Piggin a écrit :
> This adds interrupt handler wrapper functions, similar to the
> generic / x86 code, and moves several common operations into them
> from either asm or open coded in the individual handlers.
> 
> This series is based on powerpc fixes-test tree, there's another
> unrelated pending fix in patch 1 of the series which clashes a
> bit.

This series trivialy conflicts with 
https://github.com/linuxppc/linux/commit/11f9c1d2fb497f69f83d4fab6fb7fc8a6884eded on powerpc next tree.

> 
> This includes more changes and fixes suggested by Christophe,
> a few minor bug fixes and compile fix noticed by kbuild, and
> some NMI changes Athira asked about -- PMI interrupts don't
> block tracing when they are soft-NMI.
> 
> Since v1:
> - Fixed a couple of compile issues
> - Fixed perf weirdness (sometimes NMI, sometimes not)
> - Also move irq_enter/exit into wrappers
> 
> Since v2:
> - Rebased upstream
> - Took code in patch 3 from Christophe
> - Fixed some compile errors from 0day
> 
> Since v3:
> - Rebased
> - Split Christophe's 32s DABR patch into its own patch
> - Fixed missing asm from 32s on patch 3 noticed by Christophe.
> - Moved changes around, split out one more patch (patch 9) to make
>    changes more logical and atomic.
> - Add comments explaining _RAW handlers (SLB, HPTE) interrupts better
> 
> Since v4:
> - Rebased (on top of scv fallback flush fix)
> - Rearranged a few changes into different patches from Christophe,
>    e.g., the ___do_page_fault change from patch 2 to 10. I didn't
>    do everything (e.g., splitting to update __hash_page to drop the
>    msr argument before the bulk of patch 2 seemed like churn without
>    much improvement), and also other things like removing the new
>    ___do_page_fault variant if we can change hash fault context tracking
>    I didn't get time to completely investigate and implement. I think
>    this shouldn't be a showstopper though we can make more improvements
>    as we go.
> 
> Since v5:
> - Lots of good review suggestions from Christophe, see v5 email threads.
> - Major change being do_break is left in asm and selected early as an
>    alternate interrupt handler now, which is a smaller step and matches
>    other subarchs better.
> - Rearranged patches, split, moved things, bug fixes, etc.
> - Converted a few more missed exception handlers for debug and ras
> 
> Since v6:
> - Move related interrupt handler de-argify patches together [Christophe]
> - Split do_bad_page_fault patch [Christophe]
> - Change do_page_fault cleanup patch [Christophe]
> - entry_32.S can't avoid saving r4/r5 until later in the series [Christophe]
> - Soft-NMI decrementer and perf don't block ftrace [Athira]
> - Rebased on some fixes
> - Fixed mismerge / duplicate line in patch 40
> - Fix kbuild hash missing declaration bug
> 
> Christophe Leroy (1):
>    powerpc/32s: move DABR match out of handle_page_fault
> 
> Nicholas Piggin (41):
>    powerpc/64s: interrupt exit improve bounding of interrupt recursion
>    KVM: PPC: Book3S HV: Context tracking exit guest context before
>      enabling irqs
>    powerpc/64s: move DABR match out of handle_page_fault
>    powerpc/64s: move the hash fault handling logic to C
>    powerpc: remove arguments from fault handler functions
>    powerpc/fsl_booke/32: CacheLockingException remove args
>    powerpc: do_break get registers from regs
>    powerpc: DebugException remove args
>    powerpc/32: transfer can avoid saving r4/r5 over trace call
>    powerpc: bad_page_fault get registers from regs
>    powerpc/64s: add do_bad_page_fault_segv handler
>    powerpc: rearrange do_page_fault error case to be inside
>      exception_enter
>    powerpc/64s: move bad_page_fault handling to C
>    powerpc/64s: split do_hash_fault
>    powerpc/mm: Remove stale do_page_fault comment referring to SLB faults
>    powerpc/64s: slb comment update
>    powerpc/traps: add NOKPROBE_SYMBOL for sreset and mce
>    powerpc/perf: move perf irq/nmi handling details into traps.c
>    powerpc/time: move timer_broadcast_interrupt prototype to asm/time.h
>    powerpc: add and use unknown_async_exception
>    powerpc/cell: tidy up pervasive declarations
>    powerpc: introduce die_mce
>    powerpc/mce: ensure machine check handler always tests RI
>    powerpc: improve handling of unrecoverable system reset
>    powerpc: interrupt handler wrapper functions
>    powerpc: add interrupt wrapper entry / exit stub functions
>    powerpc: convert interrupt handlers to use wrappers
>    powerpc: add interrupt_cond_local_irq_enable helper
>    powerpc/64: context tracking remove _TIF_NOHZ
>    powerpc/64s/hash: improve context tracking of hash faults
>    powerpc/64: context tracking move to interrupt wrappers
>    powerpc/64: add context tracking to asynchronous interrupts
>    powerpc: handle irq_enter/irq_exit in interrupt handler wrappers
>    powerpc/64s: move context tracking exit to interrupt exit path
>    powerpc/64s: reconcile interrupts in C
>    powerpc/64: move account_stolen_time into its own function
>    powerpc/64: entry cpu time accounting in C
>    powerpc: move NMI entry/exit code into wrapper
>    powerpc/64s: move NMI soft-mask handling to C
>    powerpc/64s: runlatch interrupt handling in C
>    powerpc/64s: power4 nap fixup in C
> 
>   arch/powerpc/Kconfig                       |   1 -
>   arch/powerpc/include/asm/asm-prototypes.h  |  29 --
>   arch/powerpc/include/asm/bug.h             |   9 +-
>   arch/powerpc/include/asm/cputime.h         |  14 +
>   arch/powerpc/include/asm/debug.h           |   4 -
>   arch/powerpc/include/asm/hw_irq.h          |   9 -
>   arch/powerpc/include/asm/interrupt.h       | 437 +++++++++++++++++++++
>   arch/powerpc/include/asm/ppc_asm.h         |  24 --
>   arch/powerpc/include/asm/processor.h       |   1 +
>   arch/powerpc/include/asm/thread_info.h     |  10 +-
>   arch/powerpc/include/asm/time.h            |   2 +
>   arch/powerpc/kernel/dbell.c                |   9 +-
>   arch/powerpc/kernel/entry_32.S             |  25 +-
>   arch/powerpc/kernel/exceptions-64e.S       |   8 +-
>   arch/powerpc/kernel/exceptions-64s.S       | 310 ++-------------
>   arch/powerpc/kernel/head_40x.S             |  11 +-
>   arch/powerpc/kernel/head_8xx.S             |  11 +-
>   arch/powerpc/kernel/head_book3s_32.S       |  14 +-
>   arch/powerpc/kernel/head_booke.h           |   6 +-
>   arch/powerpc/kernel/head_fsl_booke.S       |   6 +-
>   arch/powerpc/kernel/idle_book3s.S          |   4 +
>   arch/powerpc/kernel/irq.c                  |   7 +-
>   arch/powerpc/kernel/mce.c                  |  16 +-
>   arch/powerpc/kernel/process.c              |   8 +-
>   arch/powerpc/kernel/ptrace/ptrace.c        |   4 -
>   arch/powerpc/kernel/signal.c               |   4 -
>   arch/powerpc/kernel/syscall_64.c           |  90 +++--
>   arch/powerpc/kernel/tau_6xx.c              |   5 +-
>   arch/powerpc/kernel/time.c                 |   7 +-
>   arch/powerpc/kernel/traps.c                | 265 ++++++-------
>   arch/powerpc/kernel/watchdog.c             |  15 +-
>   arch/powerpc/kvm/book3s_hv.c               |   7 +-
>   arch/powerpc/kvm/book3s_hv_builtin.c       |   1 +
>   arch/powerpc/kvm/booke.c                   |   1 +
>   arch/powerpc/mm/book3s64/hash_utils.c      |  97 +++--
>   arch/powerpc/mm/book3s64/slb.c             |  40 +-
>   arch/powerpc/mm/fault.c                    |  76 ++--
>   arch/powerpc/perf/core-book3s.c            |  35 +-
>   arch/powerpc/perf/core-fsl-emb.c           |  25 --
>   arch/powerpc/platforms/8xx/machine_check.c |   2 +-
>   arch/powerpc/platforms/cell/pervasive.c    |   1 +
>   arch/powerpc/platforms/cell/pervasive.h    |   3 -
>   arch/powerpc/platforms/cell/ras.c          |   6 +-
>   arch/powerpc/platforms/cell/ras.h          |   9 +-
>   arch/powerpc/platforms/powernv/idle.c      |   1 +
>   arch/powerpc/platforms/powernv/opal.c      |   2 +-
>   arch/powerpc/platforms/pseries/ras.c       |   2 +-
>   47 files changed, 914 insertions(+), 759 deletions(-)
>   create mode 100644 arch/powerpc/include/asm/interrupt.h
> 

  parent reply	other threads:[~2021-02-02  5:59 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-30 13:08 [PATCH v7 00/42] powerpc: interrupt wrappers Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 01/42] powerpc/64s: interrupt exit improve bounding of interrupt recursion Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 02/42] KVM: PPC: Book3S HV: Context tracking exit guest context before enabling irqs Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 03/42] powerpc/32s: move DABR match out of handle_page_fault Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 04/42] powerpc/64s: " Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 05/42] powerpc/64s: move the hash fault handling logic to C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 06/42] powerpc: remove arguments from fault handler functions Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 07/42] powerpc/fsl_booke/32: CacheLockingException remove args Nicholas Piggin
2021-02-08 10:04   ` Gautham R Shenoy
2021-02-08 11:54     ` Michael Ellerman
2021-01-30 13:08 ` [PATCH v7 08/42] powerpc: do_break get registers from regs Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 09/42] powerpc: DebugException remove args Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 10/42] powerpc/32: transfer can avoid saving r4/r5 over trace call Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 11/42] powerpc: bad_page_fault get registers from regs Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 12/42] powerpc/64s: add do_bad_page_fault_segv handler Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 13/42] powerpc: rearrange do_page_fault error case to be inside exception_enter Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 14/42] powerpc/64s: move bad_page_fault handling to C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 15/42] powerpc/64s: split do_hash_fault Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 16/42] powerpc/mm: Remove stale do_page_fault comment referring to SLB faults Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 17/42] powerpc/64s: slb comment update Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 18/42] powerpc/traps: add NOKPROBE_SYMBOL for sreset and mce Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 19/42] powerpc/perf: move perf irq/nmi handling details into traps.c Nicholas Piggin
2021-01-31 12:30   ` Athira Rajeev
2021-01-30 13:08 ` [PATCH v7 20/42] powerpc/time: move timer_broadcast_interrupt prototype to asm/time.h Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 21/42] powerpc: add and use unknown_async_exception Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 22/42] powerpc/cell: tidy up pervasive declarations Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 23/42] powerpc: introduce die_mce Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 24/42] powerpc/mce: ensure machine check handler always tests RI Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 25/42] powerpc: improve handling of unrecoverable system reset Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 26/42] powerpc: interrupt handler wrapper functions Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 27/42] powerpc: add interrupt wrapper entry / exit stub functions Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 28/42] powerpc: convert interrupt handlers to use wrappers Nicholas Piggin
2021-02-03  1:54   ` Nicholas Piggin
2021-02-05  8:09   ` Christophe Leroy
2021-02-06  2:43     ` Nicholas Piggin
2021-02-07 12:56     ` Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 29/42] powerpc: add interrupt_cond_local_irq_enable helper Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 30/42] powerpc/64: context tracking remove _TIF_NOHZ Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 31/42] powerpc/64s/hash: improve context tracking of hash faults Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 32/42] powerpc/64: context tracking move to interrupt wrappers Nicholas Piggin
2021-02-09  5:49   ` Christophe Leroy
2021-02-09  7:45     ` Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 33/42] powerpc/64: add context tracking to asynchronous interrupts Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 34/42] powerpc: handle irq_enter/irq_exit in interrupt handler wrappers Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 35/42] powerpc/64s: move context tracking exit to interrupt exit path Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 36/42] powerpc/64s: reconcile interrupts in C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 37/42] powerpc/64: move account_stolen_time into its own function Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 38/42] powerpc/64: entry cpu time accounting in C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 39/42] powerpc: move NMI entry/exit code into wrapper Nicholas Piggin
2021-02-04 10:15   ` Michael Ellerman
2021-02-04 11:31     ` Nicholas Piggin
2021-02-05 23:38       ` Michael Ellerman
2021-02-06  2:46         ` Nicholas Piggin
2021-02-07 12:54           ` Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 40/42] powerpc/64s: move NMI soft-mask handling to C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 41/42] powerpc/64s: runlatch interrupt handling in C Nicholas Piggin
2021-01-30 13:08 ` [PATCH v7 42/42] powerpc/64s: power4 nap fixup " Nicholas Piggin
2021-02-02 10:31   ` Michael Ellerman
2021-02-03  0:35     ` Nicholas Piggin
2021-02-07 12:58     ` Nicholas Piggin
2021-02-02  5:57 ` Christophe Leroy [this message]
2021-02-10 12:57 ` [PATCH v7 00/42] powerpc: interrupt wrappers Michael Ellerman

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=c2f36abd-c9e9-25af-d0c0-48d02c49f5b7@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=atrajeev@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=npiggin@gmail.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).