All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.