[RFC v9 00/22] i386 cleanup

Claudio Fontana posted 22 patches 3 years, 4 months ago
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201208194839.31305-1-cfontana@suse.de
Maintainers: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Sarah Harris <S.E.Harris@kent.ac.uk>, Stafford Horne <shorne@gmail.com>, Roman Bolshakov <r.bolshakov@yadro.com>, Paolo Bonzini <pbonzini@redhat.com>, Palmer Dabbelt <palmer@dabbelt.com>, David Hildenbrand <david@redhat.com>, Jason Wang <jasowang@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Sergio Lopez <slp@redhat.com>, Michael Rolnik <mrolnik@gmail.com>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Chris Wulff <crwulff@gmail.com>, "Hervé Poussineau" <hpoussin@reactos.org>, Michael Walle <michael@walle.cc>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Cameron Esfahani <dirty@apple.com>, Richard Henderson <richard.henderson@linaro.org>, Guan Xuetao <gxt@mprc.pku.edu.cn>, Marcelo Tosatti <mtosatti@redhat.com>, Wenchao Wang <wenchao.wang@intel.com>, Stefano Stabellini <sstabellini@kernel.org>, Marek Vasut <marex@denx.de>, Eduardo Habkost <ehabkost@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Cornelia Huck <cohuck@redhat.com>, Colin Xu <colin.xu@intel.com>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Alistair Francis <Alistair.Francis@wdc.com>, Anthony Perard <anthony.perard@citrix.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Peter Xu <peterx@redhat.com>, Thomas Huth <thuth@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Max Filippov <jcmvbkbc@gmail.com>, Anthony Green <green@moxielogic.com>, Artyom Tarasenko <atar4qemu@gmail.com>, Yoshinori Sato <ysato@users.sourceforge.jp>, Laurent Vivier <lvivier@redhat.com>, Laurent Vivier <laurent@vivier.eu>, Paul Durrant <paul@xen.org>, David Gibson <david@gibson.dropbear.id.au>, Sunil Muthuswamy <sunilmut@microsoft.com>
There is a newer version of this series
MAINTAINERS                           |  19 +-
accel/accel-common.c                  | 105 +++++
accel/{accel.c => accel-softmmu.c}    |  60 +--
accel/accel-softmmu.h                 |  15 +
accel/accel-user.c                    |  24 ++
accel/kvm/kvm-all.c                   |   2 -
accel/kvm/kvm-cpus.c                  |  26 +-
accel/kvm/kvm-cpus.h                  |   2 -
accel/meson.build                     |   4 +-
accel/qtest/qtest.c                   |  25 +-
accel/tcg/cpu-exec.c                  |  70 +++-
accel/tcg/cputlb.c                    |   6 +-
accel/tcg/meson.build                 |   9 +-
accel/tcg/tcg-all.c                   |  14 +-
accel/tcg/tcg-cpus-icount.c           | 138 +++++++
accel/tcg/tcg-cpus-icount.h           |  19 +
accel/tcg/tcg-cpus-mttcg.c            | 134 +++++++
accel/tcg/tcg-cpus-mttcg.h            |  19 +
accel/tcg/tcg-cpus-rr.c               | 298 ++++++++++++++
accel/tcg/tcg-cpus-rr.h               |  21 +
accel/tcg/tcg-cpus.c                  | 539 +++-----------------------
accel/tcg/tcg-cpus.h                  |   8 +-
accel/tcg/user-exec.c                 |   6 +-
accel/xen/xen-all.c                   |  24 +-
bsd-user/main.c                       |  11 +-
cpu.c                                 |  71 ++--
hw/core/cpu.c                         |  30 +-
hw/i386/fw_cfg.c                      |   2 +-
hw/i386/intel_iommu.c                 |   2 +-
hw/i386/kvm/apic.c                    |   2 +-
hw/i386/kvm/clock.c                   |   2 +-
hw/i386/microvm.c                     |   2 +-
hw/i386/pc.c                          |   2 +-
hw/i386/pc_piix.c                     |   1 +
hw/i386/x86.c                         |   2 +-
hw/mips/jazz.c                        |   4 +-
include/hw/boards.h                   |   2 +-
include/hw/core/accel-cpu.h           |  25 ++
include/hw/core/cpu.h                 |  92 ++---
include/hw/core/tcg-cpu-ops.h         |  75 ++++
include/{sysemu => qemu}/accel.h      |  16 +-
include/sysemu/accel-ops.h            |  45 +++
include/sysemu/cpus.h                 |  26 +-
include/sysemu/hvf.h                  |   2 +-
include/sysemu/kvm.h                  |   2 +-
include/sysemu/kvm_int.h              |   2 +-
linux-user/main.c                     |   7 +-
meson.build                           |   1 +
softmmu/cpus.c                        |  12 +-
softmmu/icount.c                      |   2 +-
softmmu/memory.c                      |   2 +-
softmmu/qtest.c                       |   2 +-
softmmu/vl.c                          |   8 +-
target/alpha/cpu.c                    |  18 +-
target/arm/cpu.c                      |  26 +-
target/arm/cpu64.c                    |   5 +-
target/arm/cpu_tcg.c                  |   8 +-
target/arm/helper.c                   |   4 +
target/arm/kvm64.c                    |   4 +-
target/avr/cpu.c                      |  13 +-
target/avr/helper.c                   |   4 +-
target/cris/cpu.c                     |  30 +-
target/cris/helper.c                  |   4 +-
target/hppa/cpu.c                     |  15 +-
target/i386/cpu-dump.c                | 537 +++++++++++++++++++++++++
target/i386/cpu.c                     | 418 ++------------------
target/i386/cpu.h                     | 120 +-----
target/i386/{ => hax}/hax-all.c       |   5 +-
target/i386/{ => hax}/hax-cpus.c      |  29 +-
target/i386/{ => hax}/hax-cpus.h      |   2 -
target/i386/{ => hax}/hax-i386.h      |   6 +-
target/i386/{ => hax}/hax-interface.h |   0
target/i386/{ => hax}/hax-mem.c       |   0
target/i386/{ => hax}/hax-posix.c     |   0
target/i386/{ => hax}/hax-posix.h     |   0
target/i386/{ => hax}/hax-windows.c   |   0
target/i386/{ => hax}/hax-windows.h   |   0
target/i386/hax/meson.build           |   7 +
target/i386/helper-tcg.h              | 112 ++++++
target/i386/helper.c                  | 539 +-------------------------
target/i386/host-cpu.c                | 198 ++++++++++
target/i386/host-cpu.h                |  19 +
target/i386/hvf/cpu.c                 |  65 ++++
target/i386/hvf/hvf-cpus.c            |  27 +-
target/i386/hvf/hvf-cpus.h            |   2 -
target/i386/hvf/hvf-i386.h            |   2 +-
target/i386/hvf/hvf.c                 |   3 +-
target/i386/hvf/meson.build           |   1 +
target/i386/hvf/x86_task.c            |   2 +-
target/i386/kvm/cpu.c                 | 148 +++++++
target/i386/{ => kvm}/hyperv-proto.h  |   0
target/i386/{ => kvm}/hyperv-stub.c   |   0
target/i386/{ => kvm}/hyperv.c        |   0
target/i386/{ => kvm}/hyperv.h        |   0
target/i386/kvm/kvm-cpu.h             |  41 ++
target/i386/{ => kvm}/kvm-stub.c      |   0
target/i386/{ => kvm}/kvm.c           |   3 +-
target/i386/{ => kvm}/kvm_i386.h      |   0
target/i386/kvm/meson.build           |   8 +
target/i386/kvm/trace-events          |   7 +
target/i386/kvm/trace.h               |   1 +
target/i386/machine.c                 |   4 +-
target/i386/meson.build               |  39 +-
target/i386/{ => tcg}/bpt_helper.c    |   1 +
target/i386/{ => tcg}/cc_helper.c     |   1 +
target/i386/tcg/cpu.c                 | 173 +++++++++
target/i386/{ => tcg}/excp_helper.c   |   1 +
target/i386/{ => tcg}/fpu_helper.c    |  33 +-
target/i386/{ => tcg}/int_helper.c    |   1 +
target/i386/{ => tcg}/mem_helper.c    |   1 +
target/i386/tcg/meson.build           |  14 +
target/i386/{ => tcg}/misc_helper.c   |   1 +
target/i386/{ => tcg}/mpx_helper.c    |   1 +
target/i386/{ => tcg}/seg_helper.c    |   1 +
target/i386/{ => tcg}/smm_helper.c    |   2 +
target/i386/{ => tcg}/svm_helper.c    |   1 +
target/i386/{ => tcg}/tcg-stub.c      |   0
target/i386/{ => tcg}/translate.c     |   1 +
target/i386/trace-events              |   6 -
target/i386/whpx/meson.build          |   4 +
target/i386/{ => whpx}/whp-dispatch.h |   0
target/i386/{ => whpx}/whpx-all.c     |   4 +-
target/i386/{ => whpx}/whpx-cpus.c    |  29 +-
target/i386/{ => whpx}/whpx-cpus.h    |   2 -
target/lm32/cpu.c                     |  13 +-
target/m68k/cpu.c                     |  12 +-
target/microblaze/cpu.c               |  23 +-
target/mips/cpu.c                     |  21 +-
target/moxie/cpu.c                    |  10 +-
target/nios2/cpu.c                    |  14 +-
target/openrisc/cpu.c                 |  12 +-
target/ppc/translate_init.c.inc       |  23 +-
target/riscv/cpu.c                    |  25 +-
target/rx/cpu.c                       |  18 +-
target/s390x/cpu.c                    |  15 +-
target/sh4/cpu.c                      |  14 +-
target/sparc/cpu.c                    |  18 +-
target/tilegx/cpu.c                   |  10 +-
target/tricore/cpu.c                  |   8 +-
target/unicore32/cpu.c                |  14 +-
target/xtensa/cpu.c                   |  16 +-
141 files changed, 3007 insertions(+), 2051 deletions(-)
create mode 100644 accel/accel-common.c
rename accel/{accel.c => accel-softmmu.c} (64%)
create mode 100644 accel/accel-softmmu.h
create mode 100644 accel/accel-user.c
create mode 100644 accel/tcg/tcg-cpus-icount.c
create mode 100644 accel/tcg/tcg-cpus-icount.h
create mode 100644 accel/tcg/tcg-cpus-mttcg.c
create mode 100644 accel/tcg/tcg-cpus-mttcg.h
create mode 100644 accel/tcg/tcg-cpus-rr.c
create mode 100644 accel/tcg/tcg-cpus-rr.h
create mode 100644 include/hw/core/accel-cpu.h
create mode 100644 include/hw/core/tcg-cpu-ops.h
rename include/{sysemu => qemu}/accel.h (94%)
create mode 100644 include/sysemu/accel-ops.h
create mode 100644 target/i386/cpu-dump.c
rename target/i386/{ => hax}/hax-all.c (99%)
rename target/i386/{ => hax}/hax-cpus.c (71%)
rename target/i386/{ => hax}/hax-cpus.h (95%)
rename target/i386/{ => hax}/hax-i386.h (95%)
rename target/i386/{ => hax}/hax-interface.h (100%)
rename target/i386/{ => hax}/hax-mem.c (100%)
rename target/i386/{ => hax}/hax-posix.c (100%)
rename target/i386/{ => hax}/hax-posix.h (100%)
rename target/i386/{ => hax}/hax-windows.c (100%)
rename target/i386/{ => hax}/hax-windows.h (100%)
create mode 100644 target/i386/hax/meson.build
create mode 100644 target/i386/helper-tcg.h
create mode 100644 target/i386/host-cpu.c
create mode 100644 target/i386/host-cpu.h
create mode 100644 target/i386/hvf/cpu.c
create mode 100644 target/i386/kvm/cpu.c
rename target/i386/{ => kvm}/hyperv-proto.h (100%)
rename target/i386/{ => kvm}/hyperv-stub.c (100%)
rename target/i386/{ => kvm}/hyperv.c (100%)
rename target/i386/{ => kvm}/hyperv.h (100%)
create mode 100644 target/i386/kvm/kvm-cpu.h
rename target/i386/{ => kvm}/kvm-stub.c (100%)
rename target/i386/{ => kvm}/kvm.c (99%)
rename target/i386/{ => kvm}/kvm_i386.h (100%)
create mode 100644 target/i386/kvm/meson.build
create mode 100644 target/i386/kvm/trace-events
create mode 100644 target/i386/kvm/trace.h
rename target/i386/{ => tcg}/bpt_helper.c (99%)
rename target/i386/{ => tcg}/cc_helper.c (99%)
create mode 100644 target/i386/tcg/cpu.c
rename target/i386/{ => tcg}/excp_helper.c (99%)
rename target/i386/{ => tcg}/fpu_helper.c (99%)
rename target/i386/{ => tcg}/int_helper.c (99%)
rename target/i386/{ => tcg}/mem_helper.c (99%)
create mode 100644 target/i386/tcg/meson.build
rename target/i386/{ => tcg}/misc_helper.c (99%)
rename target/i386/{ => tcg}/mpx_helper.c (99%)
rename target/i386/{ => tcg}/seg_helper.c (99%)
rename target/i386/{ => tcg}/smm_helper.c (99%)
rename target/i386/{ => tcg}/svm_helper.c (99%)
rename target/i386/{ => tcg}/tcg-stub.c (100%)
rename target/i386/{ => tcg}/translate.c (99%)
create mode 100644 target/i386/whpx/meson.build
rename target/i386/{ => whpx}/whp-dispatch.h (100%)
rename target/i386/{ => whpx}/whpx-all.c (99%)
rename target/i386/{ => whpx}/whpx-cpus.c (73%)
rename target/i386/{ => whpx}/whpx-cpus.h (96%)
[RFC v9 00/22] i386 cleanup
Posted by Claudio Fontana 3 years, 4 months ago
v8 -> v9: move additional methods to CPUClass->tcg_ops

