[Qemu-devel] [PATCH v2 00/10] refactor cpu topo into machine properties

Like Xu posted 10 patches 4 years, 11 months ago
Test asan passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Failed in applying to current master (apply log)
accel/kvm/kvm-all.c          |  4 ++--
backends/hostmem.c           |  6 ++++--
cpus.c                       |  6 ++++--
exec.c                       |  3 ++-
gdbstub.c                    |  4 ++++
hw/alpha/dp264.c             |  1 +
hw/arm/fsl-imx6.c            |  6 +++++-
hw/arm/fsl-imx6ul.c          |  6 +++++-
hw/arm/fsl-imx7.c            |  7 +++++--
hw/arm/highbank.c            |  1 +
hw/arm/mcimx6ul-evk.c        |  2 +-
hw/arm/mcimx7d-sabre.c       |  2 +-
hw/arm/raspi.c               |  4 ++--
hw/arm/realview.c            |  1 +
hw/arm/sabrelite.c           |  2 +-
hw/arm/vexpress.c            | 16 ++++++++------
hw/arm/virt.c                | 10 +++++++--
hw/arm/xlnx-zynqmp.c         | 16 ++++++++------
hw/cpu/core.c                |  4 +++-
hw/hppa/machine.c            |  4 +++-
hw/i386/acpi-build.c         | 13 +++++++-----
hw/i386/kvmvapic.c           |  7 +++++--
hw/i386/pc.c                 | 33 ++++++++++++++++-------------
hw/i386/xen/xen-hvm.c        |  4 ++++
hw/mips/boston.c             |  2 +-
hw/mips/mips_malta.c         | 23 +++++++++++---------
hw/openrisc/openrisc_sim.c   |  1 +
hw/ppc/e500.c                |  3 +++
hw/ppc/mac_newworld.c        |  3 ++-
hw/ppc/mac_oldworld.c        |  3 ++-
hw/ppc/pnv.c                 |  9 ++++----
hw/ppc/prep.c                |  4 ++--
hw/ppc/spapr.c               | 37 +++++++++++++++++++++++---------
hw/ppc/spapr_rtas.c          |  4 +++-
hw/riscv/sifive_e.c          |  6 ++++--
hw/riscv/sifive_plic.c       |  3 +++
hw/riscv/sifive_u.c          |  6 ++++--
hw/riscv/spike.c             |  2 ++
hw/riscv/virt.c              |  1 +
hw/s390x/s390-virtio-ccw.c   |  9 ++++----
hw/s390x/sclp.c              |  2 +-
hw/smbios/smbios.c           | 26 +++++++++++++----------
hw/sparc/sun4m.c             |  2 ++
hw/sparc64/sun4u.c           |  4 ++--
hw/xtensa/sim.c              |  2 +-
hw/xtensa/xtfpga.c           |  1 +
include/hw/boards.h          | 19 +++++++++++++++--
include/hw/firmware/smbios.h |  5 +++--
include/hw/i386/pc.h         |  2 +-
migration/postcopy-ram.c     |  8 ++++++-
numa.c                       |  1 +
qmp.c                        |  2 +-
target/arm/cpu.c             |  8 ++++++-
target/i386/cpu.c            |  4 +++-
target/openrisc/sys_helper.c |  6 +++++-
target/s390x/cpu.c           |  3 +++
target/s390x/excp_helper.c   |  5 +++++
tcg/tcg.c                    | 13 +++++++++++-
vl.c                         | 50 ++++++++++++++++++++++++--------------------
59 files changed, 301 insertions(+), 140 deletions(-)
[Qemu-devel] [PATCH v2 00/10] refactor cpu topo into machine properties
Posted by Like Xu 4 years, 11 months ago
This patch series make existing cores/threads/sockets into machine
properties and get rid of global smp_* variables they use currently.

The purpose of getting rid of globals is disentangle layer violations and
let's do it one step at a time by replacing the smp_foo with qdev_get_machine()
as few calls as possible and delay other related refactoring efforts.

