[RFC v1 0/5] s390x cleanup

Claudio Fontana posted 5 patches 3 years, 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
include/hw/s390x/tod.h                        |   2 +-
target/s390x/{internal.h => s390x-internal.h} |   6 +
target/s390x/{ => tcg}/s390-tod.h             |   0
target/s390x/{ => tcg}/tcg_s390x.h            |   0
target/s390x/{ => tcg}/vec.h                  |   0
hw/s390x/tod-qemu.c                           |   2 +-
hw/s390x/tod.c                                |   9 +-
target/s390x/arch_dump.c                      |   2 +-
target/s390x/cpu-dump.c                       | 131 ++++++++
target/s390x/cpu-sysemu.c                     | 304 ++++++++++++++++++
target/s390x/cpu.c                            | 285 +---------------
target/s390x/cpu_models.c                     |   2 +-
target/s390x/diag.c                           |   2 +-
target/s390x/gdbstub.c                        |   2 +-
target/s390x/helper.c                         | 113 +------
target/s390x/interrupt.c                      |   4 +-
target/s390x/ioinst.c                         |   2 +-
target/s390x/kvm.c                            |   2 +-
target/s390x/machine.c                        |   4 +-
target/s390x/mmu_helper.c                     |   2 +-
target/s390x/sigp.c                           |   2 +-
target/s390x/tcg-stub.c                       |  30 --
target/s390x/{ => tcg}/cc_helper.c            |   2 +-
target/s390x/{ => tcg}/crypto_helper.c        |   2 +-
target/s390x/{ => tcg}/excp_helper.c          |   2 +-
target/s390x/{ => tcg}/fpu_helper.c           |   2 +-
target/s390x/{ => tcg}/int_helper.c           |   2 +-
target/s390x/{ => tcg}/mem_helper.c           |   2 +-
target/s390x/{ => tcg}/misc_helper.c          |   2 +-
target/s390x/{ => tcg}/translate.c            |   2 +-
target/s390x/{ => tcg}/vec_fpu_helper.c       |   2 +-
target/s390x/{ => tcg}/vec_helper.c           |   2 +-
target/s390x/{ => tcg}/vec_int_helper.c       |   0
target/s390x/{ => tcg}/vec_string_helper.c    |   2 +-
target/s390x/{ => tcg}/translate_vx.c.inc     |   0
hw/s390x/meson.build                          |   5 +-
target/s390x/meson.build                      |  21 +-
target/s390x/{ => tcg}/insn-data.def          |   0
target/s390x/{ => tcg}/insn-format.def        |   0
target/s390x/tcg/meson.build                  |  14 +
target/s390x/trace-events                     |   2 +-
41 files changed, 512 insertions(+), 458 deletions(-)
rename target/s390x/{internal.h => s390x-internal.h} (98%)
rename target/s390x/{ => tcg}/s390-tod.h (100%)
rename target/s390x/{ => tcg}/tcg_s390x.h (100%)
rename target/s390x/{ => tcg}/vec.h (100%)
create mode 100644 target/s390x/cpu-dump.c
create mode 100644 target/s390x/cpu-sysemu.c
delete mode 100644 target/s390x/tcg-stub.c
rename target/s390x/{ => tcg}/cc_helper.c (99%)
rename target/s390x/{ => tcg}/crypto_helper.c (98%)
rename target/s390x/{ => tcg}/excp_helper.c (99%)
rename target/s390x/{ => tcg}/fpu_helper.c (99%)
rename target/s390x/{ => tcg}/int_helper.c (99%)
rename target/s390x/{ => tcg}/mem_helper.c (99%)
rename target/s390x/{ => tcg}/misc_helper.c (99%)
rename target/s390x/{ => tcg}/translate.c (99%)
rename target/s390x/{ => tcg}/vec_fpu_helper.c (99%)
rename target/s390x/{ => tcg}/vec_helper.c (99%)
rename target/s390x/{ => tcg}/vec_int_helper.c (100%)
rename target/s390x/{ => tcg}/vec_string_helper.c (99%)
rename target/s390x/{ => tcg}/translate_vx.c.inc (100%)
rename target/s390x/{ => tcg}/insn-data.def (100%)
rename target/s390x/{ => tcg}/insn-format.def (100%)
create mode 100644 target/s390x/tcg/meson.build
[RFC v1 0/5] s390x cleanup
Posted by Claudio Fontana 3 years, 1 month ago
Hi, I am starting a cleanup series for s390x,