do_unaligned_access, transaction_failed and do_interrupt.

do_interrupt is a bit tricky, as the same code is reused
(albeit not usually directly) for KVM under certain odd conditions.

Change arm, as the only user of do_interrupt callback for KVM,
to instead call the target function directly arm_do_interrupt.

v7 -> v8: add missing CONFIG_TCGs, fix bugs

* add the prerequisite patches for "3 tcg" at the beginning of the
  series for convenience (already reviewed, queued by RH).

* add CONFIG_TCG to TCGCpuOperations and tcg_ops variable use

* reduce the scope of the realizefn refactoring, do not
  introduce a separate cpu_accel_realize, and instead use the
  existing cpu_exec_realizefn, there is not enough benefit
  to introduce a new function.

* fix bugs in user mode due to attempt to move the tcg_region_init()
  early, so it could be done just once in tcg_init() for both
  softmmu and user mode. Unfortunately it needs to remain deferred
  for user mode, as it needs to be done after prologue init and
  after the GUEST_BASE has been set.

v6 -> v7: integrate TCGCpuOperations, refactored cpu_exec_realizefn

* integrate TCGCpuOperations (Eduardo)

Taken some refactoring from Eduardo for Tcg-only operations on
CPUClass.

* refactored cpu_exec_realizefn

The other main change is a refactoring of cpu_exec_realizefn,
directly linked to the effort of making many cpu_exec operations
TCG-only (Eduardo series above):

cpu_exec_realizefn is actually a TCG-only thing, with the
exception of a couple things that can be done in base cpu code.

This changes all targets realizefn, so I guess I have to Cc:
the Multiverse? (Universe was already CCed for all accelerators).


v5 -> v6: remove MODULE_INIT_ACCEL_CPU


instead, use a call to accel_init_interfaces().

* The class lookups are now general and performed in accel/

  new AccelCPUClass for new archs are supported as new
  ones appear in the class hierarchy, no need for stubs.

* Split the code a bit better


v4 -> v5: centralized and simplified initializations

I put in Cc: Emilio G. Cota, specifically because in patch 8
I (re)moved for user-mode the call to tcg_regions_init().

The call happens now inside the tcg AccelClass machine_init,
(so earlier). This seems to work fine, but thought to get the
author opinion on this.

Rebased on "tcg-cpus: split into 3 tcg variants" series
(queued by Richard), to avoid some code churn:


https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg04356.html


* Extended AccelClass to user-mode.

user-mode now does not call tcg_exec_init directly,
instead it uses the tcg accel class, and its init_machine method.

Since user-mode does not define or use a machine state,
the machine is just passed as NULL.

The immediate advantage is that now we can call current_accel()
from both user mode and softmmu, so we can work out the correct
class to use for accelerator initializations.

* QOMification of CpusAccelOps

simple QOMification of CpusAccelOps abstract class.

* Centralized all accel_cpu_init, so only one per cpu-arch,
  plus one for all accels will remain.

  So we can expect accel_cpu_init() to be limited to:
  
  softmmu/cpus.c - initializes the chosen softmmu accel ops for the cpus module.
  target/ARCH/cpu.c - initializes the chosen arch-specific cpu accelerator.
  
These changes are meant to address concerns/issues (Paolo):

1) the use of if (tcg_enabled()) and similar in the module_init call path

2) the excessive number of accel_cpu_init() to hunt down in the codebase.


* Fixed wrong use of host_cpu_class_init (Eduardo)


v3 -> v4: QOMification of X86CPUAccelClass


In this version I basically QOMified X86CPUAccel, taking the
suggestions from Eduardo as the starting point,
but stopping just short of making it an actual QOM interface,
using a plain abstract class, and then subclasses for the
actual objects.

Initialization is still using the existing qemu initialization
framework (module_call_init), which is I still think is better
than the alternatives proposed, in the current state.

Possibly some improvements could be developed in the future here.
In this case, effort should be put in keeping things extendible,
in order not to be blocked once accelerators also become modules.

Motivation and higher level steps:

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

Looking forward to your comments on this proposal,

Ciao,

Claudio


Claudio Fontana (23):
  accel/tcg: split CpusAccel into three TCG variants
  accel/tcg: split tcg_start_vcpu_thread
  accel/tcg: rename tcg-cpus functions to match module name
  i386: move kvm accel files into kvm/
  i386: move whpx accel files into whpx/
  i386: move hax accel files into hax/
  i386: hvf: remove stale MAINTAINERS entry for old hvf stubs
  i386: move TCG accel files into tcg/
  i386: move cpu dump out of helper.c into cpu-dump.c
  i386: move TCG cpu class initialization out of helper.c
  target/riscv: remove CONFIG_TCG, as it is always TCG
  accel/tcg: split TCG-only code from cpu_exec_realizefn
  target/arm: do not use cc->do_interrupt for KVM directly
  cpu: move cc->do_interrupt to tcg_ops
  cpu: move cc->transaction_failed to tcg_ops
  cpu: move do_unaligned_access to tcg_ops
  accel: extend AccelState and AccelClass to user-mode
  accel: replace struct CpusAccel with AccelOpsClass
  accel: introduce AccelCPUClass extending CPUClass
  i386: split cpu accelerators from cpu.c, using AccelCPUClass
  cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn
  hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn
  cpu: introduce cpu_accel_instance_init

