mbox series

[v4,00/80] refactor main RAM allocation to use hostmem backend

Message ID 1580483390-131164-1-git-send-email-imammedo@redhat.com
Headers show
Series refactor main RAM allocation to use hostmem backend | expand

Message

Igor Mammedov Jan. 31, 2020, 3:08 p.m. UTC
v4:
  - pick up new Reviewed-by-s
  - Fix access to uninitialized pagesize/hpsize in
    "[PATCH REPOST v3 74/80] exec: cleanup  qemu_minrampagesize()/qemu_maxrampagesize()"
  - Make explicitly provided memory-backend work by using string property instead
    of link so it would be possible to delay access to the backend to the time
    when backends are initialized.
  - added new patches to make explicit backend work nice with -m and do sanity
    check on ram_size
      'vl.c: move -m parsing after memory backends has been processed'
      'vl.c: ensure that ram_size matches size of machine.memory-backend"
    all this ram_size business needs cleanup too, but that's out of the scope
    of this series.
  - include m68k/q800 board into conversion
  - drop patches that were merged through other trees

v3:
  - due to libvirt not being ready, postpone till 5.1
     * [PATCH v2 82/86] numa: forbid '-numa node,  mem' for 5.0 and newer machine types
     and depended
       [PATCH v2 86/86] numa: remove deprecated implicit RAM distribution  between nodes
  - drop as not related "[PATCH v2 85/86] numa: make exit() usage consistent"
  - drop "[PATCH v2 76/86] post conversion default_ram_id cleanup"
    so that default memory-backedend won't be created for boards that do not care
    about -m. Which makes -m optin feature. We should decide  what do in  case
    board doesn't use -m (but that's out of scope of this series)
  - use object_register_sugar_prop() instead of hacking compat props directly
  - simplified/reworked aspeed patches
  - s/RAM_ADDR_FMT/size_to_str()/
  - rename 'ram-memdev' property to 'memory-backend'
  - minor fixes to numa-test
  - fixes for issues noticed during review of
       [PATCH v2 66/86] ppc/{ppc440_bamboo,sam460x}: drop RAM size fixup

v2:
  - fix compile errors on mingw32 host by introducing RAM_ADDR_UFMT [11/86]
  - replace "[PATCH 43/86] hppa: drop RAM size fixup" with alternative
    patches made by Philippe (which effectively do the same thing but other
    way around)
  - ppc440: fix crash and add suggested valid RAM size in error output.
    s/ppc4xx_sdram_adjust/ppc4xx_sdram_prep/ and simplify it by removing
    not necessary nested loop
  - rebase on current master due to new conflicts


Series removes ad hoc RAM allocation API (memory_region_allocate_system_memory)
and consolidates it around hostmem backend. It allows to
 * resolve conflicts between global -mem-prealloc and hostmem's "policy" option
   fixing premature allocation before binding policy is applied
 * simplify complicated memory allocation routines which had to deal with 2 ways
   to allocate RAM.
 * it allows to reuse hostmem backends of a choice for main RAM without adding
   extra CLI options to duplicate hostmem features.
   Recent case was -mem-shared, to enable vhost-user on targets that don't
   support hostmem backends [1] (ex: s390)
 * move RAM allocation from individual boards into generic machine code and
   provide them with prepared MemoryRegion.
 * clean up deprecated NUMA features which were tied to the old API (see patches)
    - "numa: remove deprecated -mem-path fallback to anonymous RAM"
    - (POSTPONED, waiting on libvirt side) "forbid '-numa node,mem' for 5.0 and newer machine types"
    - (POSTPONED) "numa: remove deprecated implicit RAM distribution between nodes"

Conversion introduces a new machine.memory-backend property and wrapper code that
aliases global -mem-path and -mem-alloc into automatically created hostmem
backend properties (provided memory-backend was not set explicitly given by user).
And then follows bulk of trivial patches that incrementally convert individual
boards to using machine.memory-backend provided MemoryRegion.

Board conversion typically involves:
 * providing MachineClass::default_ram_size and MachineClass::default_ram_id
   so generic code could create default backend if user didn't explicitly provide
   memory-backend or -m options
 * dropping memory_region_allocate_system_memory() call
 * using convenience MachineState::ram MemoryRegion, which points to MemoryRegion
   allocated by ram-memdev
On top of that for some boards:
 * added missing ram_size checks (typically it were boards with fixed ram size)
 * ram_size fixups were replaced by checks and hard errors, forcing user to
   provide correct "-m" values instead of ignoring it and continuing running.

After all boards are converted the old API is removed and memory allocation
routines are cleaned up.

git tree for testing:
  https://github.com/imammedo/qemu convert_main_ram_to_memdev_v4

previous rev:
  https://github.com/imammedo/qemu convert_main_ram_to_memdev_v3
  https://lists.nongnu.org/archive/html/qemu-devel/2020-01/msg05299.html