with the goal of doing similar splits of KVM vs TCG,
sysemu vs user mode, as for the existing work on x86 and ARM.

S/390 target looks very good already, and seems much easier to work
with. I hope that with some patches it will be even better.

I will pile up more patches later on, but I start sharing something
here with these few RFC patches for your eyes,

they are based on the pre-requisite series:

https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg07461.html

Motivation and higher level steps:

https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg04628.html

Comments welcome, thanks,

Claudio

Claudio Fontana (5):
  hw/s390x: only build qemu-tod from the CONFIG_TCG build
  target/s390x: start moving TCG-only code to tcg/
  target/s390x: move sysemu-only code out to cpu-sysemu.c
  target/s390x: split cpu-dump from helper.c
  target/s390x: make helper.c sysemu-only

 include/hw/s390x/tod.h                        |   2 +-
 target/s390x/{internal.h => s390x-internal.h} |   6 +
 target/s390x/{ => tcg}/s390-tod.h             |   0
 target/s390x/{ => tcg}/tcg_s390x.h            |   0
 target/s390x/{ => tcg}/vec.h                  |   0
 hw/s390x/tod-qemu.c                           |   2 +-
 hw/s390x/tod.c                                |   9 +-
 target/s390x/arch_dump.c                      |   2 +-
 target/s390x/cpu-dump.c                       | 131 ++++++++
 target/s390x/cpu-sysemu.c                     | 304 ++++++++++++++++++
 target/s390x/cpu.c                            | 285 +---------------
 target/s390x/cpu_models.c                     |   2 +-
 target/s390x/diag.c                           |   2 +-
 target/s390x/gdbstub.c                        |   2 +-
 target/s390x/helper.c                         | 113 +------
 target/s390x/interrupt.c                      |   4 +-
 target/s390x/ioinst.c                         |   2 +-
 target/s390x/kvm.c                            |   2 +-
 target/s390x/machine.c                        |   4 +-
 target/s390x/mmu_helper.c                     |   2 +-
 target/s390x/sigp.c                           |   2 +-
 target/s390x/tcg-stub.c                       |  30 --
 target/s390x/{ => tcg}/cc_helper.c            |   2 +-
 target/s390x/{ => tcg}/crypto_helper.c        |   2 +-
 target/s390x/{ => tcg}/excp_helper.c          |   2 +-
 target/s390x/{ => tcg}/fpu_helper.c           |   2 +-
 target/s390x/{ => tcg}/int_helper.c           |   2 +-
 target/s390x/{ => tcg}/mem_helper.c           |   2 +-
 target/s390x/{ => tcg}/misc_helper.c          |   2 +-
 target/s390x/{ => tcg}/translate.c            |   2 +-
 target/s390x/{ => tcg}/vec_fpu_helper.c       |   2 +-
 target/s390x/{ => tcg}/vec_helper.c           |   2 +-
 target/s390x/{ => tcg}/vec_int_helper.c       |   0
 target/s390x/{ => tcg}/vec_string_helper.c    |   2 +-
 target/s390x/{ => tcg}/translate_vx.c.inc     |   0
 hw/s390x/meson.build                          |   5 +-
 target/s390x/meson.build                      |  21 +-
 target/s390x/{ => tcg}/insn-data.def          |   0
 target/s390x/{ => tcg}/insn-format.def        |   0
 target/s390x/tcg/meson.build                  |  14 +
 target/s390x/trace-events                     |   2 +-
 41 files changed, 512 insertions(+), 458 deletions(-)
 rename target/s390x/{internal.h => s390x-internal.h} (98%)
 rename target/s390x/{ => tcg}/s390-tod.h (100%)
 rename target/s390x/{ => tcg}/tcg_s390x.h (100%)
 rename target/s390x/{ => tcg}/vec.h (100%)
 create mode 100644 target/s390x/cpu-dump.c
 create mode 100644 target/s390x/cpu-sysemu.c
 delete mode 100644 target/s390x/tcg-stub.c
 rename target/s390x/{ => tcg}/cc_helper.c (99%)
 rename target/s390x/{ => tcg}/crypto_helper.c (98%)
 rename target/s390x/{ => tcg}/excp_helper.c (99%)
 rename target/s390x/{ => tcg}/fpu_helper.c (99%)
 rename target/s390x/{ => tcg}/int_helper.c (99%)
 rename target/s390x/{ => tcg}/mem_helper.c (99%)
 rename target/s390x/{ => tcg}/misc_helper.c (99%)
 rename target/s390x/{ => tcg}/translate.c (99%)
 rename target/s390x/{ => tcg}/vec_fpu_helper.c (99%)
 rename target/s390x/{ => tcg}/vec_helper.c (99%)
 rename target/s390x/{ => tcg}/vec_int_helper.c (100%)
 rename target/s390x/{ => tcg}/vec_string_helper.c (99%)
 rename target/s390x/{ => tcg}/translate_vx.c.inc (100%)
 rename target/s390x/{ => tcg}/insn-data.def (100%)
 rename target/s390x/{ => tcg}/insn-format.def (100%)
 create mode 100644 target/s390x/tcg/meson.build