Eduardo Habkost (9):
  tcg: cpu_exec_{enter,exit} helpers
  tcg: make CPUClass.cpu_exec_* optional
  tcg: Make CPUClass.debug_excp_handler optional
  cpu: Remove unnecessary noop methods
  cpu: Introduce TCGCpuOperations struct
  cpu: Move synchronize_from_tb() to tcg_ops
  cpu: Move cpu_exec_* to tcg_ops
  cpu: Move tlb_fill to tcg_ops
  cpu: Move debug_excp_handler to tcg_ops

 MAINTAINERS                           |  19 +-
 accel/accel-common.c                  | 105 +++++
 accel/{accel.c => accel-softmmu.c}    |  60 +--
 accel/accel-softmmu.h                 |  15 +
 accel/accel-user.c                    |  24 ++
 accel/kvm/kvm-all.c                   |   2 -
 accel/kvm/kvm-cpus.c                  |  26 +-
 accel/kvm/kvm-cpus.h                  |   2 -
 accel/meson.build                     |   4 +-
 accel/qtest/qtest.c                   |  25 +-
 accel/tcg/cpu-exec.c                  |  70 +++-
 accel/tcg/cputlb.c                    |   6 +-
 accel/tcg/meson.build                 |   9 +-
 accel/tcg/tcg-all.c                   |  14 +-
 accel/tcg/tcg-cpus-icount.c           | 138 +++++++
 accel/tcg/tcg-cpus-icount.h           |  19 +
 accel/tcg/tcg-cpus-mttcg.c            | 134 +++++++
 accel/tcg/tcg-cpus-mttcg.h            |  19 +
 accel/tcg/tcg-cpus-rr.c               | 298 ++++++++++++++
 accel/tcg/tcg-cpus-rr.h               |  21 +
 accel/tcg/tcg-cpus.c                  | 539 +++-----------------------
 accel/tcg/tcg-cpus.h                  |   8 +-
 accel/tcg/user-exec.c                 |   6 +-
 accel/xen/xen-all.c                   |  24 +-
 bsd-user/main.c                       |  11 +-
 cpu.c                                 |  71 ++--
 hw/core/cpu.c                         |  30 +-
 hw/i386/fw_cfg.c                      |   2 +-
 hw/i386/intel_iommu.c                 |   2 +-
 hw/i386/kvm/apic.c                    |   2 +-
 hw/i386/kvm/clock.c                   |   2 +-
 hw/i386/microvm.c                     |   2 +-
 hw/i386/pc.c                          |   2 +-
 hw/i386/pc_piix.c                     |   1 +
 hw/i386/x86.c                         |   2 +-
 hw/mips/jazz.c                        |   4 +-
 include/hw/boards.h                   |   2 +-
 include/hw/core/accel-cpu.h           |  25 ++
 include/hw/core/cpu.h                 |  92 ++---
 include/hw/core/tcg-cpu-ops.h         |  75 ++++
 include/{sysemu => qemu}/accel.h      |  16 +-
 include/sysemu/accel-ops.h            |  45 +++
 include/sysemu/cpus.h                 |  26 +-
 include/sysemu/hvf.h                  |   2 +-
 include/sysemu/kvm.h                  |   2 +-
 include/sysemu/kvm_int.h              |   2 +-
 linux-user/main.c                     |   7 +-
 meson.build                           |   1 +
 softmmu/cpus.c                        |  12 +-
 softmmu/icount.c                      |   2 +-
 softmmu/memory.c                      |   2 +-
 softmmu/qtest.c                       |   2 +-
 softmmu/vl.c                          |   8 +-
 target/alpha/cpu.c                    |  18 +-
 target/arm/cpu.c                      |  26 +-
 target/arm/cpu64.c                    |   5 +-
 target/arm/cpu_tcg.c                  |   8 +-
 target/arm/helper.c                   |   4 +
 target/arm/kvm64.c                    |   4 +-
 target/avr/cpu.c                      |  13 +-
 target/avr/helper.c                   |   4 +-
 target/cris/cpu.c                     |  30 +-
 target/cris/helper.c                  |   4 +-
 target/hppa/cpu.c                     |  15 +-
 target/i386/cpu-dump.c                | 537 +++++++++++++++++++++++++
 target/i386/cpu.c                     | 418 ++------------------
 target/i386/cpu.h                     | 120 +-----
 target/i386/{ => hax}/hax-all.c       |   5 +-
 target/i386/{ => hax}/hax-cpus.c      |  29 +-
 target/i386/{ => hax}/hax-cpus.h      |   2 -
 target/i386/{ => hax}/hax-i386.h      |   6 +-
 target/i386/{ => hax}/hax-interface.h |   0
 target/i386/{ => hax}/hax-mem.c       |   0
 target/i386/{ => hax}/hax-posix.c     |   0
 target/i386/{ => hax}/hax-posix.h     |   0
 target/i386/{ => hax}/hax-windows.c   |   0
 target/i386/{ => hax}/hax-windows.h   |   0
 target/i386/hax/meson.build           |   7 +
 target/i386/helper-tcg.h              | 112 ++++++
 target/i386/helper.c                  | 539 +-------------------------
 target/i386/host-cpu.c                | 198 ++++++++++
 target/i386/host-cpu.h                |  19 +
 target/i386/hvf/cpu.c                 |  65 ++++
 target/i386/hvf/hvf-cpus.c            |  27 +-
 target/i386/hvf/hvf-cpus.h            |   2 -
 target/i386/hvf/hvf-i386.h            |   2 +-
 target/i386/hvf/hvf.c                 |   3 +-
 target/i386/hvf/meson.build           |   1 +
 target/i386/hvf/x86_task.c            |   2 +-
 target/i386/kvm/cpu.c                 | 148 +++++++
 target/i386/{ => kvm}/hyperv-proto.h  |   0
 target/i386/{ => kvm}/hyperv-stub.c   |   0
 target/i386/{ => kvm}/hyperv.c        |   0
 target/i386/{ => kvm}/hyperv.h        |   0
 target/i386/kvm/kvm-cpu.h             |  41 ++
 target/i386/{ => kvm}/kvm-stub.c      |   0
 target/i386/{ => kvm}/kvm.c           |   3 +-
 target/i386/{ => kvm}/kvm_i386.h      |   0
 target/i386/kvm/meson.build           |   8 +
 target/i386/kvm/trace-events          |   7 +
 target/i386/kvm/trace.h               |   1 +
 target/i386/machine.c                 |   4 +-
 target/i386/meson.build               |  39 +-
 target/i386/{ => tcg}/bpt_helper.c    |   1 +
 target/i386/{ => tcg}/cc_helper.c     |   1 +
 target/i386/tcg/cpu.c                 | 173 +++++++++
 target/i386/{ => tcg}/excp_helper.c   |   1 +
 target/i386/{ => tcg}/fpu_helper.c    |  33 +-
 target/i386/{ => tcg}/int_helper.c    |   1 +
 target/i386/{ => tcg}/mem_helper.c    |   1 +
 target/i386/tcg/meson.build           |  14 +
 target/i386/{ => tcg}/misc_helper.c   |   1 +
 target/i386/{ => tcg}/mpx_helper.c    |   1 +
 target/i386/{ => tcg}/seg_helper.c    |   1 +
 target/i386/{ => tcg}/smm_helper.c    |   2 +
 target/i386/{ => tcg}/svm_helper.c    |   1 +
 target/i386/{ => tcg}/tcg-stub.c      |   0
 target/i386/{ => tcg}/translate.c     |   1 +
 target/i386/trace-events              |   6 -
 target/i386/whpx/meson.build          |   4 +
 target/i386/{ => whpx}/whp-dispatch.h |   0
 target/i386/{ => whpx}/whpx-all.c     |   4 +-
 target/i386/{ => whpx}/whpx-cpus.c    |  29 +-
 target/i386/{ => whpx}/whpx-cpus.h    |   2 -
 target/lm32/cpu.c                     |  13 +-
 target/m68k/cpu.c                     |  12 +-
 target/microblaze/cpu.c               |  23 +-
 target/mips/cpu.c                     |  21 +-
 target/moxie/cpu.c                    |  10 +-
 target/nios2/cpu.c                    |  14 +-
 target/openrisc/cpu.c                 |  12 +-
 target/ppc/translate_init.c.inc       |  23 +-
 target/riscv/cpu.c                    |  25 +-
 target/rx/cpu.c                       |  18 +-
 target/s390x/cpu.c                    |  15 +-
 target/sh4/cpu.c                      |  14 +-
 target/sparc/cpu.c                    |  18 +-
 target/tilegx/cpu.c                   |  10 +-
 target/tricore/cpu.c                  |   8 +-
 target/unicore32/cpu.c                |  14 +-
 target/xtensa/cpu.c                   |  16 +-
 141 files changed, 3007 insertions(+), 2051 deletions(-)
 create mode 100644 accel/accel-common.c
 rename accel/{accel.c => accel-softmmu.c} (64%)
 create mode 100644 accel/accel-softmmu.h
 create mode 100644 accel/accel-user.c
 create mode 100644 accel/tcg/tcg-cpus-icount.c
 create mode 100644 accel/tcg/tcg-cpus-icount.h
 create mode 100644 accel/tcg/tcg-cpus-mttcg.c
 create mode 100644 accel/tcg/tcg-cpus-mttcg.h
 create mode 100644 accel/tcg/tcg-cpus-rr.c
 create mode 100644 accel/tcg/tcg-cpus-rr.h
 create mode 100644 include/hw/core/accel-cpu.h
 create mode 100644 include/hw/core/tcg-cpu-ops.h
 rename include/{sysemu => qemu}/accel.h (94%)
 create mode 100644 include/sysemu/accel-ops.h
 create mode 100644 target/i386/cpu-dump.c
 rename target/i386/{ => hax}/hax-all.c (99%)
 rename target/i386/{ => hax}/hax-cpus.c (71%)
 rename target/i386/{ => hax}/hax-cpus.h (95%)
 rename target/i386/{ => hax}/hax-i386.h (95%)
 rename target/i386/{ => hax}/hax-interface.h (100%)
 rename target/i386/{ => hax}/hax-mem.c (100%)
 rename target/i386/{ => hax}/hax-posix.c (100%)
 rename target/i386/{ => hax}/hax-posix.h (100%)
 rename target/i386/{ => hax}/hax-windows.c (100%)
 rename target/i386/{ => hax}/hax-windows.h (100%)
 create mode 100644 target/i386/hax/meson.build
 create mode 100644 target/i386/helper-tcg.h
 create mode 100644 target/i386/host-cpu.c
 create mode 100644 target/i386/host-cpu.h
 create mode 100644 target/i386/hvf/cpu.c
 create mode 100644 target/i386/kvm/cpu.c
 rename target/i386/{ => kvm}/hyperv-proto.h (100%)
 rename target/i386/{ => kvm}/hyperv-stub.c (100%)
 rename target/i386/{ => kvm}/hyperv.c (100%)
 rename target/i386/{ => kvm}/hyperv.h (100%)
 create mode 100644 target/i386/kvm/kvm-cpu.h
 rename target/i386/{ => kvm}/kvm-stub.c (100%)
 rename target/i386/{ => kvm}/kvm.c (99%)
 rename target/i386/{ => kvm}/kvm_i386.h (100%)
 create mode 100644 target/i386/kvm/meson.build
 create mode 100644 target/i386/kvm/trace-events
 create mode 100644 target/i386/kvm/trace.h
 rename target/i386/{ => tcg}/bpt_helper.c (99%)
 rename target/i386/{ => tcg}/cc_helper.c (99%)
 create mode 100644 target/i386/tcg/cpu.c
 rename target/i386/{ => tcg}/excp_helper.c (99%)
 rename target/i386/{ => tcg}/fpu_helper.c (99%)
 rename target/i386/{ => tcg}/int_helper.c (99%)
 rename target/i386/{ => tcg}/mem_helper.c (99%)
 create mode 100644 target/i386/tcg/meson.build
 rename target/i386/{ => tcg}/misc_helper.c (99%)
 rename target/i386/{ => tcg}/mpx_helper.c (99%)
 rename target/i386/{ => tcg}/seg_helper.c (99%)
 rename target/i386/{ => tcg}/smm_helper.c (99%)
 rename target/i386/{ => tcg}/svm_helper.c (99%)
 rename target/i386/{ => tcg}/tcg-stub.c (100%)
 rename target/i386/{ => tcg}/translate.c (99%)
 create mode 100644 target/i386/whpx/meson.build
 rename target/i386/{ => whpx}/whp-dispatch.h (100%)
 rename target/i386/{ => whpx}/whpx-all.c (99%)
 rename target/i386/{ => whpx}/whpx-cpus.c (73%)
 rename target/i386/{ => whpx}/whpx-cpus.h (96%)