Igor Mammedov (80):
  numa: remove deprecated -mem-path fallback to anonymous RAM
  machine: introduce memory-backend property
  machine: alias -mem-path and -mem-prealloc into memory-foo backend
  machine: introduce convenience MachineState::ram
  initialize MachineState::ram in NUMA case
  vl.c: move -m parsing after memory backends has been processed
  vl.c: ensure that ram_size matches size of machine.memory-backend
  alpha/dp264: use memdev for RAM
  arm/aspeed: actually check RAM size
  arm/aspeed: use memdev for RAM
  arm/collie: use memdev for RAM
  arm/cubieboard: use memdev for RAM
  arm/digic_boards: use memdev for RAM
  arm/highbank: use memdev for RAM
  arm/imx25_pdk: drop RAM size fixup
  arm/imx25_pdk: use memdev for RAM
  arm/integratorcp: use memdev for RAM
  arm/kzm: drop RAM size fixup
  arm/kzm: use memdev for RAM
  arm/mcimx6ul-evk: use memdev for RAM
  arm/mcimx7d-sabre: use memdev for RAM
  arm/mps2-tz: use memdev for RAM
  arm/mps2: use memdev for RAM
  arm/musicpal: use memdev for RAM
  arm/nseries: use memdev for RAM
  arm/omap_sx1: use memdev for RAM
  arm/palm: use memdev for RAM
  arm/raspi: use memdev for RAM
  arm/sabrelite: use memdev for RAM
  arm/sbsa-ref: use memdev for RAM
  arm/versatilepb: use memdev for RAM
  arm/vexpress: use memdev for RAM
  arm/virt: use memdev for RAM
  arm/xilinx_zynq: drop RAM size fixup
  arm/xilinx_zynq: use memdev for RAM
  arm/xlnx-versal-virt: use memdev for RAM
  arm/xlnx-zcu102: use memdev for RAM
  s390x/s390-virtio-ccw: use memdev for RAM
  null-machine: use memdev for RAM
  cris/axis_dev88: use memdev for RAM
  hppa: use memdev for RAM
  x86/microvm: use memdev for RAM
  x86/pc: use memdev for RAM
  lm32/lm32_boards: use memdev for RAM
  lm32/milkymist: use memdev for RAM
  m68k/an5206: use memdev for RAM
  m68k/q800: use memdev for RAM
  m68k/mcf5208: use memdev for RAM
  m68k/next-cube: use memdev for RAM
  mips/boston: use memdev for RAM
  mips/mips_fulong2e: drop RAM size fixup
  mips/mips_fulong2e: use memdev for RAM
  mips/mips_jazz: use memdev for RAM
  mips/mips_malta: use memdev for RAM
  mips/mips_mipssim: use memdev for RAM
  mips/mips_r4k: use memdev for RAM
  ppc/e500: drop RAM size fixup
  ppc/e500: use memdev for RAM
  ppc/mac_newworld: use memdev for RAM
  ppc/mac_oldworld: use memdev for RAM
  ppc/pnv: use memdev for RAM
  ppc/ppc405_boards: add RAM size checks
  ppc/ppc405_boards: use memdev for RAM
  ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup
  ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM
  ppc/prep: use memdev for RAM
  ppc/spapr: use memdev for RAM
  ppc/virtex_ml507: remove unused arguments
  ppc/virtex_ml507: use memdev for RAM
  sparc/leon3: use memdev for RAM
  sparc/sun4m: use memdev for RAM
  sparc/niagara: use memdev for RAM
  remove no longer used memory_region_allocate_system_memory()
  exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize()
  exec: drop bogus mem_path from qemu_ram_alloc_from_fd()
  make mem_path local variable
  hostmem: introduce "prealloc-threads" property
  hostmem: fix strict bind policy
  tests/numa-test: make top level args dynamic and g_autofree(cli)
    cleanups
  tests:numa-test: use explicit memdev to specify node RAM

 hw/alpha/alpha_sys.h          |   2 +-
 include/hw/boards.h           |  51 ++++++----------
 include/hw/misc/aspeed_sdmc.h |   1 +
 include/hw/ppc/ppc4xx.h       |   9 ++-
 include/sysemu/hostmem.h      |  20 +++++-
 include/sysemu/numa.h         |   1 +
 include/sysemu/sysemu.h       |   2 -
 backends/hostmem-file.c       |   8 ---
 backends/hostmem-memfd.c      |   1 -
 backends/hostmem-ram.c        |   2 -
 backends/hostmem.c            |  53 +++++++++++-----
 exec.c                        |  64 ++------------------
 hw/alpha/dp264.c              |   3 +-
 hw/alpha/typhoon.c            |   8 +--
 hw/arm/aspeed.c               |  18 +++---
 hw/arm/collie.c               |  17 ++++--
 hw/arm/cubieboard.c           |  25 +++-----
 hw/arm/digic_boards.c         |  40 ++++++------
 hw/arm/highbank.c             |  10 ++-
 hw/arm/imx25_pdk.c            |  13 ++--
 hw/arm/integratorcp.c         |   9 ++-
 hw/arm/kzm.c                  |  18 +++---
 hw/arm/mcimx6ul-evk.c         |  25 +++-----
 hw/arm/mcimx7d-sabre.c        |  25 +++-----
 hw/arm/mps2-tz.c              |  15 +++--
 hw/arm/mps2.c                 |  15 +++--
 hw/arm/musicpal.c             |  18 ++++--
 hw/arm/nseries.c              |  32 ++++++----
 hw/arm/omap_sx1.c             |  20 ++++--
 hw/arm/palm.c                 |  20 ++++--
 hw/arm/raspi.c                |  32 ++++------
 hw/arm/sabrelite.c            |  23 +++----
 hw/arm/sbsa-ref.c             |   7 +--
 hw/arm/versatilepb.c          |   7 +--
 hw/arm/vexpress.c             |  14 ++---
 hw/arm/virt.c                 |   7 +--
 hw/arm/xilinx_zynq.c          |  20 +++---
 hw/arm/xlnx-versal-virt.c     |   7 +--
 hw/arm/xlnx-zcu102.c          |   7 +--
 hw/core/machine.c             |  48 +++++++++++++++
 hw/core/null-machine.c        |   8 +--
 hw/core/numa.c                | 101 +++++++++----------------------
 hw/cris/axis_dev88.c          |   8 +--
 hw/hppa/machine.c             |  10 +--
 hw/i386/microvm.c             |  12 ++--
 hw/i386/pc.c                  |  19 +++---
 hw/lm32/lm32_boards.c         |  39 ++++++++----
 hw/lm32/milkymist.c           |  21 ++++---
 hw/m68k/an5206.c              |   5 +-
 hw/m68k/mcf5208.c             |   5 +-
 hw/m68k/next-cube.c           |   5 +-
 hw/m68k/q800.c                |   6 +-
 hw/mips/boston.c              |  11 ++--
 hw/mips/mips_fulong2e.c       |  15 ++---
 hw/mips/mips_jazz.c           |   7 +--
 hw/mips/mips_malta.c          |  10 ++-
 hw/mips/mips_mipssim.c        |   9 +--
 hw/mips/mips_r4k.c            |  12 ++--
 hw/misc/aspeed_sdmc.c         |  83 +++++++++++++++++++------
 hw/ppc/e500.c                 |  17 +++---
 hw/ppc/e500plat.c             |   1 +
 hw/ppc/mac_newworld.c         |   6 +-
 hw/ppc/mac_oldworld.c         |   6 +-
 hw/ppc/mpc8544ds.c            |   1 +
 hw/ppc/pnv.c                  |   8 +--
 hw/ppc/ppc405_boards.c        |  48 +++++++++------
 hw/ppc/ppc440_bamboo.c        |  12 ++--
 hw/ppc/ppc4xx_devs.c          |  63 +++++++++----------
 hw/ppc/prep.c                 |  15 +++--
 hw/ppc/sam460ex.c             |   6 +-
 hw/ppc/spapr.c                |   8 +--
 hw/ppc/virtex_ml507.c         |  19 +++---
 hw/s390x/s390-virtio-ccw.c    |   7 +--
 hw/sparc/leon3.c              |   6 +-
 hw/sparc/sun4m.c              |  74 +++++++++++-----------
 hw/sparc64/niagara.c          |   7 +--
 qemu-deprecated.texi          |   9 ---
 tests/qtest/numa-test.c       | 138 ++++++++++++++++++++++--------------------
 vl.c                          |  78 +++++++++++++++++++-----
 79 files changed, 831 insertions(+), 801 deletions(-)

Comments

no-reply@patchew.org Jan. 31, 2020, 4:16 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/1580483390-131164-1-git-send-email-imammedo@redhat.com/



Hi,

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

Subject: [PATCH v4 00/80] refactor main RAM allocation to use hostmem backend
Message-id: 1580483390-131164-1-git-send-email-imammedo@redhat.com
Type: series

=== 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/1580483390-131164-1-git-send-email-imammedo@redhat.com -> patchew/1580483390-131164-1-git-send-email-imammedo@redhat.com
 - [tag update]      patchew/20200129235614.29829-1-richard.henderson@linaro.org -> patchew/20200129235614.29829-1-richard.henderson@linaro.org
 - [tag update]      patchew/20200130113223.31046-1-alex.bennee@linaro.org -> patchew/20200130113223.31046-1-alex.bennee@linaro.org
 - [tag update]      patchew/20200131010941.10636-1-philmd@redhat.com -> patchew/20200131010941.10636-1-philmd@redhat.com
