mbox series

[RFC,00/27] current interrupt series plus scv syscall

Message ID 20190915012813.29317-1-npiggin@gmail.com (mailing list archive)
Headers show
Series current interrupt series plus scv syscall | expand

Message

Nicholas Piggin Sept. 15, 2019, 1:27 a.m. UTC
My interrupt entry patches have finally collided with syscall and
interrupt exit patches, so I'll merge the series. Most patches have
been seen already, however there have been a number of small changes
and fixes throughout the series.

The final two patches add support for 'scv' and 'rfscv' instructions.

I'm posting this out now so we can start considering ABI and userspace
support. We have the PPC_FEATURE2_SCV hwcap for this.

Thanks,
Nick

Nicholas Piggin (27):
  powerpc/64s/exception: Introduce INT_DEFINE parameter block for code
    generation
  powerpc/64s/exception: Add GEN_COMMON macro that uses INT_DEFINE
    parameters
  powerpc/64s/exception: Add GEN_KVM macro that uses INT_DEFINE
    parameters
  powerpc/64s/exception: Expand EXC_COMMON and EXC_COMMON_ASYNC macros
  powerpc/64s/exception: Move all interrupt handlers to new style code
    gen macros
  powerpc/64s/exception: Remove old INT_ENTRY macro
  powerpc/64s/exception: Remove old INT_COMMON macro
  powerpc/64s/exception: Remove old INT_KVM_HANDLER
  powerpc/64s/exception: Add ISIDE option
  powerpc/64s/exception: move real->virt switch into the common handler
  powerpc/64s/exception: move soft-mask test to common code
  powerpc/64s/exception: move KVM test to common code
  powerpc/64s/exception: remove confusing IEARLY option
  powerpc/64s/exception: remove the SPR saving patch code macros
  powerpc/64s/exception: trim unused arguments from KVMTEST macro
  powerpc/64s/exception: hdecrementer avoid touching the stack
  powerpc/64s/exception: re-inline some handlers
  powerpc/64s/exception: Clean up SRR specifiers
  powerpc/64s/exception: add more comments for interrupt handlers
  powerpc/64s/exception: only test KVM in SRR interrupts when PR KVM is
    supported
  powerpc/64s/exception: soft nmi interrupt should not use
    ret_from_except
  powerpc/64: system call remove non-volatile GPR save optimisation
  powerpc/64: system call implement the bulk of the logic in C
  powerpc/64s: interrupt return in C
  powerpc/64s/exception: remove lite interrupt return
  powerpc/64s/exception: treat NIA below __end_interrupts as soft-masked
  powerpc/64s: system call support for scv/rfscv instructions

 arch/powerpc/include/asm/asm-prototypes.h     |   11 -
 .../powerpc/include/asm/book3s/64/kup-radix.h |   24 +-
 arch/powerpc/include/asm/cputime.h            |   24 +
 arch/powerpc/include/asm/exception-64s.h      |    4 -
 arch/powerpc/include/asm/head-64.h            |    2 +-
 arch/powerpc/include/asm/hw_irq.h             |    4 +
 arch/powerpc/include/asm/ppc_asm.h            |    2 +
 arch/powerpc/include/asm/processor.h          |    2 +-
 arch/powerpc/include/asm/ptrace.h             |    3 +
 arch/powerpc/include/asm/signal.h             |    3 +
 arch/powerpc/include/asm/switch_to.h          |   11 +
 arch/powerpc/include/asm/time.h               |    4 +-
 arch/powerpc/kernel/Makefile                  |    3 +-
 arch/powerpc/kernel/cpu_setup_power.S         |    2 +-
 arch/powerpc/kernel/dt_cpu_ftrs.c             |    1 +
 arch/powerpc/kernel/entry_64.S                |  964 ++------
 arch/powerpc/kernel/exceptions-64e.S          |  254 +-
 arch/powerpc/kernel/exceptions-64s.S          | 2046 ++++++++++++-----
 arch/powerpc/kernel/process.c                 |    2 +
 arch/powerpc/kernel/signal.h                  |    2 -
 arch/powerpc/kernel/syscall_64.c              |  422 ++++
 arch/powerpc/kernel/syscalls/syscall.tbl      |   22 +-
 arch/powerpc/kernel/systbl.S                  |    9 +-
 arch/powerpc/kernel/time.c                    |    9 -
 arch/powerpc/kernel/vector.S                  |    2 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S       |   11 -
 arch/powerpc/kvm/book3s_segment.S             |    7 -
 27 files changed, 2458 insertions(+), 1392 deletions(-)
 create mode 100644 arch/powerpc/kernel/syscall_64.c

Comments

Nicholas Piggin Oct. 2, 2019, 3:13 a.m. UTC | #1
Michal Suchánek's on September 24, 2019 7:33 pm:
> Hello,
> 
> can you mark the individual patches with RFC rather than the wole
> series?

Hey, thanks for the reviews. I'll resend all but the last two patches
soon for merge in the next window.

scv needs a bit more work but hopefully it will be mergeable as well
but I will submit that afterward.

Thanks,
Nick
Michal Suchánek Oct. 2, 2019, 8:20 a.m. UTC | #2
Hello,

can you mark the individual patches with RFC rather than the wole
series?

Thanks

Michal