-- 
2.26.2


Re: [RFC v9 00/22] i386 cleanup
Posted by Philippe Mathieu-Daudé 3 years, 4 months ago
On 12/8/20 8:48 PM, Claudio Fontana wrote:
> v8 -> v9: move additional methods to CPUClass->tcg_ops
> 
> do_unaligned_access, transaction_failed and do_interrupt.
> 
> do_interrupt is a bit tricky, as the same code is reused
> (albeit not usually directly) for KVM under certain odd conditions.
> 
> Change arm, as the only user of do_interrupt callback for KVM,
> to instead call the target function directly arm_do_interrupt.

Please use scripts/git.orderfile for such refactors please ;)

...

>  MAINTAINERS                           |  19 +-
>  accel/accel-common.c                  | 105 +++++
>  accel/{accel.c => accel-softmmu.c}    |  60 +--
>  accel/accel-softmmu.h                 |  15 +
>  accel/accel-user.c                    |  24 ++
>  accel/kvm/kvm-all.c                   |   2 -
>  accel/kvm/kvm-cpus.c                  |  26 +-
>  accel/kvm/kvm-cpus.h                  |   2 -
>  accel/meson.build                     |   4 +-
>  accel/qtest/qtest.c                   |  25 +-
>  accel/tcg/cpu-exec.c                  |  70 +++-
>  accel/tcg/cputlb.c                    |   6 +-
>  accel/tcg/meson.build                 |   9 +-
>  accel/tcg/tcg-all.c                   |  14 +-
>  accel/tcg/tcg-cpus-icount.c           | 138 +++++++
>  accel/tcg/tcg-cpus-icount.h           |  19 +
>  accel/tcg/tcg-cpus-mttcg.c            | 134 +++++++
>  accel/tcg/tcg-cpus-mttcg.h            |  19 +
>  accel/tcg/tcg-cpus-rr.c               | 298 ++++++++++++++
>  accel/tcg/tcg-cpus-rr.h               |  21 +
>  accel/tcg/tcg-cpus.c                  | 539 +++-----------------------
>  accel/tcg/tcg-cpus.h                  |   8 +-
>  accel/tcg/user-exec.c                 |   6 +-
>  accel/xen/xen-all.c                   |  24 +-
>  bsd-user/main.c                       |  11 +-
>  cpu.c                                 |  71 ++--
>  hw/core/cpu.c                         |  30 +-
>  hw/i386/fw_cfg.c                      |   2 +-
>  hw/i386/intel_iommu.c                 |   2 +-
>  hw/i386/kvm/apic.c                    |   2 +-
>  hw/i386/kvm/clock.c                   |   2 +-
>  hw/i386/microvm.c                     |   2 +-
>  hw/i386/pc.c                          |   2 +-
>  hw/i386/pc_piix.c                     |   1 +
>  hw/i386/x86.c                         |   2 +-
>  hw/mips/jazz.c                        |   4 +-
>  include/hw/boards.h                   |   2 +-
>  include/hw/core/accel-cpu.h           |  25 ++
>  include/hw/core/cpu.h                 |  92 ++---
>  include/hw/core/tcg-cpu-ops.h         |  75 ++++
>  include/{sysemu => qemu}/accel.h      |  16 +-
>  include/sysemu/accel-ops.h            |  45 +++
>  include/sysemu/cpus.h                 |  26 +-
>  include/sysemu/hvf.h                  |   2 +-
>  include/sysemu/kvm.h                  |   2 +-
>  include/sysemu/kvm_int.h              |   2 +-
>  linux-user/main.c                     |   7 +-
>  meson.build                           |   1 +
>  softmmu/cpus.c                        |  12 +-
>  softmmu/icount.c                      |   2 +-
>  softmmu/memory.c                      |   2 +-
>  softmmu/qtest.c                       |   2 +-
>  softmmu/vl.c                          |   8 +-
>  target/alpha/cpu.c                    |  18 +-
>  target/arm/cpu.c                      |  26 +-
>  target/arm/cpu64.c                    |   5 +-
>  target/arm/cpu_tcg.c                  |   8 +-
>  target/arm/helper.c                   |   4 +
>  target/arm/kvm64.c                    |   4 +-
>  target/avr/cpu.c                      |  13 +-
>  target/avr/helper.c                   |   4 +-
>  target/cris/cpu.c                     |  30 +-
>  target/cris/helper.c                  |   4 +-
>  target/hppa/cpu.c                     |  15 +-
>  target/i386/cpu-dump.c                | 537 +++++++++++++++++++++++++
>  target/i386/cpu.c                     | 418 ++------------------
>  target/i386/cpu.h                     | 120 +-----
>  target/i386/{ => hax}/hax-all.c       |   5 +-
>  target/i386/{ => hax}/hax-cpus.c      |  29 +-
>  target/i386/{ => hax}/hax-cpus.h      |   2 -
>  target/i386/{ => hax}/hax-i386.h      |   6 +-
>  target/i386/{ => hax}/hax-interface.h |   0
>  target/i386/{ => hax}/hax-mem.c       |   0
>  target/i386/{ => hax}/hax-posix.c     |   0
>  target/i386/{ => hax}/hax-posix.h     |   0
>  target/i386/{ => hax}/hax-windows.c   |   0
>  target/i386/{ => hax}/hax-windows.h   |   0
>  target/i386/hax/meson.build           |   7 +
>  target/i386/helper-tcg.h              | 112 ++++++
>  target/i386/helper.c                  | 539 +-------------------------
>  target/i386/host-cpu.c                | 198 ++++++++++
>  target/i386/host-cpu.h                |  19 +
>  target/i386/hvf/cpu.c                 |  65 ++++
>  target/i386/hvf/hvf-cpus.c            |  27 +-
>  target/i386/hvf/hvf-cpus.h            |   2 -
>  target/i386/hvf/hvf-i386.h            |   2 +-
>  target/i386/hvf/hvf.c                 |   3 +-
>  target/i386/hvf/meson.build           |   1 +
>  target/i386/hvf/x86_task.c            |   2 +-
>  target/i386/kvm/cpu.c                 | 148 +++++++
>  target/i386/{ => kvm}/hyperv-proto.h  |   0
>  target/i386/{ => kvm}/hyperv-stub.c   |   0
>  target/i386/{ => kvm}/hyperv.c        |   0
>  target/i386/{ => kvm}/hyperv.h        |   0
>  target/i386/kvm/kvm-cpu.h             |  41 ++
>  target/i386/{ => kvm}/kvm-stub.c      |   0
>  target/i386/{ => kvm}/kvm.c           |   3 +-
>  target/i386/{ => kvm}/kvm_i386.h      |   0
>  target/i386/kvm/meson.build           |   8 +
>  target/i386/kvm/trace-events          |   7 +
>  target/i386/kvm/trace.h               |   1 +
>  target/i386/machine.c                 |   4 +-
>  target/i386/meson.build               |  39 +-
>  target/i386/{ => tcg}/bpt_helper.c    |   1 +
>  target/i386/{ => tcg}/cc_helper.c     |   1 +
>  target/i386/tcg/cpu.c                 | 173 +++++++++
>  target/i386/{ => tcg}/excp_helper.c   |   1 +
>  target/i386/{ => tcg}/fpu_helper.c    |  33 +-
>  target/i386/{ => tcg}/int_helper.c    |   1 +
>  target/i386/{ => tcg}/mem_helper.c    |   1 +
>  target/i386/tcg/meson.build           |  14 +
>  target/i386/{ => tcg}/misc_helper.c   |   1 +
>  target/i386/{ => tcg}/mpx_helper.c    |   1 +
>  target/i386/{ => tcg}/seg_helper.c    |   1 +
>  target/i386/{ => tcg}/smm_helper.c    |   2 +
>  target/i386/{ => tcg}/svm_helper.c    |   1 +
>  target/i386/{ => tcg}/tcg-stub.c      |   0
>  target/i386/{ => tcg}/translate.c     |   1 +
>  target/i386/trace-events              |   6 -
>  target/i386/whpx/meson.build          |   4 +
>  target/i386/{ => whpx}/whp-dispatch.h |   0
>  target/i386/{ => whpx}/whpx-all.c     |   4 +-
>  target/i386/{ => whpx}/whpx-cpus.c    |  29 +-
>  target/i386/{ => whpx}/whpx-cpus.h    |   2 -
>  target/lm32/cpu.c                     |  13 +-
>  target/m68k/cpu.c                     |  12 +-
>  target/microblaze/cpu.c               |  23 +-
>  target/mips/cpu.c                     |  21 +-
>  target/moxie/cpu.c                    |  10 +-
>  target/nios2/cpu.c                    |  14 +-
>  target/openrisc/cpu.c                 |  12 +-
>  target/ppc/translate_init.c.inc       |  23 +-
>  target/riscv/cpu.c                    |  25 +-
>  target/rx/cpu.c                       |  18 +-
>  target/s390x/cpu.c                    |  15 +-
>  target/sh4/cpu.c                      |  14 +-
>  target/sparc/cpu.c                    |  18 +-
>  target/tilegx/cpu.c                   |  10 +-
>  target/tricore/cpu.c                  |   8 +-
>  target/unicore32/cpu.c                |  14 +-
>  target/xtensa/cpu.c                   |  16 +-
>  141 files changed, 3007 insertions(+), 2051 deletions(-)
...