Like Xu (10):
  hw/boards: add struct CpuTopology to MachineState
  cpu/topology: related call chains refactoring to pass MachineState
  cpu/topology: replace global smp variables by MachineState in general path
  cpu/topology: add uncommon arch support for smp machine properties
  cpu/topology: add hw/ppc support for smp machine properties
  cpu/topology: add hw/riscv support for smp machine properties
  cpu/topology: add hw/s390x support for smp machine properties
  cpu/topology: add hw/i386 support for smp machine properties
  cpu/topology: add hw/arm support for smp machine properties
  cpu/topology: replace smp global variables with smp machine properties

 accel/kvm/kvm-all.c          |  4 ++--
 backends/hostmem.c           |  6 ++++--
 cpus.c                       |  6 ++++--
 exec.c                       |  3 ++-
 gdbstub.c                    |  4 ++++
 hw/alpha/dp264.c             |  1 +
 hw/arm/fsl-imx6.c            |  6 +++++-
 hw/arm/fsl-imx6ul.c          |  6 +++++-
 hw/arm/fsl-imx7.c            |  7 +++++--
 hw/arm/highbank.c            |  1 +
 hw/arm/mcimx6ul-evk.c        |  2 +-
 hw/arm/mcimx7d-sabre.c       |  2 +-
 hw/arm/raspi.c               |  4 ++--
 hw/arm/realview.c            |  1 +
 hw/arm/sabrelite.c           |  2 +-
 hw/arm/vexpress.c            | 16 ++++++++------
 hw/arm/virt.c                | 10 +++++++--
 hw/arm/xlnx-zynqmp.c         | 16 ++++++++------
 hw/cpu/core.c                |  4 +++-
 hw/hppa/machine.c            |  4 +++-
 hw/i386/acpi-build.c         | 13 +++++++-----
 hw/i386/kvmvapic.c           |  7 +++++--
 hw/i386/pc.c                 | 33 ++++++++++++++++-------------
 hw/i386/xen/xen-hvm.c        |  4 ++++
 hw/mips/boston.c             |  2 +-
 hw/mips/mips_malta.c         | 23 +++++++++++---------
 hw/openrisc/openrisc_sim.c   |  1 +
 hw/ppc/e500.c                |  3 +++
 hw/ppc/mac_newworld.c        |  3 ++-
 hw/ppc/mac_oldworld.c        |  3 ++-
 hw/ppc/pnv.c                 |  9 ++++----
 hw/ppc/prep.c                |  4 ++--
 hw/ppc/spapr.c               | 37 +++++++++++++++++++++++---------
 hw/ppc/spapr_rtas.c          |  4 +++-
 hw/riscv/sifive_e.c          |  6 ++++--
 hw/riscv/sifive_plic.c       |  3 +++
 hw/riscv/sifive_u.c          |  6 ++++--
 hw/riscv/spike.c             |  2 ++
 hw/riscv/virt.c              |  1 +
 hw/s390x/s390-virtio-ccw.c   |  9 ++++----
 hw/s390x/sclp.c              |  2 +-
 hw/smbios/smbios.c           | 26 +++++++++++++----------
 hw/sparc/sun4m.c             |  2 ++
 hw/sparc64/sun4u.c           |  4 ++--
 hw/xtensa/sim.c              |  2 +-
 hw/xtensa/xtfpga.c           |  1 +
 include/hw/boards.h          | 19 +++++++++++++++--
 include/hw/firmware/smbios.h |  5 +++--
 include/hw/i386/pc.h         |  2 +-
 migration/postcopy-ram.c     |  8 ++++++-
 numa.c                       |  1 +
 qmp.c                        |  2 +-
 target/arm/cpu.c             |  8 ++++++-
 target/i386/cpu.c            |  4 +++-
 target/openrisc/sys_helper.c |  6 +++++-
 target/s390x/cpu.c           |  3 +++
 target/s390x/excp_helper.c   |  5 +++++
 tcg/tcg.c                    | 13 +++++++++++-
 vl.c                         | 50 ++++++++++++++++++++++++--------------------
 59 files changed, 301 insertions(+), 140 deletions(-)

-- 
1.8.3.1


Re: [Qemu-devel] [PATCH v2 00/10] refactor cpu topo into machine properties
Posted by Like Xu 4 years, 11 months ago
On 2019/5/6 16:33, Like Xu wrote:
> This patch series make existing cores/threads/sockets into machine
> properties and get rid of global smp_* variables they use currently.
> 
> The purpose of getting rid of globals is disentangle layer violations and
> let's do it one step at a time by replacing the smp_foo with qdev_get_machine()
> as few calls as possible and delay other related refactoring efforts.
> 

It looks like the changelog is missing and here it is:

==changelog==

v2:
- pass MachineState via call chain with trivial fixups
- replace smp_cpus directly at places if it's only used once
- s/topo/smp/ and drop smp_ prefix inside CpuTopology structure
- add more commit messages to explaining what patch does
- fix Patchew build failure for xen usage
- use macs rather than ms in migration context for MigrationState
- cleanup unrelated and redundant changes
- spilt OpenRISC and RISC-V related patches