Switched to a new branch 'test'
8ed2b43 tests:numa-test: use explicit memdev to specify node RAM
96981a3 tests/numa-test: make top level args dynamic and g_autofree(cli) cleanups
1b17c3c hostmem: fix strict bind policy
d955599 hostmem: introduce "prealloc-threads" property
7299900 make mem_path local variable
7d9472d exec: drop bogus mem_path from qemu_ram_alloc_from_fd()
0ed2ef7 exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize()
ed0b9e0 remove no longer used memory_region_allocate_system_memory()
974e8f1 sparc/niagara: use memdev for RAM
8e29394 sparc/sun4m: use memdev for RAM
c637f30 sparc/leon3: use memdev for RAM
4b67ae6 ppc/virtex_ml507: use memdev for RAM
977a3e6 ppc/virtex_ml507: remove unused arguments
68f42ff ppc/spapr: use memdev for RAM
fe9c8c0 ppc/prep: use memdev for RAM
caf05a9 ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM
92bcec5 ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup
ab40bd5 ppc/ppc405_boards: use memdev for RAM
d070d6a ppc/ppc405_boards: add RAM size checks
c99cfee ppc/pnv: use memdev for RAM
508faf0 ppc/mac_oldworld: use memdev for RAM
7fb3329 ppc/mac_newworld: use memdev for RAM
7c01ad4 ppc/e500: use memdev for RAM
087b3cc ppc/e500: drop RAM size fixup
4c4e0dd mips/mips_r4k: use memdev for RAM
847c6dd mips/mips_mipssim: use memdev for RAM
687dd37 mips/mips_malta: use memdev for RAM
02a18d5 mips/mips_jazz: use memdev for RAM
4684691 mips/mips_fulong2e: use memdev for RAM
a880e6e mips/mips_fulong2e: drop RAM size fixup
770fcdc mips/boston: use memdev for RAM
f85d55d m68k/next-cube: use memdev for RAM
efdbfd3 m68k/mcf5208: use memdev for RAM
577296f m68k/q800: use memdev for RAM
2b90f02 m68k/an5206: use memdev for RAM
7d4530e lm32/milkymist: use memdev for RAM
2854ae4 lm32/lm32_boards: use memdev for RAM
bfbc405 x86/pc: use memdev for RAM
465b9fd x86/microvm: use memdev for RAM
1f28740 hppa: use memdev for RAM
c18e0f4 cris/axis_dev88: use memdev for RAM
840d8f4 null-machine: use memdev for RAM
c72e05d s390x/s390-virtio-ccw: use memdev for RAM
3e20a8d arm/xlnx-zcu102: use memdev for RAM
4b27f9b arm/xlnx-versal-virt: use memdev for RAM
bdebad0 arm/xilinx_zynq: use memdev for RAM
a2127ad arm/xilinx_zynq: drop RAM size fixup
49bb455 arm/virt: use memdev for RAM
1ac6f86 arm/vexpress: use memdev for RAM
4faba44 arm/versatilepb: use memdev for RAM
b63ed7e arm/sbsa-ref: use memdev for RAM
cee86a5 arm/sabrelite: use memdev for RAM
4c75a75 arm/raspi: use memdev for RAM
810bc8d arm/palm: use memdev for RAM
78e60a6 arm/omap_sx1: use memdev for RAM
82a0793 arm/nseries: use memdev for RAM
d754027 arm/musicpal: use memdev for RAM
b595ccc arm/mps2: use memdev for RAM
a7c644a arm/mps2-tz: use memdev for RAM
bc98d2a arm/mcimx7d-sabre: use memdev for RAM
698978b arm/mcimx6ul-evk: use memdev for RAM
4c7fe45 arm/kzm: use memdev for RAM
fb49cbf arm/kzm: drop RAM size fixup
046b683 arm/integratorcp: use memdev for RAM
3fb1840 arm/imx25_pdk: use memdev for RAM
b4e93f7 arm/imx25_pdk: drop RAM size fixup
29ac690 arm/highbank: use memdev for RAM
cf681b6 arm/digic_boards: use memdev for RAM
a8b8a8a arm/cubieboard: use memdev for RAM
d279b9c arm/collie: use memdev for RAM
6544ba6 arm/aspeed: use memdev for RAM
bdf9295 arm/aspeed: actually check RAM size
589b205 alpha/dp264: use memdev for RAM
39f1710 vl.c: ensure that ram_size matches size of machine.memory-backend
3bfe66d vl.c: move -m parsing after memory backends has been processed
d66265f initialize MachineState::ram in NUMA case
e58426e machine: introduce convenience MachineState::ram
7a57426 machine: alias -mem-path and -mem-prealloc into memory-foo backend
962476a machine: introduce memory-backend property
afeeadd numa: remove deprecated -mem-path fallback to anonymous RAM