-- 
2.26.2


Re: [RFC v1 0/5] s390x cleanup
Posted by Claudio Fontana 3 years, 1 month ago
On 3/22/21 8:15 PM, Claudio Fontana wrote:
> Hi, I am starting a cleanup series for s390x,
> 
> with the goal of doing similar splits of KVM vs TCG,


One annoying thing is that it appears that the cpu accel model does not offer much in terms of refactoring
and code simplification opportunities for s390x as-is, in particular for KVM.

It is possible that with quite some rework of the cpu_models code we could gain something,
so I will give it a try still, but for now adding the accel-cpu object does not suddenly provide nice low hanging fruits in terms of simplifications.

There are instead some good opportunities in terms of SYSEMU vs USER mode splits/beautification I think.

Ciao,

Claudio

> sysemu vs user mode, as for the existing work on x86 and ARM.
> 
> S/390 target looks very good already, and seems much easier to work
> with. I hope that with some patches it will be even better.
> 
> I will pile up more patches later on, but I start sharing something
> here with these few RFC patches for your eyes,
> 
> they are based on the pre-requisite series:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg07461.html
> 
> Motivation and higher level steps:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg04628.html
> 
> Comments welcome, thanks,
> 
> Claudio
> 
> Claudio Fontana (5):
>   hw/s390x: only build qemu-tod from the CONFIG_TCG build
>   target/s390x: start moving TCG-only code to tcg/
>   target/s390x: move sysemu-only code out to cpu-sysemu.c
>   target/s390x: split cpu-dump from helper.c
>   target/s390x: make helper.c sysemu-only
> 
>  include/hw/s390x/tod.h                        |   2 +-
>  target/s390x/{internal.h => s390x-internal.h} |   6 +
>  target/s390x/{ => tcg}/s390-tod.h             |   0
>  target/s390x/{ => tcg}/tcg_s390x.h            |   0
>  target/s390x/{ => tcg}/vec.h                  |   0
>  hw/s390x/tod-qemu.c                           |   2 +-
>  hw/s390x/tod.c                                |   9 +-
>  target/s390x/arch_dump.c                      |   2 +-
>  target/s390x/cpu-dump.c                       | 131 ++++++++
>  target/s390x/cpu-sysemu.c                     | 304 ++++++++++++++++++
>  target/s390x/cpu.c                            | 285 +---------------
>  target/s390x/cpu_models.c                     |   2 +-
>  target/s390x/diag.c                           |   2 +-
>  target/s390x/gdbstub.c                        |   2 +-
>  target/s390x/helper.c                         | 113 +------
>  target/s390x/interrupt.c                      |   4 +-
>  target/s390x/ioinst.c                         |   2 +-
>  target/s390x/kvm.c                            |   2 +-
>  target/s390x/machine.c                        |   4 +-
>  target/s390x/mmu_helper.c                     |   2 +-
>  target/s390x/sigp.c                           |   2 +-
>  target/s390x/tcg-stub.c                       |  30 --
>  target/s390x/{ => tcg}/cc_helper.c            |   2 +-
>  target/s390x/{ => tcg}/crypto_helper.c        |   2 +-
>  target/s390x/{ => tcg}/excp_helper.c          |   2 +-
>  target/s390x/{ => tcg}/fpu_helper.c           |   2 +-
>  target/s390x/{ => tcg}/int_helper.c           |   2 +-
>  target/s390x/{ => tcg}/mem_helper.c           |   2 +-
>  target/s390x/{ => tcg}/misc_helper.c          |   2 +-
>  target/s390x/{ => tcg}/translate.c            |   2 +-
>  target/s390x/{ => tcg}/vec_fpu_helper.c       |   2 +-
>  target/s390x/{ => tcg}/vec_helper.c           |   2 +-
>  target/s390x/{ => tcg}/vec_int_helper.c       |   0
>  target/s390x/{ => tcg}/vec_string_helper.c    |   2 +-
>  target/s390x/{ => tcg}/translate_vx.c.inc     |   0
>  hw/s390x/meson.build                          |   5 +-
>  target/s390x/meson.build                      |  21 +-
>  target/s390x/{ => tcg}/insn-data.def          |   0
>  target/s390x/{ => tcg}/insn-format.def        |   0
>  target/s390x/tcg/meson.build                  |  14 +
>  target/s390x/trace-events                     |   2 +-
>  41 files changed, 512 insertions(+), 458 deletions(-)
>  rename target/s390x/{internal.h => s390x-internal.h} (98%)
>  rename target/s390x/{ => tcg}/s390-tod.h (100%)
>  rename target/s390x/{ => tcg}/tcg_s390x.h (100%)
>  rename target/s390x/{ => tcg}/vec.h (100%)
>  create mode 100644 target/s390x/cpu-dump.c
>  create mode 100644 target/s390x/cpu-sysemu.c
>  delete mode 100644 target/s390x/tcg-stub.c
>  rename target/s390x/{ => tcg}/cc_helper.c (99%)
>  rename target/s390x/{ => tcg}/crypto_helper.c (98%)
>  rename target/s390x/{ => tcg}/excp_helper.c (99%)
>  rename target/s390x/{ => tcg}/fpu_helper.c (99%)
>  rename target/s390x/{ => tcg}/int_helper.c (99%)
>  rename target/s390x/{ => tcg}/mem_helper.c (99%)
>  rename target/s390x/{ => tcg}/misc_helper.c (99%)
>  rename target/s390x/{ => tcg}/translate.c (99%)
>  rename target/s390x/{ => tcg}/vec_fpu_helper.c (99%)
>  rename target/s390x/{ => tcg}/vec_helper.c (99%)
>  rename target/s390x/{ => tcg}/vec_int_helper.c (100%)
>  rename target/s390x/{ => tcg}/vec_string_helper.c (99%)
>  rename target/s390x/{ => tcg}/translate_vx.c.inc (100%)
>  rename target/s390x/{ => tcg}/insn-data.def (100%)
>  rename target/s390x/{ => tcg}/insn-format.def (100%)
>  create mode 100644 target/s390x/tcg/meson.build
>