Re: [RFC v9 00/22] i386 cleanup
Posted by Claudio Fontana 3 years, 4 months ago
On 12/8/20 9:00 PM, Philippe Mathieu-Daudé wrote:
> On 12/8/20 8:48 PM, Claudio Fontana wrote:
>> v8 -> v9: move additional methods to CPUClass->tcg_ops
>>
>> do_unaligned_access, transaction_failed and do_interrupt.
>>
>> do_interrupt is a bit tricky, as the same code is reused
>> (albeit not usually directly) for KVM under certain odd conditions.
>>
>> Change arm, as the only user of do_interrupt callback for KVM,
>> to instead call the target function directly arm_do_interrupt.
> 
> Please use scripts/git.orderfile for such refactors please ;)

Aye aye!
If you'd like me to respin now, just let me know.

Ciao,

Claudio

> 
> ...
> 
>>  MAINTAINERS                           |  19 +-
>>  accel/accel-common.c                  | 105 +++++
>>  accel/{accel.c => accel-softmmu.c}    |  60 +--
>>  accel/accel-softmmu.h                 |  15 +
>>  accel/accel-user.c                    |  24 ++
>>  accel/kvm/kvm-all.c                   |   2 -
>>  accel/kvm/kvm-cpus.c                  |  26 +-
>>  accel/kvm/kvm-cpus.h                  |   2 -
>>  accel/meson.build                     |   4 +-
>>  accel/qtest/qtest.c                   |  25 +-
>>  accel/tcg/cpu-exec.c                  |  70 +++-
>>  accel/tcg/cputlb.c                    |   6 +-
>>  accel/tcg/meson.build                 |   9 +-
>>  accel/tcg/tcg-all.c                   |  14 +-
>>  accel/tcg/tcg-cpus-icount.c           | 138 +++++++
>>  accel/tcg/tcg-cpus-icount.h           |  19 +
>>  accel/tcg/tcg-cpus-mttcg.c            | 134 +++++++
>>  accel/tcg/tcg-cpus-mttcg.h            |  19 +
>>  accel/tcg/tcg-cpus-rr.c               | 298 ++++++++++++++
>>  accel/tcg/tcg-cpus-rr.h               |  21 +
>>  accel/tcg/tcg-cpus.c                  | 539 +++-----------------------
>>  accel/tcg/tcg-cpus.h                  |   8 +-
>>  accel/tcg/user-exec.c                 |   6 +-
>>  accel/xen/xen-all.c                   |  24 +-
>>  bsd-user/main.c                       |  11 +-
>>  cpu.c                                 |  71 ++--
>>  hw/core/cpu.c                         |  30 +-
>>  hw/i386/fw_cfg.c                      |   2 +-
>>  hw/i386/intel_iommu.c                 |   2 +-
>>  hw/i386/kvm/apic.c                    |   2 +-
>>  hw/i386/kvm/clock.c                   |   2 +-
>>  hw/i386/microvm.c                     |   2 +-
>>  hw/i386/pc.c                          |   2 +-
>>  hw/i386/pc_piix.c                     |   1 +
>>  hw/i386/x86.c                         |   2 +-
>>  hw/mips/jazz.c                        |   4 +-
>>  include/hw/boards.h                   |   2 +-
>>  include/hw/core/accel-cpu.h           |  25 ++
>>  include/hw/core/cpu.h                 |  92 ++---
>>  include/hw/core/tcg-cpu-ops.h         |  75 ++++
>>  include/{sysemu => qemu}/accel.h      |  16 +-
>>  include/sysemu/accel-ops.h            |  45 +++
>>  include/sysemu/cpus.h                 |  26 +-
>>  include/sysemu/hvf.h                  |   2 +-
>>  include/sysemu/kvm.h                  |   2 +-
>>  include/sysemu/kvm_int.h              |   2 +-
>>  linux-user/main.c                     |   7 +-
>>  meson.build                           |   1 +
>>  softmmu/cpus.c                        |  12 +-
>>  softmmu/icount.c                      |   2 +-
>>  softmmu/memory.c                      |   2 +-
>>  softmmu/qtest.c                       |   2 +-
>>  softmmu/vl.c                          |   8 +-
>>  target/alpha/cpu.c                    |  18 +-
>>  target/arm/cpu.c                      |  26 +-
>>  target/arm/cpu64.c                    |   5 +-
>>  target/arm/cpu_tcg.c                  |   8 +-
>>  target/arm/helper.c                   |   4 +
>>  target/arm/kvm64.c                    |   4 +-
>>  target/avr/cpu.c                      |  13 +-
>>  target/avr/helper.c                   |   4 +-
>>  target/cris/cpu.c                     |  30 +-
>>  target/cris/helper.c                  |   4 +-
>>  target/hppa/cpu.c                     |  15 +-
>>  target/i386/cpu-dump.c                | 537 +++++++++++++++++++++++++
>>  target/i386/cpu.c                     | 418 ++------------------
>>  target/i386/cpu.h                     | 120 +-----
>>  target/i386/{ => hax}/hax-all.c       |   5 +-
>>  target/i386/{ => hax}/hax-cpus.c      |  29 +-
>>  target/i386/{ => hax}/hax-cpus.h      |   2 -
>>  target/i386/{ => hax}/hax-i386.h      |   6 +-
>>  target/i386/{ => hax}/hax-interface.h |   0
>>  target/i386/{ => hax}/hax-mem.c       |   0
>>  target/i386/{ => hax}/hax-posix.c     |   0
>>  target/i386/{ => hax}/hax-posix.h     |   0
>>  target/i386/{ => hax}/hax-windows.c   |   0
>>  target/i386/{ => hax}/hax-windows.h   |   0
>>  target/i386/hax/meson.build           |   7 +
>>  target/i386/helper-tcg.h              | 112 ++++++
>>  target/i386/helper.c                  | 539 +-------------------------
>>  target/i386/host-cpu.c                | 198 ++++++++++
>>  target/i386/host-cpu.h                |  19 +
>>  target/i386/hvf/cpu.c                 |  65 ++++
>>  target/i386/hvf/hvf-cpus.c            |  27 +-
>>  target/i386/hvf/hvf-cpus.h            |   2 -
>>  target/i386/hvf/hvf-i386.h            |   2 +-
>>  target/i386/hvf/hvf.c                 |   3 +-
>>  target/i386/hvf/meson.build           |   1 +
>>  target/i386/hvf/x86_task.c            |   2 +-
>>  target/i386/kvm/cpu.c                 | 148 +++++++
>>  target/i386/{ => kvm}/hyperv-proto.h  |   0
>>  target/i386/{ => kvm}/hyperv-stub.c   |   0
>>  target/i386/{ => kvm}/hyperv.c        |   0
>>  target/i386/{ => kvm}/hyperv.h        |   0
>>  target/i386/kvm/kvm-cpu.h             |  41 ++
>>  target/i386/{ => kvm}/kvm-stub.c      |   0
>>  target/i386/{ => kvm}/kvm.c           |   3 +-
>>  target/i386/{ => kvm}/kvm_i386.h      |   0
>>  target/i386/kvm/meson.build           |   8 +
>>  target/i386/kvm/trace-events          |   7 +
>>  target/i386/kvm/trace.h               |   1 +
>>  target/i386/machine.c                 |   4 +-
>>  target/i386/meson.build               |  39 +-
>>  target/i386/{ => tcg}/bpt_helper.c    |   1 +
>>  target/i386/{ => tcg}/cc_helper.c     |   1 +
>>  target/i386/tcg/cpu.c                 | 173 +++++++++
>>  target/i386/{ => tcg}/excp_helper.c   |   1 +
>>  target/i386/{ => tcg}/fpu_helper.c    |  33 +-
>>  target/i386/{ => tcg}/int_helper.c    |   1 +
>>  target/i386/{ => tcg}/mem_helper.c    |   1 +
>>  target/i386/tcg/meson.build           |  14 +
>>  target/i386/{ => tcg}/misc_helper.c   |   1 +
>>  target/i386/{ => tcg}/mpx_helper.c    |   1 +
>>  target/i386/{ => tcg}/seg_helper.c    |   1 +
>>  target/i386/{ => tcg}/smm_helper.c    |   2 +
>>  target/i386/{ => tcg}/svm_helper.c    |   1 +
>>  target/i386/{ => tcg}/tcg-stub.c      |   0
>>  target/i386/{ => tcg}/translate.c     |   1 +
>>  target/i386/trace-events              |   6 -
>>  target/i386/whpx/meson.build          |   4 +
>>  target/i386/{ => whpx}/whp-dispatch.h |   0
>>  target/i386/{ => whpx}/whpx-all.c     |   4 +-
>>  target/i386/{ => whpx}/whpx-cpus.c    |  29 +-
>>  target/i386/{ => whpx}/whpx-cpus.h    |   2 -
>>  target/lm32/cpu.c                     |  13 +-
>>  target/m68k/cpu.c                     |  12 +-
>>  target/microblaze/cpu.c               |  23 +-
>>  target/mips/cpu.c                     |  21 +-
>>  target/moxie/cpu.c                    |  10 +-
>>  target/nios2/cpu.c                    |  14 +-
>>  target/openrisc/cpu.c                 |  12 +-
>>  target/ppc/translate_init.c.inc       |  23 +-
>>  target/riscv/cpu.c                    |  25 +-
>>  target/rx/cpu.c                       |  18 +-
>>  target/s390x/cpu.c                    |  15 +-
>>  target/sh4/cpu.c                      |  14 +-
>>  target/sparc/cpu.c                    |  18 +-
>>  target/tilegx/cpu.c                   |  10 +-
>>  target/tricore/cpu.c                  |   8 +-
>>  target/unicore32/cpu.c                |  14 +-
>>  target/xtensa/cpu.c                   |  16 +-
>>  141 files changed, 3007 insertions(+), 2051 deletions(-)
> ...
> 
> 