v1: https://patchwork.kernel.org/cover/10876667/

> Like Xu (10):
>    hw/boards: add struct CpuTopology to MachineState
>    cpu/topology: related call chains refactoring to pass MachineState
>    cpu/topology: replace global smp variables by MachineState in general path
>    cpu/topology: add uncommon arch support for smp machine properties
>    cpu/topology: add hw/ppc support for smp machine properties
>    cpu/topology: add hw/riscv support for smp machine properties
>    cpu/topology: add hw/s390x support for smp machine properties
>    cpu/topology: add hw/i386 support for smp machine properties
>    cpu/topology: add hw/arm support for smp machine properties
>    cpu/topology: replace smp global variables with smp machine properties
> 
>   accel/kvm/kvm-all.c          |  4 ++--
>   backends/hostmem.c           |  6 ++++--
>   cpus.c                       |  6 ++++--
>   exec.c                       |  3 ++-
>   gdbstub.c                    |  4 ++++
>   hw/alpha/dp264.c             |  1 +
>   hw/arm/fsl-imx6.c            |  6 +++++-
>   hw/arm/fsl-imx6ul.c          |  6 +++++-
>   hw/arm/fsl-imx7.c            |  7 +++++--
>   hw/arm/highbank.c            |  1 +
>   hw/arm/mcimx6ul-evk.c        |  2 +-
>   hw/arm/mcimx7d-sabre.c       |  2 +-
>   hw/arm/raspi.c               |  4 ++--
>   hw/arm/realview.c            |  1 +
>   hw/arm/sabrelite.c           |  2 +-
>   hw/arm/vexpress.c            | 16 ++++++++------
>   hw/arm/virt.c                | 10 +++++++--
>   hw/arm/xlnx-zynqmp.c         | 16 ++++++++------
>   hw/cpu/core.c                |  4 +++-
>   hw/hppa/machine.c            |  4 +++-
>   hw/i386/acpi-build.c         | 13 +++++++-----
>   hw/i386/kvmvapic.c           |  7 +++++--
>   hw/i386/pc.c                 | 33 ++++++++++++++++-------------
>   hw/i386/xen/xen-hvm.c        |  4 ++++
>   hw/mips/boston.c             |  2 +-
>   hw/mips/mips_malta.c         | 23 +++++++++++---------
>   hw/openrisc/openrisc_sim.c   |  1 +
>   hw/ppc/e500.c                |  3 +++
>   hw/ppc/mac_newworld.c        |  3 ++-
>   hw/ppc/mac_oldworld.c        |  3 ++-
>   hw/ppc/pnv.c                 |  9 ++++----
>   hw/ppc/prep.c                |  4 ++--
>   hw/ppc/spapr.c               | 37 +++++++++++++++++++++++---------
>   hw/ppc/spapr_rtas.c          |  4 +++-
>   hw/riscv/sifive_e.c          |  6 ++++--
>   hw/riscv/sifive_plic.c       |  3 +++
>   hw/riscv/sifive_u.c          |  6 ++++--
>   hw/riscv/spike.c             |  2 ++
>   hw/riscv/virt.c              |  1 +
>   hw/s390x/s390-virtio-ccw.c   |  9 ++++----
>   hw/s390x/sclp.c              |  2 +-
>   hw/smbios/smbios.c           | 26 +++++++++++++----------
>   hw/sparc/sun4m.c             |  2 ++
>   hw/sparc64/sun4u.c           |  4 ++--
>   hw/xtensa/sim.c              |  2 +-
>   hw/xtensa/xtfpga.c           |  1 +
>   include/hw/boards.h          | 19 +++++++++++++++--
>   include/hw/firmware/smbios.h |  5 +++--
>   include/hw/i386/pc.h         |  2 +-
>   migration/postcopy-ram.c     |  8 ++++++-
>   numa.c                       |  1 +
>   qmp.c                        |  2 +-
>   target/arm/cpu.c             |  8 ++++++-
>   target/i386/cpu.c            |  4 +++-
>   target/openrisc/sys_helper.c |  6 +++++-
>   target/s390x/cpu.c           |  3 +++
>   target/s390x/excp_helper.c   |  5 +++++
>   tcg/tcg.c                    | 13 +++++++++++-
>   vl.c                         | 50 ++++++++++++++++++++++++--------------------
>   59 files changed, 301 insertions(+), 140 deletions(-)
>