[PATCH v2 00/24] accel/tcg: Restrict TCGCPUOps::cpu_exec_interrupt() to sysemu

Philippe Mathieu-Daudé posted 24 patches 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210904235542.1092641-1-f4bug@amsat.org
Maintainers: "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aurelien Jarno <aurelien@aurel32.net>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
There is a newer version of this series
include/hw/core/tcg-cpu-ops.h       | 26 ++++++----
target/alpha/cpu.h                  |  2 +-
target/arm/cpu.h                    |  3 +-
target/cris/cpu.h                   |  2 +-
target/hppa/cpu.h                   |  4 +-
target/i386/cpu.h                   |  3 ++
target/i386/tcg/helper-tcg.h        |  2 +
target/m68k/cpu.h                   |  2 +
target/microblaze/cpu.h             |  2 +
target/mips/tcg/tcg-internal.h      |  5 +-
target/openrisc/cpu.h               |  5 +-
target/ppc/cpu.h                    |  4 +-
target/riscv/cpu.h                  |  2 +-
target/rx/cpu.h                     |  2 +
target/sh4/cpu.h                    |  4 +-
target/xtensa/cpu.h                 |  2 +
accel/tcg/cpu-exec.c                | 14 ++++--
bsd-user/main.c                     |  7 ---
linux-user/main.c                   |  7 ---
target/alpha/cpu.c                  |  2 +-
target/alpha/helper.c               |  5 +-
target/arm/cpu.c                    |  7 ++-
target/arm/cpu_tcg.c                |  6 +--
target/avr/cpu.c                    |  3 --
target/cris/cpu.c                   |  4 +-
target/cris/helper.c                | 17 +------
target/hppa/cpu.c                   |  2 +-
target/hppa/int_helper.c            |  7 +--
target/i386/tcg/seg_helper.c        | 74 +----------------------------
target/i386/tcg/sysemu/seg_helper.c | 65 +++++++++++++++++++++++++
target/i386/tcg/tcg-cpu.c           |  8 ++--
target/m68k/cpu.c                   |  2 +-
target/m68k/op_helper.c             | 16 ++-----
target/microblaze/cpu.c             |  2 +-
target/microblaze/helper.c          | 13 +----
target/mips/cpu.c                   |  2 +-
target/mips/tcg/exception.c         | 18 -------
target/mips/tcg/sysemu/tlb_helper.c | 18 +++++++
target/mips/tcg/user/tlb_helper.c   |  5 --
target/nios2/cpu.c                  |  5 +-
target/openrisc/cpu.c               |  2 +-
target/openrisc/interrupt.c         |  2 -
target/ppc/cpu_init.c               |  2 +-
target/ppc/excp_helper.c            | 21 ++------
target/riscv/cpu.c                  |  2 +-
target/riscv/cpu_helper.c           |  5 --
target/rx/cpu.c                     |  2 +-
target/rx/helper.c                  |  4 ++
target/sh4/cpu.c                    |  2 +-
target/sh4/helper.c                 |  9 +---
target/sparc/cpu.c                  |  4 +-
target/xtensa/cpu.c                 |  2 +-
target/xtensa/exc_helper.c          |  7 +--
target/openrisc/meson.build         |  6 ++-
54 files changed, 196 insertions(+), 253 deletions(-)
[PATCH v2 00/24] accel/tcg: Restrict TCGCPUOps::cpu_exec_interrupt() to sysemu
Posted by Philippe Mathieu-Daudé 2 years, 6 months ago
Missing review:
- 01 target/avr: Remove pointless use of CONFIG_USER_ONLY definition
- 11 target/i386: Move x86_cpu_exec_interrupt() under sysemu/ folder

Hi,

The TCGCPUOps::cpu_exec_interrupt() handler is specific to system
emulation. This series remove it from user-mode.
To do so we have to deal with a x86-hack first, then we restrict
each target handler (one target at a time) and finally we restrict
the prototype, simplifying cpu_handle_interrupt().

As a bonus we can remove the cpu_get_pic_interrupt() stubs from
bsd/linux-user.

Since v1:
- Addressed Richard comments (drop AVR patch, remove assert)
- Added R-b