=== OUTPUT BEGIN ===
1/80 Checking commit afeeadd29d2b (numa: remove deprecated -mem-path fallback to anonymous RAM)
2/80 Checking commit 962476ab28ea (machine: introduce memory-backend property)
3/80 Checking commit 7a57426f6563 (machine: alias -mem-path and -mem-prealloc into memory-foo backend)
4/80 Checking commit e58426eaff73 (machine: introduce convenience MachineState::ram)
5/80 Checking commit d66265f1ca6b (initialize MachineState::ram in NUMA case)
6/80 Checking commit 3bfe66d0b20b (vl.c: move -m parsing after memory backends has been processed)
7/80 Checking commit 39f17105520f (vl.c: ensure that ram_size matches size of machine.memory-backend)
8/80 Checking commit 589b20511ceb (alpha/dp264: use memdev for RAM)
ERROR: spaces required around that '*' (ctx:WxV)
#30: FILE: hw/alpha/alpha_sys.h:14:
+PCIBus *typhoon_init(MemoryRegion *, ISABus **, qemu_irq *, AlphaCPU *[4],
                                                                      ^

total: 1 errors, 0 warnings, 49 lines checked

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

9/80 Checking commit bdf9295e30f7 (arm/aspeed: actually check RAM size)
10/80 Checking commit 6544ba6d9293 (arm/aspeed: use memdev for RAM)
11/80 Checking commit d279b9caf47a (arm/collie: use memdev for RAM)
12/80 Checking commit a8b8a8ae80f2 (arm/cubieboard: use memdev for RAM)
13/80 Checking commit cf681b6babf9 (arm/digic_boards: use memdev for RAM)
14/80 Checking commit 29ac690f07e1 (arm/highbank: use memdev for RAM)
15/80 Checking commit b4e93f76a9d9 (arm/imx25_pdk: drop RAM size fixup)
16/80 Checking commit 3fb1840036bc (arm/imx25_pdk: use memdev for RAM)
17/80 Checking commit 046b683b92a7 (arm/integratorcp: use memdev for RAM)
18/80 Checking commit fb49cbf013f6 (arm/kzm: drop RAM size fixup)
19/80 Checking commit 4c7fe45a3689 (arm/kzm: use memdev for RAM)
20/80 Checking commit 698978b00571 (arm/mcimx6ul-evk: use memdev for RAM)
21/80 Checking commit bc98d2ad493f (arm/mcimx7d-sabre: use memdev for RAM)
22/80 Checking commit a7c644a879eb (arm/mps2-tz: use memdev for RAM)
23/80 Checking commit b595ccce50aa (arm/mps2: use memdev for RAM)
24/80 Checking commit d7540271b0f0 (arm/musicpal: use memdev for RAM)
25/80 Checking commit 82a079398d9d (arm/nseries: use memdev for RAM)
26/80 Checking commit 78e60a6d2935 (arm/omap_sx1: use memdev for RAM)
27/80 Checking commit 810bc8d9cd36 (arm/palm: use memdev for RAM)
28/80 Checking commit 4c75a7519139 (arm/raspi: use memdev for RAM)
29/80 Checking commit cee86a5c37f4 (arm/sabrelite: use memdev for RAM)
30/80 Checking commit b63ed7e15207 (arm/sbsa-ref: use memdev for RAM)
31/80 Checking commit 4faba449fd7e (arm/versatilepb: use memdev for RAM)
32/80 Checking commit 1ac6f868e83e (arm/vexpress: use memdev for RAM)
33/80 Checking commit 49bb455abd5a (arm/virt: use memdev for RAM)
34/80 Checking commit a2127ad1ae04 (arm/xilinx_zynq: drop RAM size fixup)
35/80 Checking commit bdebad025644 (arm/xilinx_zynq: use memdev for RAM)
36/80 Checking commit 4b27f9bc5c87 (arm/xlnx-versal-virt: use memdev for RAM)
37/80 Checking commit 3e20a8d36bcb (arm/xlnx-zcu102: use memdev for RAM)
38/80 Checking commit c72e05d72c4d (s390x/s390-virtio-ccw: use memdev for RAM)
39/80 Checking commit 840d8f458e02 (null-machine: use memdev for RAM)
40/80 Checking commit c18e0f473a7e (cris/axis_dev88: use memdev for RAM)
41/80 Checking commit 1f28740de254 (hppa: use memdev for RAM)
42/80 Checking commit 465b9fdb5ab7 (x86/microvm: use memdev for RAM)
43/80 Checking commit bfbc4055203f (x86/pc: use memdev for RAM)
44/80 Checking commit 2854ae456a0d (lm32/lm32_boards: use memdev for RAM)
45/80 Checking commit 7d4530e5c2f5 (lm32/milkymist: use memdev for RAM)
46/80 Checking commit 2b90f02339ea (m68k/an5206: use memdev for RAM)
47/80 Checking commit 577296f1b6da (m68k/q800: use memdev for RAM)
48/80 Checking commit efdbfd389a9f (m68k/mcf5208: use memdev for RAM)
49/80 Checking commit f85d55df454a (m68k/next-cube: use memdev for RAM)
50/80 Checking commit 770fcdc55b1c (mips/boston: use memdev for RAM)
51/80 Checking commit a880e6ef6d04 (mips/mips_fulong2e: drop RAM size fixup)
52/80 Checking commit 4684691eccf7 (mips/mips_fulong2e: use memdev for RAM)
53/80 Checking commit 02a18d573411 (mips/mips_jazz: use memdev for RAM)
54/80 Checking commit 687dd378518d (mips/mips_malta: use memdev for RAM)
55/80 Checking commit 847c6dd169bf (mips/mips_mipssim: use memdev for RAM)
56/80 Checking commit 4c4e0dd52637 (mips/mips_r4k: use memdev for RAM)
57/80 Checking commit 087b3cc0289f (ppc/e500: drop RAM size fixup)
58/80 Checking commit 7c01ad407638 (ppc/e500: use memdev for RAM)
59/80 Checking commit 7fb33292c0a0 (ppc/mac_newworld: use memdev for RAM)
60/80 Checking commit 508faf061385 (ppc/mac_oldworld: use memdev for RAM)
61/80 Checking commit c99cfeef48ea (ppc/pnv: use memdev for RAM)
62/80 Checking commit d070d6aa369a (ppc/ppc405_boards: add RAM size checks)
63/80 Checking commit ab40bd5f6686 (ppc/ppc405_boards: use memdev for RAM)
64/80 Checking commit 92bcec52e24c (ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup)
65/80 Checking commit caf05a9270d7 (ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM)
WARNING: Block comments use a leading /* on a separate line
#50: FILE: hw/ppc/ppc4xx_devs.c:669:
+/* Split RAM between SDRAM banks.

total: 0 errors, 1 warnings, 103 lines checked

Patch 65/80 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
66/80 Checking commit fe9c8c05a837 (ppc/prep: use memdev for RAM)
67/80 Checking commit 68f42ffd08ea (ppc/spapr: use memdev for RAM)
68/80 Checking commit 977a3e69037c (ppc/virtex_ml507: remove unused arguments)
69/80 Checking commit 4b67ae6c834f (ppc/virtex_ml507: use memdev for RAM)
70/80 Checking commit c637f3060022 (sparc/leon3: use memdev for RAM)
71/80 Checking commit 8e29394e56dc (sparc/sun4m: use memdev for RAM)
72/80 Checking commit 974e8f145a52 (sparc/niagara: use memdev for RAM)
73/80 Checking commit ed0b9e040ad1 (remove no longer used memory_region_allocate_system_memory())
74/80 Checking commit 0ed2ef789253 (exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize())
75/80 Checking commit 7d9472d31549 (exec: drop bogus mem_path from qemu_ram_alloc_from_fd())
76/80 Checking commit 72999001b216 (make mem_path local variable)
77/80 Checking commit d95559954854 (hostmem: introduce "prealloc-threads" property)
78/80 Checking commit 1b17c3c5e264 (hostmem: fix strict bind policy)
79/80 Checking commit 96981a33fbf8 (tests/numa-test: make top level args dynamic and g_autofree(cli) cleanups)
80/80 Checking commit 8ed2b43e326f (tests:numa-test: use explicit memdev to specify node RAM)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/1580483390-131164-1-git-send-email-imammedo@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Jan. 31, 2020, 4:28 p.m. UTC | #2
Patchew URL: https://patchew.org/QEMU/1580483390-131164-1-git-send-email-imammedo@redhat.com/



Hi,

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

Subject: [PATCH v4 00/80] refactor main RAM allocation to use hostmem backend
Message-id: 1580483390-131164-1-git-send-email-imammedo@redhat.com
Type: series

=== 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 ===

From https://github.com/patchew-project/qemu
 - [tag update]      patchew/1580483390-131164-1-git-send-email-imammedo@redhat.com -> patchew/1580483390-131164-1-git-send-email-imammedo@redhat.com
Switched to a new branch 'test'
f7b9c62 tests:numa-test: use explicit memdev to specify node RAM
eb0f943 tests/numa-test: make top level args dynamic and g_autofree(cli) cleanups
05a7ebf hostmem: fix strict bind policy
eb4188b hostmem: introduce "prealloc-threads" property
13b58e1 make mem_path local variable
90ccc91 exec: drop bogus mem_path from qemu_ram_alloc_from_fd()
f5ec506 exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize()
2da1a36 remove no longer used memory_region_allocate_system_memory()
431e57c sparc/niagara: use memdev for RAM
ef754a6 sparc/sun4m: use memdev for RAM
05dfc25 sparc/leon3: use memdev for RAM
5b5a391 ppc/virtex_ml507: use memdev for RAM
5620528 ppc/virtex_ml507: remove unused arguments
12a3f8d ppc/spapr: use memdev for RAM
0a4a385 ppc/prep: use memdev for RAM
c68dc4f ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM
c0f1fdd ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup
7dea3c1 ppc/ppc405_boards: use memdev for RAM
ebce804 ppc/ppc405_boards: add RAM size checks
90d7211 ppc/pnv: use memdev for RAM
ec639f6 ppc/mac_oldworld: use memdev for RAM
23181a7 ppc/mac_newworld: use memdev for RAM
2ed160d ppc/e500: use memdev for RAM
6d1ca96 ppc/e500: drop RAM size fixup
0b021ee mips/mips_r4k: use memdev for RAM
b02c471 mips/mips_mipssim: use memdev for RAM
7039ed0 mips/mips_malta: use memdev for RAM
40704d1 mips/mips_jazz: use memdev for RAM
802f031 mips/mips_fulong2e: use memdev for RAM
8a54d11 mips/mips_fulong2e: drop RAM size fixup
5e8f388 mips/boston: use memdev for RAM
17bbfaf m68k/next-cube: use memdev for RAM
3e40941 m68k/mcf5208: use memdev for RAM
c6929f1 m68k/q800: use memdev for RAM
f932543 m68k/an5206: use memdev for RAM
b835844 lm32/milkymist: use memdev for RAM
df9a5ef lm32/lm32_boards: use memdev for RAM
666b0c6 x86/pc: use memdev for RAM
5629d3f x86/microvm: use memdev for RAM
684a3fc hppa: use memdev for RAM
5514568 cris/axis_dev88: use memdev for RAM
af9becd null-machine: use memdev for RAM
ff11aed s390x/s390-virtio-ccw: use memdev for RAM
3775971 arm/xlnx-zcu102: use memdev for RAM
3030b07 arm/xlnx-versal-virt: use memdev for RAM
450060b arm/xilinx_zynq: use memdev for RAM
232374d arm/xilinx_zynq: drop RAM size fixup
4203dcb arm/virt: use memdev for RAM
1060cf7 arm/vexpress: use memdev for RAM
90e888e arm/versatilepb: use memdev for RAM
f6c11d2 arm/sbsa-ref: use memdev for RAM
700e8df arm/sabrelite: use memdev for RAM
9707606 arm/raspi: use memdev for RAM
d917b57 arm/palm: use memdev for RAM
e21e58b arm/omap_sx1: use memdev for RAM
523ceed arm/nseries: use memdev for RAM
b57cc47 arm/musicpal: use memdev for RAM
5b5745f arm/mps2: use memdev for RAM
b009717 arm/mps2-tz: use memdev for RAM
128a0be arm/mcimx7d-sabre: use memdev for RAM
61579e5 arm/mcimx6ul-evk: use memdev for RAM
e81ec2a arm/kzm: use memdev for RAM
cc5f6c6 arm/kzm: drop RAM size fixup
3e4c48e arm/integratorcp: use memdev for RAM
af95833 arm/imx25_pdk: use memdev for RAM
c9edc2d arm/imx25_pdk: drop RAM size fixup
bdf29fa arm/highbank: use memdev for RAM
102922b arm/digic_boards: use memdev for RAM
419a2ce arm/cubieboard: use memdev for RAM
9577b4a arm/collie: use memdev for RAM
0a924cf arm/aspeed: use memdev for RAM
791b49e arm/aspeed: actually check RAM size
8de04fd alpha/dp264: use memdev for RAM
de3c2ca vl.c: ensure that ram_size matches size of machine.memory-backend
32f8326 vl.c: move -m parsing after memory backends has been processed
690a305 initialize MachineState::ram in NUMA case
7003896 machine: introduce convenience MachineState::ram
bcce25a machine: alias -mem-path and -mem-prealloc into memory-foo backend
5762ea4 machine: introduce memory-backend property
6046198 numa: remove deprecated -mem-path fallback to anonymous RAM

=== OUTPUT BEGIN ===
1/80 Checking commit 60461983c933 (numa: remove deprecated -mem-path fallback to anonymous RAM)
2/80 Checking commit 5762ea41ea77 (machine: introduce memory-backend property)
3/80 Checking commit bcce25a8e595 (machine: alias -mem-path and -mem-prealloc into memory-foo backend)
4/80 Checking commit 700389660de4 (machine: introduce convenience MachineState::ram)
5/80 Checking commit 690a30507aa5 (initialize MachineState::ram in NUMA case)
6/80 Checking commit 32f83261cd0d (vl.c: move -m parsing after memory backends has been processed)
7/80 Checking commit de3c2ca6c609 (vl.c: ensure that ram_size matches size of machine.memory-backend)
8/80 Checking commit 8de04fd7210c (alpha/dp264: use memdev for RAM)
ERROR: spaces required around that '*' (ctx:WxV)
#30: FILE: hw/alpha/alpha_sys.h:14:
+PCIBus *typhoon_init(MemoryRegion *, ISABus **, qemu_irq *, AlphaCPU *[4],
                                                                      ^

total: 1 errors, 0 warnings, 49 lines checked

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

9/80 Checking commit 791b49e2380b (arm/aspeed: actually check RAM size)
10/80 Checking commit 0a924cf39439 (arm/aspeed: use memdev for RAM)
11/80 Checking commit 9577b4a9a698 (arm/collie: use memdev for RAM)
12/80 Checking commit 419a2cef223e (arm/cubieboard: use memdev for RAM)
13/80 Checking commit 102922bd0e7f (arm/digic_boards: use memdev for RAM)
14/80 Checking commit bdf29fa78691 (arm/highbank: use memdev for RAM)
15/80 Checking commit c9edc2dda2a6 (arm/imx25_pdk: drop RAM size fixup)
16/80 Checking commit af95833cb506 (arm/imx25_pdk: use memdev for RAM)
17/80 Checking commit 3e4c48ecbcf1 (arm/integratorcp: use memdev for RAM)
18/80 Checking commit cc5f6c68f998 (arm/kzm: drop RAM size fixup)
19/80 Checking commit e81ec2a37264 (arm/kzm: use memdev for RAM)
20/80 Checking commit 61579e5f0415 (arm/mcimx6ul-evk: use memdev for RAM)
21/80 Checking commit 128a0bea6ed4 (arm/mcimx7d-sabre: use memdev for RAM)
22/80 Checking commit b0097170c7a2 (arm/mps2-tz: use memdev for RAM)
23/80 Checking commit 5b5745f35ba7 (arm/mps2: use memdev for RAM)
24/80 Checking commit b57cc476faf9 (arm/musicpal: use memdev for RAM)
25/80 Checking commit 523ceeddddbf (arm/nseries: use memdev for RAM)
26/80 Checking commit e21e58b89410 (arm/omap_sx1: use memdev for RAM)
27/80 Checking commit d917b572c863 (arm/palm: use memdev for RAM)
28/80 Checking commit 97076061bce7 (arm/raspi: use memdev for RAM)
29/80 Checking commit 700e8df7cc99 (arm/sabrelite: use memdev for RAM)
30/80 Checking commit f6c11d27d6ff (arm/sbsa-ref: use memdev for RAM)
31/80 Checking commit 90e888ed5ef5 (arm/versatilepb: use memdev for RAM)
32/80 Checking commit 1060cf75c120 (arm/vexpress: use memdev for RAM)
33/80 Checking commit 4203dcb26673 (arm/virt: use memdev for RAM)
34/80 Checking commit 232374d4e135 (arm/xilinx_zynq: drop RAM size fixup)
35/80 Checking commit 450060bf0283 (arm/xilinx_zynq: use memdev for RAM)
36/80 Checking commit 3030b07401ba (arm/xlnx-versal-virt: use memdev for RAM)
37/80 Checking commit 37759714f341 (arm/xlnx-zcu102: use memdev for RAM)
38/80 Checking commit ff11aed3ea7d (s390x/s390-virtio-ccw: use memdev for RAM)
39/80 Checking commit af9becd12221 (null-machine: use memdev for RAM)
40/80 Checking commit 551456883977 (cris/axis_dev88: use memdev for RAM)
41/80 Checking commit 684a3fc152b6 (hppa: use memdev for RAM)
42/80 Checking commit 5629d3ff514d (x86/microvm: use memdev for RAM)
43/80 Checking commit 666b0c6278fb (x86/pc: use memdev for RAM)
44/80 Checking commit df9a5ef15410 (lm32/lm32_boards: use memdev for RAM)
45/80 Checking commit b83584403008 (lm32/milkymist: use memdev for RAM)
46/80 Checking commit f932543a1506 (m68k/an5206: use memdev for RAM)
47/80 Checking commit c6929f129e8c (m68k/q800: use memdev for RAM)
48/80 Checking commit 3e409410c561 (m68k/mcf5208: use memdev for RAM)
49/80 Checking commit 17bbfaf7bbd6 (m68k/next-cube: use memdev for RAM)
50/80 Checking commit 5e8f38897e54 (mips/boston: use memdev for RAM)
51/80 Checking commit 8a54d11de45c (mips/mips_fulong2e: drop RAM size fixup)
52/80 Checking commit 802f0316233d (mips/mips_fulong2e: use memdev for RAM)
53/80 Checking commit 40704d14a039 (mips/mips_jazz: use memdev for RAM)
54/80 Checking commit 7039ed00bd7f (mips/mips_malta: use memdev for RAM)
55/80 Checking commit b02c4714c12e (mips/mips_mipssim: use memdev for RAM)
56/80 Checking commit 0b021eede5f7 (mips/mips_r4k: use memdev for RAM)
57/80 Checking commit 6d1ca96fe5d7 (ppc/e500: drop RAM size fixup)
58/80 Checking commit 2ed160d8c4e8 (ppc/e500: use memdev for RAM)
59/80 Checking commit 23181a7de463 (ppc/mac_newworld: use memdev for RAM)
60/80 Checking commit ec639f6bb3b1 (ppc/mac_oldworld: use memdev for RAM)
61/80 Checking commit 90d7211b8eb7 (ppc/pnv: use memdev for RAM)
62/80 Checking commit ebce8044169b (ppc/ppc405_boards: add RAM size checks)
63/80 Checking commit 7dea3c19dda9 (ppc/ppc405_boards: use memdev for RAM)
64/80 Checking commit c0f1fddf078c (ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup)
65/80 Checking commit c68dc4f3f534 (ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM)
WARNING: Block comments use a leading /* on a separate line
#50: FILE: hw/ppc/ppc4xx_devs.c:669:
+/* Split RAM between SDRAM banks.

total: 0 errors, 1 warnings, 103 lines checked

Patch 65/80 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
66/80 Checking commit 0a4a38520fce (ppc/prep: use memdev for RAM)
67/80 Checking commit 12a3f8dd0e18 (ppc/spapr: use memdev for RAM)
68/80 Checking commit 5620528e5ce7 (ppc/virtex_ml507: remove unused arguments)
69/80 Checking commit 5b5a39153e64 (ppc/virtex_ml507: use memdev for RAM)
70/80 Checking commit 05dfc25f60ae (sparc/leon3: use memdev for RAM)
71/80 Checking commit ef754a657dc0 (sparc/sun4m: use memdev for RAM)
72/80 Checking commit 431e57c1d62d (sparc/niagara: use memdev for RAM)
73/80 Checking commit 2da1a362ea8e (remove no longer used memory_region_allocate_system_memory())
74/80 Checking commit f5ec506ef34d (exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize())
75/80 Checking commit 90ccc91a4efe (exec: drop bogus mem_path from qemu_ram_alloc_from_fd())
76/80 Checking commit 13b58e138d12 (make mem_path local variable)
77/80 Checking commit eb4188bec297 (hostmem: introduce "prealloc-threads" property)
78/80 Checking commit 05a7ebfce7d1 (hostmem: fix strict bind policy)
79/80 Checking commit eb0f943735b8 (tests/numa-test: make top level args dynamic and g_autofree(cli) cleanups)
80/80 Checking commit f7b9c62f1274 (tests:numa-test: use explicit memdev to specify node RAM)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/1580483390-131164-1-git-send-email-imammedo@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Igor Mammedov Feb. 3, 2020, 9:49 a.m. UTC | #3
On Fri, 31 Jan 2020 08:28:02 -0800 (PST)
no-reply@patchew.org wrote:

> Patchew URL: https://patchew.org/QEMU/1580483390-131164-1-git-send-email-imammedo@redhat.com/
> 
> 
> 
> Hi,
> 
> This series seems to have some coding style problems. See output below for
> more information:
> 
> Subject: [PATCH v4 00/80] refactor main RAM allocation to use hostmem backend
> Message-id: 1580483390-131164-1-git-send-email-imammedo@redhat.com
[...]
> 1/80 Checking commit 60461983c933 (numa: remove deprecated -mem-path fallback to anonymous RAM)
> 2/80 Checking commit 5762ea41ea77 (machine: introduce memory-backend property)
> 3/80 Checking commit bcce25a8e595 (machine: alias -mem-path and -mem-prealloc into memory-foo backend)
> 4/80 Checking commit 700389660de4 (machine: introduce convenience MachineState::ram)
> 5/80 Checking commit 690a30507aa5 (initialize MachineState::ram in NUMA case)
> 6/80 Checking commit 32f83261cd0d (vl.c: move -m parsing after memory backends has been processed)
> 7/80 Checking commit de3c2ca6c609 (vl.c: ensure that ram_size matches size of machine.memory-backend)
> 8/80 Checking commit 8de04fd7210c (alpha/dp264: use memdev for RAM)
> ERROR: spaces required around that '*' (ctx:WxV)
> #30: FILE: hw/alpha/alpha_sys.h:14:
> +PCIBus *typhoon_init(MemoryRegion *, ISABus **, qemu_irq *, AlphaCPU *[4],

false positive
                                                                       ^
> 
> total: 1 errors, 0 warnings, 49 lines checked
> 
> Patch 8/80 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 

[...]

> 64/80 Checking commit c0f1fddf078c (ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup)
> 65/80 Checking commit c68dc4f3f534 (ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM)
> WARNING: Block comments use a leading /* on a separate line
> #50: FILE: hw/ppc/ppc4xx_devs.c:669:
> +/* Split RAM between SDRAM banks.

will fix it if I have to respin.

> 
> total: 0 errors, 1 warnings, 103 lines checked
> 
> Patch 65/80 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
[...]
Igor Mammedov Feb. 4, 2020, 3:08 p.m. UTC | #4
On Fri, 31 Jan 2020 16:08:30 +0100
Igor Mammedov <imammedo@redhat.com> wrote:

Paolo,

could you take a look at patches 1-7, 73,75-78 and
if series looks to be in acceptable shape, merge it via your tree

> v4:
>   - pick up new Reviewed-by-s
>   - Fix access to uninitialized pagesize/hpsize in
>     "[PATCH REPOST v3 74/80] exec: cleanup  qemu_minrampagesize()/qemu_maxrampagesize()"
>   - Make explicitly provided memory-backend work by using string property instead
>     of link so it would be possible to delay access to the backend to the time
>     when backends are initialized.
>   - added new patches to make explicit backend work nice with -m and do sanity
>     check on ram_size
>       'vl.c: move -m parsing after memory backends has been processed'
>       'vl.c: ensure that ram_size matches size of machine.memory-backend"
>     all this ram_size business needs cleanup too, but that's out of the scope
>     of this series.
>   - include m68k/q800 board into conversion
>   - drop patches that were merged through other trees
> 
> v3:
>   - due to libvirt not being ready, postpone till 5.1
>      * [PATCH v2 82/86] numa: forbid '-numa node,  mem' for 5.0 and newer machine types
>      and depended
>        [PATCH v2 86/86] numa: remove deprecated implicit RAM distribution  between nodes
>   - drop as not related "[PATCH v2 85/86] numa: make exit() usage consistent"
>   - drop "[PATCH v2 76/86] post conversion default_ram_id cleanup"
>     so that default memory-backedend won't be created for boards that do not care
>     about -m. Which makes -m optin feature. We should decide  what do in  case
>     board doesn't use -m (but that's out of scope of this series)
>   - use object_register_sugar_prop() instead of hacking compat props directly
>   - simplified/reworked aspeed patches
>   - s/RAM_ADDR_FMT/size_to_str()/
>   - rename 'ram-memdev' property to 'memory-backend'
>   - minor fixes to numa-test
>   - fixes for issues noticed during review of
>        [PATCH v2 66/86] ppc/{ppc440_bamboo,sam460x}: drop RAM size fixup
> 
> v2:
>   - fix compile errors on mingw32 host by introducing RAM_ADDR_UFMT [11/86]
>   - replace "[PATCH 43/86] hppa: drop RAM size fixup" with alternative
>     patches made by Philippe (which effectively do the same thing but other
>     way around)
>   - ppc440: fix crash and add suggested valid RAM size in error output.
>     s/ppc4xx_sdram_adjust/ppc4xx_sdram_prep/ and simplify it by removing
>     not necessary nested loop
>   - rebase on current master due to new conflicts
> 
> 
> Series removes ad hoc RAM allocation API (memory_region_allocate_system_memory)
> and consolidates it around hostmem backend. It allows to
>  * resolve conflicts between global -mem-prealloc and hostmem's "policy" option
>    fixing premature allocation before binding policy is applied
>  * simplify complicated memory allocation routines which had to deal with 2 ways
>    to allocate RAM.
>  * it allows to reuse hostmem backends of a choice for main RAM without adding
>    extra CLI options to duplicate hostmem features.
>    Recent case was -mem-shared, to enable vhost-user on targets that don't
>    support hostmem backends [1] (ex: s390)
>  * move RAM allocation from individual boards into generic machine code and
>    provide them with prepared MemoryRegion.
>  * clean up deprecated NUMA features which were tied to the old API (see patches)
>     - "numa: remove deprecated -mem-path fallback to anonymous RAM"
>     - (POSTPONED, waiting on libvirt side) "forbid '-numa node,mem' for 5.0 and newer machine types"
>     - (POSTPONED) "numa: remove deprecated implicit RAM distribution between nodes"
> 
> Conversion introduces a new machine.memory-backend property and wrapper code that
> aliases global -mem-path and -mem-alloc into automatically created hostmem
> backend properties (provided memory-backend was not set explicitly given by user).
> And then follows bulk of trivial patches that incrementally convert individual
> boards to using machine.memory-backend provided MemoryRegion.
> 
> Board conversion typically involves:
>  * providing MachineClass::default_ram_size and MachineClass::default_ram_id
>    so generic code could create default backend if user didn't explicitly provide
>    memory-backend or -m options
>  * dropping memory_region_allocate_system_memory() call
>  * using convenience MachineState::ram MemoryRegion, which points to MemoryRegion
>    allocated by ram-memdev
> On top of that for some boards:
>  * added missing ram_size checks (typically it were boards with fixed ram size)
>  * ram_size fixups were replaced by checks and hard errors, forcing user to
>    provide correct "-m" values instead of ignoring it and continuing running.
> 
> After all boards are converted the old API is removed and memory allocation
> routines are cleaned up.
> 
> git tree for testing:
>   https://github.com/imammedo/qemu convert_main_ram_to_memdev_v4
> 
> previous rev:
>   https://github.com/imammedo/qemu convert_main_ram_to_memdev_v3
>   https://lists.nongnu.org/archive/html/qemu-devel/2020-01/msg05299.html
> 
> Igor Mammedov (80):
>   numa: remove deprecated -mem-path fallback to anonymous RAM
>   machine: introduce memory-backend property
>   machine: alias -mem-path and -mem-prealloc into memory-foo backend
>   machine: introduce convenience MachineState::ram
>   initialize MachineState::ram in NUMA case
>   vl.c: move -m parsing after memory backends has been processed
>   vl.c: ensure that ram_size matches size of machine.memory-backend
>   alpha/dp264: use memdev for RAM
>   arm/aspeed: actually check RAM size
>   arm/aspeed: use memdev for RAM
>   arm/collie: use memdev for RAM
>   arm/cubieboard: use memdev for RAM
>   arm/digic_boards: use memdev for RAM
>   arm/highbank: use memdev for RAM
>   arm/imx25_pdk: drop RAM size fixup
>   arm/imx25_pdk: use memdev for RAM
>   arm/integratorcp: use memdev for RAM
>   arm/kzm: drop RAM size fixup
>   arm/kzm: use memdev for RAM
>   arm/mcimx6ul-evk: use memdev for RAM
>   arm/mcimx7d-sabre: use memdev for RAM
>   arm/mps2-tz: use memdev for RAM
>   arm/mps2: use memdev for RAM
>   arm/musicpal: use memdev for RAM
>   arm/nseries: use memdev for RAM
>   arm/omap_sx1: use memdev for RAM
>   arm/palm: use memdev for RAM
>   arm/raspi: use memdev for RAM
>   arm/sabrelite: use memdev for RAM
>   arm/sbsa-ref: use memdev for RAM
>   arm/versatilepb: use memdev for RAM
>   arm/vexpress: use memdev for RAM
>   arm/virt: use memdev for RAM
>   arm/xilinx_zynq: drop RAM size fixup
>   arm/xilinx_zynq: use memdev for RAM
>   arm/xlnx-versal-virt: use memdev for RAM
>   arm/xlnx-zcu102: use memdev for RAM
>   s390x/s390-virtio-ccw: use memdev for RAM
>   null-machine: use memdev for RAM
>   cris/axis_dev88: use memdev for RAM
>   hppa: use memdev for RAM
>   x86/microvm: use memdev for RAM
>   x86/pc: use memdev for RAM
>   lm32/lm32_boards: use memdev for RAM
>   lm32/milkymist: use memdev for RAM
>   m68k/an5206: use memdev for RAM
>   m68k/q800: use memdev for RAM
>   m68k/mcf5208: use memdev for RAM
>   m68k/next-cube: use memdev for RAM
>   mips/boston: use memdev for RAM
>   mips/mips_fulong2e: drop RAM size fixup
>   mips/mips_fulong2e: use memdev for RAM
>   mips/mips_jazz: use memdev for RAM
>   mips/mips_malta: use memdev for RAM
>   mips/mips_mipssim: use memdev for RAM
>   mips/mips_r4k: use memdev for RAM
>   ppc/e500: drop RAM size fixup
>   ppc/e500: use memdev for RAM
>   ppc/mac_newworld: use memdev for RAM
>   ppc/mac_oldworld: use memdev for RAM
>   ppc/pnv: use memdev for RAM
>   ppc/ppc405_boards: add RAM size checks
>   ppc/ppc405_boards: use memdev for RAM
>   ppc/{ppc440_bamboo, sam460ex}: drop RAM size fixup
>   ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM
>   ppc/prep: use memdev for RAM
>   ppc/spapr: use memdev for RAM
>   ppc/virtex_ml507: remove unused arguments
>   ppc/virtex_ml507: use memdev for RAM
>   sparc/leon3: use memdev for RAM
>   sparc/sun4m: use memdev for RAM
>   sparc/niagara: use memdev for RAM
>   remove no longer used memory_region_allocate_system_memory()
>   exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize()
>   exec: drop bogus mem_path from qemu_ram_alloc_from_fd()
>   make mem_path local variable
>   hostmem: introduce "prealloc-threads" property
>   hostmem: fix strict bind policy
>   tests/numa-test: make top level args dynamic and g_autofree(cli)
>     cleanups
>   tests:numa-test: use explicit memdev to specify node RAM
> 
>  hw/alpha/alpha_sys.h          |   2 +-
>  include/hw/boards.h           |  51 ++++++----------
>  include/hw/misc/aspeed_sdmc.h |   1 +
>  include/hw/ppc/ppc4xx.h       |   9 ++-
>  include/sysemu/hostmem.h      |  20 +++++-
>  include/sysemu/numa.h         |   1 +
>  include/sysemu/sysemu.h       |   2 -
>  backends/hostmem-file.c       |   8 ---
>  backends/hostmem-memfd.c      |   1 -
>  backends/hostmem-ram.c        |   2 -
>  backends/hostmem.c            |  53 +++++++++++-----
>  exec.c                        |  64 ++------------------
>  hw/alpha/dp264.c              |   3 +-
>  hw/alpha/typhoon.c            |   8 +--
>  hw/arm/aspeed.c               |  18 +++---
>  hw/arm/collie.c               |  17 ++++--
>  hw/arm/cubieboard.c           |  25 +++-----
>  hw/arm/digic_boards.c         |  40 ++++++------
>  hw/arm/highbank.c             |  10 ++-
>  hw/arm/imx25_pdk.c            |  13 ++--
>  hw/arm/integratorcp.c         |   9 ++-
>  hw/arm/kzm.c                  |  18 +++---
>  hw/arm/mcimx6ul-evk.c         |  25 +++-----
>  hw/arm/mcimx7d-sabre.c        |  25 +++-----
>  hw/arm/mps2-tz.c              |  15 +++--
>  hw/arm/mps2.c                 |  15 +++--
>  hw/arm/musicpal.c             |  18 ++++--
>  hw/arm/nseries.c              |  32 ++++++----
>  hw/arm/omap_sx1.c             |  20 ++++--
>  hw/arm/palm.c                 |  20 ++++--
>  hw/arm/raspi.c                |  32 ++++------
>  hw/arm/sabrelite.c            |  23 +++----
>  hw/arm/sbsa-ref.c             |   7 +--
>  hw/arm/versatilepb.c          |   7 +--
>  hw/arm/vexpress.c             |  14 ++---
>  hw/arm/virt.c                 |   7 +--
>  hw/arm/xilinx_zynq.c          |  20 +++---
>  hw/arm/xlnx-versal-virt.c     |   7 +--
>  hw/arm/xlnx-zcu102.c          |   7 +--
>  hw/core/machine.c             |  48 +++++++++++++++
>  hw/core/null-machine.c        |   8 +--
>  hw/core/numa.c                | 101 +++++++++----------------------
>  hw/cris/axis_dev88.c          |   8 +--
>  hw/hppa/machine.c             |  10 +--
>  hw/i386/microvm.c             |  12 ++--
>  hw/i386/pc.c                  |  19 +++---
>  hw/lm32/lm32_boards.c         |  39 ++++++++----
>  hw/lm32/milkymist.c           |  21 ++++---
>  hw/m68k/an5206.c              |   5 +-
>  hw/m68k/mcf5208.c             |   5 +-
>  hw/m68k/next-cube.c           |   5 +-
>  hw/m68k/q800.c                |   6 +-
>  hw/mips/boston.c              |  11 ++--
>  hw/mips/mips_fulong2e.c       |  15 ++---
>  hw/mips/mips_jazz.c           |   7 +--
>  hw/mips/mips_malta.c          |  10 ++-
>  hw/mips/mips_mipssim.c        |   9 +--
>  hw/mips/mips_r4k.c            |  12 ++--
>  hw/misc/aspeed_sdmc.c         |  83 +++++++++++++++++++------
>  hw/ppc/e500.c                 |  17 +++---
>  hw/ppc/e500plat.c             |   1 +
>  hw/ppc/mac_newworld.c         |   6 +-
>  hw/ppc/mac_oldworld.c         |   6 +-
>  hw/ppc/mpc8544ds.c            |   1 +
>  hw/ppc/pnv.c                  |   8 +--
>  hw/ppc/ppc405_boards.c        |  48 +++++++++------
>  hw/ppc/ppc440_bamboo.c        |  12 ++--
>  hw/ppc/ppc4xx_devs.c          |  63 +++++++++----------
>  hw/ppc/prep.c                 |  15 +++--
>  hw/ppc/sam460ex.c             |   6 +-
>  hw/ppc/spapr.c                |   8 +--
>  hw/ppc/virtex_ml507.c         |  19 +++---
>  hw/s390x/s390-virtio-ccw.c    |   7 +--
>  hw/sparc/leon3.c              |   6 +-
>  hw/sparc/sun4m.c              |  74 +++++++++++-----------
>  hw/sparc64/niagara.c          |   7 +--
>  qemu-deprecated.texi          |   9 ---
>  tests/qtest/numa-test.c       | 138 ++++++++++++++++++++++--------------------
>  vl.c                          |  78 +++++++++++++++++++-----
>  79 files changed, 831 insertions(+), 801 deletions(-)
>
Igor Mammedov Feb. 4, 2020, 3:39 p.m. UTC | #5
On Tue, 4 Feb 2020 16:08:30 +0100
Igor Mammedov <imammedo@redhat.com> wrote:

> On Fri, 31 Jan 2020 16:08:30 +0100
> Igor Mammedov <imammedo@redhat.com> wrote:
> 
> Paolo,

forgot to add address to CC

> 
> could you take a look at patches 1-7, 73,75-78 and
> if series looks to be in acceptable shape, merge it via your tree
> 
> > v4:
[...]
Paolo Bonzini Feb. 4, 2020, 10:05 p.m. UTC | #6
Sure! I probably won't send a pull request for a week or so though.

Paolo

Il mar 4 feb 2020, 16:39 Igor Mammedov <imammedo@redhat.com> ha scritto:

> On Tue, 4 Feb 2020 16:08:30 +0100
> Igor Mammedov <imammedo@redhat.com> wrote:
>
> > On Fri, 31 Jan 2020 16:08:30 +0100
> > Igor Mammedov <imammedo@redhat.com> wrote:
> >
> > Paolo,
>
> forgot to add address to CC
>
> >
> > could you take a look at patches 1-7, 73,75-78 and
> > if series looks to be in acceptable shape, merge it via your tree
> >
> > > v4:
> [...]
>
>
Philippe Mathieu-Daudé Feb. 5, 2020, 1:20 p.m. UTC | #7
On 2/4/20 11:05 PM, Paolo Bonzini wrote:
> Sure! I probably won't send a pull request for a week or so though.

Eh I need to rush to get my raspi series fixed/reviewed/merged before 
that :(

> 
> Paolo
> 
> Il mar 4 feb 2020, 16:39 Igor Mammedov <imammedo@redhat.com 
> <mailto:imammedo@redhat.com>> ha scritto:
> 
>     On Tue, 4 Feb 2020 16:08:30 +0100
>     Igor Mammedov <imammedo@redhat.com <mailto:imammedo@redhat.com>> wrote:
> 
>      > On Fri, 31 Jan 2020 16:08:30 +0100
>      > Igor Mammedov <imammedo@redhat.com <mailto:imammedo@redhat.com>>
>     wrote:
>      >
>      > Paolo,
> 
>     forgot to add address to CC
> 
>      >
>      > could you take a look at patches 1-7, 73,75-78 and
>      > if series looks to be in acceptable shape, merge it via your tree
>      >
>      > > v4:
>     [...]
>