On Sun, Sep 15, 2019 at 11:27:46AM +1000, Nicholas Piggin wrote:
> My interrupt entry patches have finally collided with syscall and
> interrupt exit patches, so I'll merge the series. Most patches have
> been seen already, however there have been a number of small changes
> and fixes throughout the series.
> 
> The final two patches add support for 'scv' and 'rfscv' instructions.
> 
> I'm posting this out now so we can start considering ABI and userspace
> support. We have the PPC_FEATURE2_SCV hwcap for this.
> 
> Thanks,
> Nick
> 
> Nicholas Piggin (27):
>   powerpc/64s/exception: Introduce INT_DEFINE parameter block for code
>     generation
>   powerpc/64s/exception: Add GEN_COMMON macro that uses INT_DEFINE
>     parameters
>   powerpc/64s/exception: Add GEN_KVM macro that uses INT_DEFINE
>     parameters
>   powerpc/64s/exception: Expand EXC_COMMON and EXC_COMMON_ASYNC macros
>   powerpc/64s/exception: Move all interrupt handlers to new style code
>     gen macros
>   powerpc/64s/exception: Remove old INT_ENTRY macro
>   powerpc/64s/exception: Remove old INT_COMMON macro
>   powerpc/64s/exception: Remove old INT_KVM_HANDLER
>   powerpc/64s/exception: Add ISIDE option
>   powerpc/64s/exception: move real->virt switch into the common handler
>   powerpc/64s/exception: move soft-mask test to common code
>   powerpc/64s/exception: move KVM test to common code
>   powerpc/64s/exception: remove confusing IEARLY option
>   powerpc/64s/exception: remove the SPR saving patch code macros
>   powerpc/64s/exception: trim unused arguments from KVMTEST macro
>   powerpc/64s/exception: hdecrementer avoid touching the stack
>   powerpc/64s/exception: re-inline some handlers
>   powerpc/64s/exception: Clean up SRR specifiers
>   powerpc/64s/exception: add more comments for interrupt handlers
>   powerpc/64s/exception: only test KVM in SRR interrupts when PR KVM is
>     supported
>   powerpc/64s/exception: soft nmi interrupt should not use
>     ret_from_except
>   powerpc/64: system call remove non-volatile GPR save optimisation
>   powerpc/64: system call implement the bulk of the logic in C
>   powerpc/64s: interrupt return in C
>   powerpc/64s/exception: remove lite interrupt return
>   powerpc/64s/exception: treat NIA below __end_interrupts as soft-masked
>   powerpc/64s: system call support for scv/rfscv instructions
> 
>  arch/powerpc/include/asm/asm-prototypes.h     |   11 -
>  .../powerpc/include/asm/book3s/64/kup-radix.h |   24 +-
>  arch/powerpc/include/asm/cputime.h            |   24 +
>  arch/powerpc/include/asm/exception-64s.h      |    4 -
>  arch/powerpc/include/asm/head-64.h            |    2 +-
>  arch/powerpc/include/asm/hw_irq.h             |    4 +
>  arch/powerpc/include/asm/ppc_asm.h            |    2 +
>  arch/powerpc/include/asm/processor.h          |    2 +-
>  arch/powerpc/include/asm/ptrace.h             |    3 +
>  arch/powerpc/include/asm/signal.h             |    3 +
>  arch/powerpc/include/asm/switch_to.h          |   11 +
>  arch/powerpc/include/asm/time.h               |    4 +-
>  arch/powerpc/kernel/Makefile                  |    3 +-
>  arch/powerpc/kernel/cpu_setup_power.S         |    2 +-
>  arch/powerpc/kernel/dt_cpu_ftrs.c             |    1 +
>  arch/powerpc/kernel/entry_64.S                |  964 ++------
>  arch/powerpc/kernel/exceptions-64e.S          |  254 +-
>  arch/powerpc/kernel/exceptions-64s.S          | 2046 ++++++++++++-----
>  arch/powerpc/kernel/process.c                 |    2 +
>  arch/powerpc/kernel/signal.h                  |    2 -
>  arch/powerpc/kernel/syscall_64.c              |  422 ++++
>  arch/powerpc/kernel/syscalls/syscall.tbl      |   22 +-
>  arch/powerpc/kernel/systbl.S                  |    9 +-
>  arch/powerpc/kernel/time.c                    |    9 -
>  arch/powerpc/kernel/vector.S                  |    2 +-
>  arch/powerpc/kvm/book3s_hv_rmhandlers.S       |   11 -
>  arch/powerpc/kvm/book3s_segment.S             |    7 -
>  27 files changed, 2458 insertions(+), 1392 deletions(-)
>  create mode 100644 arch/powerpc/kernel/syscall_64.c
> 
> -- 
> 2.23.0
>
Michal Suchánek Oct. 30, 2019, 12:55 p.m. UTC | #3
Hello,

On Wed, Oct 02, 2019 at 01:13:52PM +1000, Nicholas Piggin wrote:
> Michal Suchánek's on September 24, 2019 7:33 pm:
> > Hello,
> > 
> > can you mark the individual patches with RFC rather than the wole
> > series?
> 
> Hey, thanks for the reviews. I'll resend all but the last two patches
> soon for merge in the next window.

Will you resend these or should I cherry-pick the part I need for the
!COMPAT?

Thanks

Michal