Philippe Mathieu-Daudé (24):
  target/avr: Remove pointless use of CONFIG_USER_ONLY definition
  target/i386: Restrict sysemu-only fpu_helper helpers
  target/i386: Simplify TARGET_X86_64 #ifdef'ry
  target/xtensa: Restrict do_transaction_failed() to sysemu
  accel/tcg: Rename user-mode do_interrupt hack as fake_user_interrupt
  target/alpha: Restrict cpu_exec_interrupt() handler to sysemu
  target/arm: Restrict cpu_exec_interrupt() handler to sysemu
  target/cris: Restrict cpu_exec_interrupt() handler to sysemu
  target/hppa: Restrict cpu_exec_interrupt() handler to sysemu
  target/i386: Restrict cpu_exec_interrupt() handler to sysemu
  target/i386: Move x86_cpu_exec_interrupt() under sysemu/ folder
  target/m68k: Restrict cpu_exec_interrupt() handler to sysemu
  target/microblaze: Restrict cpu_exec_interrupt() handler to sysemu
  target/mips: Restrict cpu_exec_interrupt() handler to sysemu
  target/nios2: Restrict cpu_exec_interrupt() handler to sysemu
  target/openrisc: Restrict cpu_exec_interrupt() handler to sysemu
  target/ppc: Restrict cpu_exec_interrupt() handler to sysemu
  target/riscv: Restrict cpu_exec_interrupt() handler to sysemu
  target/sh4: Restrict cpu_exec_interrupt() handler to sysemu
  target/sparc: Restrict cpu_exec_interrupt() handler to sysemu
  target/rx: Restrict cpu_exec_interrupt() handler to sysemu
  target/xtensa: Restrict cpu_exec_interrupt() handler to sysemu
  accel/tcg: Restrict TCGCPUOps::cpu_exec_interrupt() to sysemu
  user: Remove cpu_get_pic_interrupt() stubs

 include/hw/core/tcg-cpu-ops.h       | 26 ++++++----
 target/alpha/cpu.h                  |  2 +-
 target/arm/cpu.h                    |  3 +-
 target/cris/cpu.h                   |  2 +-
 target/hppa/cpu.h                   |  4 +-
 target/i386/cpu.h                   |  3 ++
 target/i386/tcg/helper-tcg.h        |  2 +
 target/m68k/cpu.h                   |  2 +
 target/microblaze/cpu.h             |  2 +
 target/mips/tcg/tcg-internal.h      |  5 +-
 target/openrisc/cpu.h               |  5 +-
 target/ppc/cpu.h                    |  4 +-
 target/riscv/cpu.h                  |  2 +-
 target/rx/cpu.h                     |  2 +
 target/sh4/cpu.h                    |  4 +-
 target/xtensa/cpu.h                 |  2 +
 accel/tcg/cpu-exec.c                | 14 ++++--
 bsd-user/main.c                     |  7 ---
 linux-user/main.c                   |  7 ---
 target/alpha/cpu.c                  |  2 +-
 target/alpha/helper.c               |  5 +-
 target/arm/cpu.c                    |  7 ++-
 target/arm/cpu_tcg.c                |  6 +--
 target/avr/cpu.c                    |  3 --
 target/cris/cpu.c                   |  4 +-
 target/cris/helper.c                | 17 +------
 target/hppa/cpu.c                   |  2 +-
 target/hppa/int_helper.c            |  7 +--
 target/i386/tcg/seg_helper.c        | 74 +----------------------------
 target/i386/tcg/sysemu/seg_helper.c | 65 +++++++++++++++++++++++++
 target/i386/tcg/tcg-cpu.c           |  8 ++--
 target/m68k/cpu.c                   |  2 +-
 target/m68k/op_helper.c             | 16 ++-----
 target/microblaze/cpu.c             |  2 +-
 target/microblaze/helper.c          | 13 +----
 target/mips/cpu.c                   |  2 +-
 target/mips/tcg/exception.c         | 18 -------
 target/mips/tcg/sysemu/tlb_helper.c | 18 +++++++
 target/mips/tcg/user/tlb_helper.c   |  5 --
 target/nios2/cpu.c                  |  5 +-
 target/openrisc/cpu.c               |  2 +-
 target/openrisc/interrupt.c         |  2 -
 target/ppc/cpu_init.c               |  2 +-
 target/ppc/excp_helper.c            | 21 ++------
 target/riscv/cpu.c                  |  2 +-
 target/riscv/cpu_helper.c           |  5 --
 target/rx/cpu.c                     |  2 +-
 target/rx/helper.c                  |  4 ++
 target/sh4/cpu.c                    |  2 +-
 target/sh4/helper.c                 |  9 +---
 target/sparc/cpu.c                  |  4 +-
 target/xtensa/cpu.c                 |  2 +-
 target/xtensa/exc_helper.c          |  7 +--
 target/openrisc/meson.build         |  6 ++-
 54 files changed, 196 insertions(+), 253 deletions(-)

-- 
2.31.1