Re: [RFC v9 00/22] i386 cleanup
Posted by Paolo Bonzini 3 years, 4 months ago
On 08/12/20 23:15, Claudio Fontana wrote:
> On 12/8/20 9:00 PM, Philippe Mathieu-Daudé wrote:
>> On 12/8/20 8:48 PM, Claudio Fontana wrote:
>>> v8 -> v9: move additional methods to CPUClass->tcg_ops
>>>
>>> do_unaligned_access, transaction_failed and do_interrupt.
>>>
>>> do_interrupt is a bit tricky, as the same code is reused
>>> (albeit not usually directly) for KVM under certain odd conditions.
>>>
>>> Change arm, as the only user of do_interrupt callback for KVM,
>>> to instead call the target function directly arm_do_interrupt.
>>
>> Please use scripts/git.orderfile for such refactors please ;)
> 
> Aye aye!
> If you'd like me to respin now, just let me know.

No, not needed thanks!

Paolo


Re: [RFC v9 00/22] i386 cleanup
Posted by Alex Bennée 3 years, 4 months ago
Claudio Fontana <cfontana@suse.de> writes:

<snip>
>
> Looking forward to your comments on this proposal,

OK I've completed my pass although I petered out a little just before
the changes that affect the explicit ordering which was a bit too much
for my brain to process after lunch. Some general thoughts...

I like the way this is going and having the much more modular concept
for both accelerators and target accelerator support. However to protect
the new build combinations I think we need to cover some TCG and HW
accelerator builds in the gitlab build matrix.

-- 
Alex Bennée

Re: [RFC v9 00/22] i386 cleanup
Posted by Claudio Fontana 3 years, 4 months ago
On 12/9/20 1:58 PM, Alex Bennée wrote:
> 
> Claudio Fontana <cfontana@suse.de> writes:
> 
> <snip>
>>
>> Looking forward to your comments on this proposal,
> 
> OK I've completed my pass although I petered out a little just before
> the changes that affect the explicit ordering which was a bit too much
> for my brain to process after lunch. Some general thoughts...
> 
> I like the way this is going and having the much more modular concept
> for both accelerators and target accelerator support. However to protect
> the new build combinations I think we need to cover some TCG and HW
> accelerator builds in the gitlab build matrix.
> 

Hi Alex,

thanks a lot for your review pass,
will start addressing your comments in the next spin,

Ciao!

Claudio


Re: [RFC v9 00/22] i386 cleanup
Posted by no-reply@patchew.org 3 years, 4 months ago
Patchew URL: https://patchew.org/QEMU/20201208194839.31305-1-cfontana@suse.de/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20201208194839.31305-1-cfontana@suse.de
Subject: [RFC v9 00/22] i386 cleanup

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20201208194839.31305-1-cfontana@suse.de -> patchew/20201208194839.31305-1-cfontana@suse.de
Switched to a new branch 'test'
1df468e cpu: introduce cpu_accel_instance_init
273e6bc hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn
6c8c6a4 cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn
c7ecc11 i386: split cpu accelerators from cpu.c, using AccelCPUClass
739ef2b accel: introduce AccelCPUClass extending CPUClass
706469e accel: replace struct CpusAccel with AccelOpsClass
c3aa222 accel: extend AccelState and AccelClass to user-mode
c45684a cpu: move do_unaligned_access to tcg_ops
bca539a cpu: move cc->transaction_failed to tcg_ops
74feabd cpu: move cc->do_interrupt to tcg_ops
f22d896 target/arm: do not use cc->do_interrupt for KVM directly
9a74429 cpu: Move debug_excp_handler to tcg_ops
bf5b24b cpu: Move tlb_fill to tcg_ops
481a06e cpu: Move cpu_exec_* to tcg_ops
af72917 cpu: Move synchronize_from_tb() to tcg_ops
f9b393d accel/tcg: split TCG-only code from cpu_exec_realizefn
2019e4f target/riscv: remove CONFIG_TCG, as it is always TCG
53b3f4e cpu: Introduce TCGCpuOperations struct
8a0c2e9 cpu: Remove unnecessary noop methods
043b89c tcg: Make CPUClass.debug_excp_handler optional
b271ab4 tcg: make CPUClass.cpu_exec_* optional
ac15b62 tcg: cpu_exec_{enter,exit} helpers
0560b09 i386: move TCG cpu class initialization out of helper.c
36ae5f1 i386: move cpu dump out of helper.c into cpu-dump.c
ef2d207 i386: move TCG accel files into tcg/
9d7a737 i386: hvf: remove stale MAINTAINERS entry for old hvf stubs
42deca7 i386: move hax accel files into hax/
7dfc2be i386: move whpx accel files into whpx/
4d4c885 i386: move kvm accel files into kvm/
d9966d5 accel/tcg: rename tcg-cpus functions to match module name
a8f0cbf accel/tcg: split tcg_start_vcpu_thread
5e46bf0 accel/tcg: split CpusAccel into three TCG variants

=== OUTPUT BEGIN ===
1/32 Checking commit 5e46bf019fb7 (accel/tcg: split CpusAccel into three TCG variants)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#57: 
new file mode 100644

total: 0 errors, 1 warnings, 1156 lines checked

Patch 1/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/32 Checking commit a8f0cbf6b610 (accel/tcg: split tcg_start_vcpu_thread)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#103: 
deleted file mode 100644

total: 0 errors, 1 warnings, 201 lines checked

Patch 2/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/32 Checking commit d9966d571c7e (accel/tcg: rename tcg-cpus functions to match module name)
4/32 Checking commit 4d4c885ff790 (i386: move kvm accel files into kvm/)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#167: 
rename from target/i386/hyperv-proto.h

total: 0 errors, 1 warnings, 150 lines checked

Patch 4/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/32 Checking commit 7dfc2bea3c57 (i386: move whpx accel files into whpx/)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#50: 
new file mode 100644

total: 0 errors, 1 warnings, 32 lines checked

Patch 5/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
6/32 Checking commit 42deca72cda4 (i386: move hax accel files into hax/)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#25: 
rename from target/i386/hax-all.c

total: 0 errors, 1 warnings, 47 lines checked

Patch 6/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/32 Checking commit 9d7a7374d252 (i386: hvf: remove stale MAINTAINERS entry for old hvf stubs)
8/32 Checking commit ef2d207c5f81 (i386: move TCG accel files into tcg/)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#44: 
rename from target/i386/bpt_helper.c

total: 0 errors, 1 warnings, 39 lines checked

Patch 8/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/32 Checking commit 36ae5f191d8c (i386: move cpu dump out of helper.c into cpu-dump.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#11: 
new file mode 100644

ERROR: braces {} are necessary for all arms of this statement
#128: FILE: target/i386/cpu-dump.c:113:
+    if (!(env->hflags & HF_PE_MASK) || !(sc->flags & DESC_P_MASK))
[...]

WARNING: Block comments use a leading /* on a separate line
#172: FILE: target/i386/cpu-dump.c:157:
+/* ARRAY_SIZE check is not required because

WARNING: Block comments use a leading /* on a separate line
#211: FILE: target/i386/cpu-dump.c:196:
+/* ARRAY_SIZE check is not required because

ERROR: line over 90 characters
#373: FILE: target/i386/cpu-dump.c:358:
+        qemu_fprintf(f, "RAX=%016" PRIx64 " RBX=%016" PRIx64 " RCX=%016" PRIx64 " RDX=%016" PRIx64 "\n"

ERROR: line over 90 characters
#374: FILE: target/i386/cpu-dump.c:359:
+                     "RSI=%016" PRIx64 " RDI=%016" PRIx64 " RBP=%016" PRIx64 " RSP=%016" PRIx64 "\n"

ERROR: line over 90 characters
#375: FILE: target/i386/cpu-dump.c:360:
+                     "R8 =%016" PRIx64 " R9 =%016" PRIx64 " R10=%016" PRIx64 " R11=%016" PRIx64 "\n"

ERROR: line over 90 characters
#376: FILE: target/i386/cpu-dump.c:361:
+                     "R12=%016" PRIx64 " R13=%016" PRIx64 " R14=%016" PRIx64 " R15=%016" PRIx64 "\n"

ERROR: line over 90 characters
#377: FILE: target/i386/cpu-dump.c:362:
+                     "RIP=%016" PRIx64 " RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d SMM=%d HLT=%d\n",

ERROR: space required before the open parenthesis '('
#436: FILE: target/i386/cpu-dump.c:421:
+    for(i = 0; i < 6; i++) {

WARNING: line over 80 characters
#448: FILE: target/i386/cpu-dump.c:433:
+        qemu_fprintf(f, "CR0=%08x CR2=%016" PRIx64 " CR3=%016" PRIx64 " CR4=%08x\n",

ERROR: space required before the open parenthesis '('
#453: FILE: target/i386/cpu-dump.c:438:
+        for(i = 0; i < 4; i++)

ERROR: braces {} are necessary for all arms of this statement
#453: FILE: target/i386/cpu-dump.c:438:
+        for(i = 0; i < 4; i++)
[...]

ERROR: space required before the open parenthesis '('
#469: FILE: target/i386/cpu-dump.c:454:
+        for(i = 0; i < 4; i++) {

ERROR: braces {} are necessary for all arms of this statement
#476: FILE: target/i386/cpu-dump.c:461:
+        if ((unsigned)env->cc_op < CC_OP_NB)
[...]
+        else
[...]

WARNING: line over 80 characters
#477: FILE: target/i386/cpu-dump.c:462:
+            snprintf(cc_op_name, sizeof(cc_op_name), "%s", cc_op_str[env->cc_op]);

ERROR: space required before the open parenthesis '('
#497: FILE: target/i386/cpu-dump.c:482:
+        for(i = 0; i < 8; i++) {

ERROR: spaces required around that '=' (ctx:VxV)
#507: FILE: target/i386/cpu-dump.c:492:
+        for(i=0;i<8;i++) {
              ^

ERROR: space required after that ';' (ctx:VxV)
#507: FILE: target/i386/cpu-dump.c:492:
+        for(i=0;i<8;i++) {
                ^

ERROR: spaces required around that '<' (ctx:VxV)
#507: FILE: target/i386/cpu-dump.c:492:
+        for(i=0;i<8;i++) {
                  ^

ERROR: space required after that ';' (ctx:VxV)
#507: FILE: target/i386/cpu-dump.c:492:
+        for(i=0;i<8;i++) {
                    ^

ERROR: space required before the open parenthesis '('
#507: FILE: target/i386/cpu-dump.c:492:
+        for(i=0;i<8;i++) {

ERROR: braces {} are necessary for all arms of this statement
#512: FILE: target/i386/cpu-dump.c:497:
+            if ((i & 1) == 1)
[...]
+            else
[...]

ERROR: braces {} are necessary for all arms of this statement
#517: FILE: target/i386/cpu-dump.c:502:
+        if (env->hflags & HF_CS64_MASK)
[...]
+        else
[...]

ERROR: spaces required around that '=' (ctx:VxV)
#521: FILE: target/i386/cpu-dump.c:506:
+        for(i=0;i<nb;i++) {
              ^

ERROR: space required after that ';' (ctx:VxV)
#521: FILE: target/i386/cpu-dump.c:506:
+        for(i=0;i<nb;i++) {
                ^

ERROR: spaces required around that '<' (ctx:VxV)
#521: FILE: target/i386/cpu-dump.c:506:
+        for(i=0;i<nb;i++) {
                  ^

ERROR: space required after that ';' (ctx:VxV)
#521: FILE: target/i386/cpu-dump.c:506:
+        for(i=0;i<nb;i++) {
                     ^

ERROR: space required before the open parenthesis '('
#521: FILE: target/i386/cpu-dump.c:506:
+        for(i=0;i<nb;i++) {

ERROR: braces {} are necessary for all arms of this statement
#528: FILE: target/i386/cpu-dump.c:513:
+            if ((i & 1) == 1)
[...]
+            else
[...]

total: 25 errors, 5 warnings, 1077 lines checked

Patch 9/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

10/32 Checking commit 0560b09d8481 (i386: move TCG cpu class initialization out of helper.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#282: 
new file mode 100644

total: 0 errors, 1 warnings, 610 lines checked

Patch 10/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
11/32 Checking commit ac15b624a91f (tcg: cpu_exec_{enter,exit} helpers)
12/32 Checking commit b271ab48c45b (tcg: make CPUClass.cpu_exec_* optional)
13/32 Checking commit 043b89c9c315 (tcg: Make CPUClass.debug_excp_handler optional)
14/32 Checking commit 8a0c2e9a0e2c (cpu: Remove unnecessary noop methods)
15/32 Checking commit 53b3f4e5b390 (cpu: Introduce TCGCpuOperations struct)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#92: 
new file mode 100644

total: 0 errors, 1 warnings, 301 lines checked

Patch 15/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
16/32 Checking commit 2019e4f802bb (target/riscv: remove CONFIG_TCG, as it is always TCG)
17/32 Checking commit f9b393d26c70 (accel/tcg: split TCG-only code from cpu_exec_realizefn)
18/32 Checking commit af729170f4b8 (cpu: Move synchronize_from_tb() to tcg_ops)
19/32 Checking commit 481a06e3b020 (cpu: Move cpu_exec_* to tcg_ops)
20/32 Checking commit bf5b24bcd22f (cpu: Move tlb_fill to tcg_ops)
WARNING: line over 80 characters
#22: FILE: accel/tcg/cputlb.c:1289:
+    ok = cc->tcg_ops.tlb_fill(cpu, addr, size, access_type, mmu_idx, false, retaddr);

total: 0 errors, 1 warnings, 259 lines checked

Patch 20/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
21/32 Checking commit 9a74429f2029 (cpu: Move debug_excp_handler to tcg_ops)
22/32 Checking commit f22d896967f8 (target/arm: do not use cc->do_interrupt for KVM directly)
23/32 Checking commit 74feabd5bae5 (cpu: move cc->do_interrupt to tcg_ops)
24/32 Checking commit bca539a6251e (cpu: move cc->transaction_failed to tcg_ops)
WARNING: line over 80 characters
#67: FILE: include/hw/core/cpu.h:857:
+        cc->tcg_ops.do_transaction_failed(cpu, physaddr, addr, size, access_type,

total: 0 errors, 1 warnings, 144 lines checked

Patch 24/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
25/32 Checking commit c45684ac5ad9 (cpu: move do_unaligned_access to tcg_ops)
26/32 Checking commit c3aa2224bd71 (accel: extend AccelState and AccelClass to user-mode)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#24: 
new file mode 100644

total: 0 errors, 1 warnings, 359 lines checked

Patch 26/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
27/32 Checking commit 706469ebcc15 (accel: replace struct CpusAccel with AccelOpsClass)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#115: 
new file mode 100644

total: 0 errors, 1 warnings, 691 lines checked

Patch 27/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
28/32 Checking commit 739ef2bd13aa (accel: introduce AccelCPUClass extending CPUClass)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#99: 
new file mode 100644

total: 0 errors, 1 warnings, 123 lines checked

Patch 28/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
29/32 Checking commit c7ecc117664f (i386: split cpu accelerators from cpu.c, using AccelCPUClass)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#664: 
new file mode 100644

WARNING: line over 80 characters
#1435: FILE: target/i386/tcg/cpu.c:104:
+    memory_region_add_subregion_overlap(cpu->cpu_as_root, 0, cpu->cpu_as_mem, 0);

total: 0 errors, 2 warnings, 1296 lines checked

Patch 29/32 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
30/32 Checking commit 6c8c6a4d84dd (cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn)
31/32 Checking commit 273e6bca6404 (hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn)
32/32 Checking commit 1df468eafd63 (cpu: introduce cpu_accel_instance_init)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20201208194839.31305-1-cfontana@suse.de/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [RFC v9 00/22] i386 cleanup
Posted by Alex Bennée 3 years, 4 months ago
no-reply@patchew.org writes:

> Patchew URL: https://patchew.org/QEMU/20201208194839.31305-1-cfontana@suse.de/
>
>
>
> Hi,
>
> This series seems to have some coding style problems. See output below for
> more information:

Also replicated in:

https://gitlab.com/stsquad/qemu/-/jobs/899057106

>
> Type: series
> Message-id: 20201208194839.31305-1-cfontana@suse.de
> Subject: [RFC v9 00/22] i386 cleanup
>
> === TEST SCRIPT BEGIN ===
> #!/bin/bash
> git rev-parse base > /dev/null || exit 0
> git config --local diff.renamelimit 0
> git config --local diff.renames True
> git config --local diff.algorithm histogram
> ./scripts/checkpatch.pl --mailback base..
> === TEST SCRIPT END ===
>
> Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
> From https://github.com/patchew-project/qemu
>  * [new tag]         patchew/20201208194839.31305-1-cfontana@suse.de -> patchew/20201208194839.31305-1-cfontana@suse.de
> Switched to a new branch 'test'
> 1df468e cpu: introduce cpu_accel_instance_init
> 273e6bc hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn
> 6c8c6a4 cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn
> c7ecc11 i386: split cpu accelerators from cpu.c, using AccelCPUClass
> 739ef2b accel: introduce AccelCPUClass extending CPUClass
> 706469e accel: replace struct CpusAccel with AccelOpsClass
> c3aa222 accel: extend AccelState and AccelClass to user-mode
> c45684a cpu: move do_unaligned_access to tcg_ops
> bca539a cpu: move cc->transaction_failed to tcg_ops
> 74feabd cpu: move cc->do_interrupt to tcg_ops
> f22d896 target/arm: do not use cc->do_interrupt for KVM directly
> 9a74429 cpu: Move debug_excp_handler to tcg_ops
> bf5b24b cpu: Move tlb_fill to tcg_ops
> 481a06e cpu: Move cpu_exec_* to tcg_ops
> af72917 cpu: Move synchronize_from_tb() to tcg_ops
> f9b393d accel/tcg: split TCG-only code from cpu_exec_realizefn
> 2019e4f target/riscv: remove CONFIG_TCG, as it is always TCG
> 53b3f4e cpu: Introduce TCGCpuOperations struct
> 8a0c2e9 cpu: Remove unnecessary noop methods
> 043b89c tcg: Make CPUClass.debug_excp_handler optional
> b271ab4 tcg: make CPUClass.cpu_exec_* optional
> ac15b62 tcg: cpu_exec_{enter,exit} helpers
> 0560b09 i386: move TCG cpu class initialization out of helper.c
> 36ae5f1 i386: move cpu dump out of helper.c into cpu-dump.c
> ef2d207 i386: move TCG accel files into tcg/
> 9d7a737 i386: hvf: remove stale MAINTAINERS entry for old hvf stubs
> 42deca7 i386: move hax accel files into hax/
> 7dfc2be i386: move whpx accel files into whpx/
> 4d4c885 i386: move kvm accel files into kvm/
> d9966d5 accel/tcg: rename tcg-cpus functions to match module name
> a8f0cbf accel/tcg: split tcg_start_vcpu_thread
> 5e46bf0 accel/tcg: split CpusAccel into three TCG variants
>
> === OUTPUT BEGIN ===
> 1/32 Checking commit 5e46bf019fb7 (accel/tcg: split CpusAccel into three TCG variants)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #57: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 1156 lines checked
>
> Patch 1/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 2/32 Checking commit a8f0cbf6b610 (accel/tcg: split tcg_start_vcpu_thread)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #103: 
> deleted file mode 100644
>
> total: 0 errors, 1 warnings, 201 lines checked
>
> Patch 2/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 3/32 Checking commit d9966d571c7e (accel/tcg: rename tcg-cpus functions to match module name)
> 4/32 Checking commit 4d4c885ff790 (i386: move kvm accel files into kvm/)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #167: 
> rename from target/i386/hyperv-proto.h
>
> total: 0 errors, 1 warnings, 150 lines checked
>
> Patch 4/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 5/32 Checking commit 7dfc2bea3c57 (i386: move whpx accel files into whpx/)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #50: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 32 lines checked
>
> Patch 5/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 6/32 Checking commit 42deca72cda4 (i386: move hax accel files into hax/)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #25: 
> rename from target/i386/hax-all.c
>
> total: 0 errors, 1 warnings, 47 lines checked
>
> Patch 6/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 7/32 Checking commit 9d7a7374d252 (i386: hvf: remove stale MAINTAINERS entry for old hvf stubs)
> 8/32 Checking commit ef2d207c5f81 (i386: move TCG accel files into tcg/)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #44: 
> rename from target/i386/bpt_helper.c
>
> total: 0 errors, 1 warnings, 39 lines checked
>
> Patch 8/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 9/32 Checking commit 36ae5f191d8c (i386: move cpu dump out of helper.c into cpu-dump.c)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #11: 
> new file mode 100644
>
> ERROR: braces {} are necessary for all arms of this statement
> #128: FILE: target/i386/cpu-dump.c:113:
> +    if (!(env->hflags & HF_PE_MASK) || !(sc->flags & DESC_P_MASK))
> [...]
>
> WARNING: Block comments use a leading /* on a separate line
> #172: FILE: target/i386/cpu-dump.c:157:
> +/* ARRAY_SIZE check is not required because
>
> WARNING: Block comments use a leading /* on a separate line
> #211: FILE: target/i386/cpu-dump.c:196:
> +/* ARRAY_SIZE check is not required because
>
> ERROR: line over 90 characters
> #373: FILE: target/i386/cpu-dump.c:358:
> +        qemu_fprintf(f, "RAX=%016" PRIx64 " RBX=%016" PRIx64 " RCX=%016" PRIx64 " RDX=%016" PRIx64 "\n"
>
> ERROR: line over 90 characters
> #374: FILE: target/i386/cpu-dump.c:359:
> +                     "RSI=%016" PRIx64 " RDI=%016" PRIx64 " RBP=%016" PRIx64 " RSP=%016" PRIx64 "\n"
>
> ERROR: line over 90 characters
> #375: FILE: target/i386/cpu-dump.c:360:
> +                     "R8 =%016" PRIx64 " R9 =%016" PRIx64 " R10=%016" PRIx64 " R11=%016" PRIx64 "\n"
>
> ERROR: line over 90 characters
> #376: FILE: target/i386/cpu-dump.c:361:
> +                     "R12=%016" PRIx64 " R13=%016" PRIx64 " R14=%016" PRIx64 " R15=%016" PRIx64 "\n"
>
> ERROR: line over 90 characters
> #377: FILE: target/i386/cpu-dump.c:362:
> +                     "RIP=%016" PRIx64 " RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d SMM=%d HLT=%d\n",
>
> ERROR: space required before the open parenthesis '('
> #436: FILE: target/i386/cpu-dump.c:421:
> +    for(i = 0; i < 6; i++) {
>
> WARNING: line over 80 characters
> #448: FILE: target/i386/cpu-dump.c:433:
> +        qemu_fprintf(f, "CR0=%08x CR2=%016" PRIx64 " CR3=%016" PRIx64 " CR4=%08x\n",
>
> ERROR: space required before the open parenthesis '('
> #453: FILE: target/i386/cpu-dump.c:438:
> +        for(i = 0; i < 4; i++)
>
> ERROR: braces {} are necessary for all arms of this statement
> #453: FILE: target/i386/cpu-dump.c:438:
> +        for(i = 0; i < 4; i++)
> [...]
>
> ERROR: space required before the open parenthesis '('
> #469: FILE: target/i386/cpu-dump.c:454:
> +        for(i = 0; i < 4; i++) {
>
> ERROR: braces {} are necessary for all arms of this statement
> #476: FILE: target/i386/cpu-dump.c:461:
> +        if ((unsigned)env->cc_op < CC_OP_NB)
> [...]
> +        else
> [...]
>
> WARNING: line over 80 characters
> #477: FILE: target/i386/cpu-dump.c:462:
> +            snprintf(cc_op_name, sizeof(cc_op_name), "%s", cc_op_str[env->cc_op]);
>
> ERROR: space required before the open parenthesis '('
> #497: FILE: target/i386/cpu-dump.c:482:
> +        for(i = 0; i < 8; i++) {
>
> ERROR: spaces required around that '=' (ctx:VxV)
> #507: FILE: target/i386/cpu-dump.c:492:
> +        for(i=0;i<8;i++) {
>               ^
>
> ERROR: space required after that ';' (ctx:VxV)
> #507: FILE: target/i386/cpu-dump.c:492:
> +        for(i=0;i<8;i++) {
>                 ^
>
> ERROR: spaces required around that '<' (ctx:VxV)
> #507: FILE: target/i386/cpu-dump.c:492:
> +        for(i=0;i<8;i++) {
>                   ^
>
> ERROR: space required after that ';' (ctx:VxV)
> #507: FILE: target/i386/cpu-dump.c:492:
> +        for(i=0;i<8;i++) {
>                     ^
>
> ERROR: space required before the open parenthesis '('
> #507: FILE: target/i386/cpu-dump.c:492:
> +        for(i=0;i<8;i++) {
>
> ERROR: braces {} are necessary for all arms of this statement
> #512: FILE: target/i386/cpu-dump.c:497:
> +            if ((i & 1) == 1)
> [...]
> +            else
> [...]
>
> ERROR: braces {} are necessary for all arms of this statement
> #517: FILE: target/i386/cpu-dump.c:502:
> +        if (env->hflags & HF_CS64_MASK)
> [...]
> +        else
> [...]
>
> ERROR: spaces required around that '=' (ctx:VxV)
> #521: FILE: target/i386/cpu-dump.c:506:
> +        for(i=0;i<nb;i++) {
>               ^
>
> ERROR: space required after that ';' (ctx:VxV)
> #521: FILE: target/i386/cpu-dump.c:506:
> +        for(i=0;i<nb;i++) {
>                 ^
>
> ERROR: spaces required around that '<' (ctx:VxV)
> #521: FILE: target/i386/cpu-dump.c:506:
> +        for(i=0;i<nb;i++) {
>                   ^
>
> ERROR: space required after that ';' (ctx:VxV)
> #521: FILE: target/i386/cpu-dump.c:506:
> +        for(i=0;i<nb;i++) {
>                      ^
>
> ERROR: space required before the open parenthesis '('
> #521: FILE: target/i386/cpu-dump.c:506:
> +        for(i=0;i<nb;i++) {
>
> ERROR: braces {} are necessary for all arms of this statement
> #528: FILE: target/i386/cpu-dump.c:513:
> +            if ((i & 1) == 1)
> [...]
> +            else
> [...]
>
> total: 25 errors, 5 warnings, 1077 lines checked
>
> Patch 9/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 10/32 Checking commit 0560b09d8481 (i386: move TCG cpu class initialization out of helper.c)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #282: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 610 lines checked
>
> Patch 10/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 11/32 Checking commit ac15b624a91f (tcg: cpu_exec_{enter,exit} helpers)
> 12/32 Checking commit b271ab48c45b (tcg: make CPUClass.cpu_exec_* optional)
> 13/32 Checking commit 043b89c9c315 (tcg: Make CPUClass.debug_excp_handler optional)
> 14/32 Checking commit 8a0c2e9a0e2c (cpu: Remove unnecessary noop methods)
> 15/32 Checking commit 53b3f4e5b390 (cpu: Introduce TCGCpuOperations struct)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #92: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 301 lines checked
>
> Patch 15/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 16/32 Checking commit 2019e4f802bb (target/riscv: remove CONFIG_TCG, as it is always TCG)
> 17/32 Checking commit f9b393d26c70 (accel/tcg: split TCG-only code from cpu_exec_realizefn)
> 18/32 Checking commit af729170f4b8 (cpu: Move synchronize_from_tb() to tcg_ops)
> 19/32 Checking commit 481a06e3b020 (cpu: Move cpu_exec_* to tcg_ops)
> 20/32 Checking commit bf5b24bcd22f (cpu: Move tlb_fill to tcg_ops)
> WARNING: line over 80 characters
> #22: FILE: accel/tcg/cputlb.c:1289:
> +    ok = cc->tcg_ops.tlb_fill(cpu, addr, size, access_type, mmu_idx, false, retaddr);
>
> total: 0 errors, 1 warnings, 259 lines checked
>
> Patch 20/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 21/32 Checking commit 9a74429f2029 (cpu: Move debug_excp_handler to tcg_ops)
> 22/32 Checking commit f22d896967f8 (target/arm: do not use cc->do_interrupt for KVM directly)
> 23/32 Checking commit 74feabd5bae5 (cpu: move cc->do_interrupt to tcg_ops)
> 24/32 Checking commit bca539a6251e (cpu: move cc->transaction_failed to tcg_ops)
> WARNING: line over 80 characters
> #67: FILE: include/hw/core/cpu.h:857:
> +        cc->tcg_ops.do_transaction_failed(cpu, physaddr, addr, size, access_type,
>
> total: 0 errors, 1 warnings, 144 lines checked
>
> Patch 24/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 25/32 Checking commit c45684ac5ad9 (cpu: move do_unaligned_access to tcg_ops)
> 26/32 Checking commit c3aa2224bd71 (accel: extend AccelState and AccelClass to user-mode)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #24: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 359 lines checked
>
> Patch 26/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 27/32 Checking commit 706469ebcc15 (accel: replace struct CpusAccel with AccelOpsClass)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #115: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 691 lines checked
>
> Patch 27/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 28/32 Checking commit 739ef2bd13aa (accel: introduce AccelCPUClass extending CPUClass)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #99: 
> new file mode 100644
>
> total: 0 errors, 1 warnings, 123 lines checked
>
> Patch 28/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 29/32 Checking commit c7ecc117664f (i386: split cpu accelerators from cpu.c, using AccelCPUClass)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #664: 
> new file mode 100644
>
> WARNING: line over 80 characters
> #1435: FILE: target/i386/tcg/cpu.c:104:
> +    memory_region_add_subregion_overlap(cpu->cpu_as_root, 0, cpu->cpu_as_mem, 0);
>
> total: 0 errors, 2 warnings, 1296 lines checked
>
> Patch 29/32 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 30/32 Checking commit 6c8c6a4d84dd (cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn)
> 31/32 Checking commit 273e6bca6404 (hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn)
> 32/32 Checking commit 1df468eafd63 (cpu: introduce cpu_accel_instance_init)
> === OUTPUT END ===
>
> Test command exited with code: 1
>
>
> The full log is available at
> http://patchew.org/logs/20201208194839.31305-1-cfontana@suse.de/testing.checkpatch/?type=message.
> ---
> Email generated automatically by Patchew [https://patchew.org/].
> Please send your feedback to patchew-devel@redhat.com


-- 
Alex Bennée