[Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less

Markus Armbruster posted 29 patches 6 years, 6 months ago
Maintainers: Giuseppe Lettieri <g.lettieri@iet.unipi.it>, Andrzej Zaborowski <balrogg@gmail.com>, Stafford Horne <shorne@gmail.com>, Xiao Guangrong <xiaoguangrong.eric@gmail.com>, Aleksandar Markovic <amarkovic@wavecomp.com>, Riku Voipio <riku.voipio@iki.fi>, Michael Walle <michael@walle.cc>, Juan Quintela <quintela@redhat.com>, Pierre Morel <pmorel@linux.ibm.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Markus Armbruster <armbru@redhat.com>, BALATON Zoltan <balaton@eik.bme.hu>, Stefan Weil <sw@weilnetz.de>, Corey Minyard <minyard@acm.org>, Leif Lindholm <leif.lindholm@linaro.org>, Beniamino Galvani <b.galvani@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, Amit Shah <amit@kernel.org>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Collin Walling <walling@linux.ibm.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Yuval Shaia <yuval.shaia@oracle.com>, Liu Yuan <namei.unix@gmail.com>, Alex Williamson <alex.williamson@redhat.com>, Peter Chubb <peter.chubb@nicta.com.au>, Anthony Perard <anthony.perard@citrix.com>, Andrew Jeffery <andrew@aj.id.au>, Alistair Francis <Alistair.Francis@wdc.com>, Richard Henderson <rth@twiddle.net>, Luigi Rizzo <rizzo@iet.unipi.it>, Anthony Green <green@moxielogic.com>, Shannon Zhao <shannon.zhaosl@gmail.com>, Peter Lieven <pl@kamp.de>, Jason Wang <jasowang@redhat.com>, Laurent Vivier <laurent@vivier.eu>, Corey Minyard <cminyard@mvista.com>, Vincenzo Maffione <v.maffione@gmail.com>, James Hogan <jhogan@kernel.org>, Gonglei <arei.gonglei@huawei.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Fabien Chouteau <chouteau@adacore.com>, "Cédric Le Goater" <clg@kaod.org>, David Gibson <david@gibson.dropbear.id.au>, Marek Vasut <marex@denx.de>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Alberto Garcia <berto@igalia.com>, Laurent Vivier <lvivier@redhat.com>, Max Filippov <jcmvbkbc@gmail.com>, KONRAD Frederic <frederic.konrad@adacore.com>, "Hervé Poussineau" <hpoussin@reactos.org>, Keith Busch <keith.busch@intel.com>, Stefano Stabellini <sstabellini@kernel.org>, zhanghailiang <zhang.zhanghailiang@huawei.com>, Eric Blake <eblake@redhat.com>, David Hildenbrand <david@redhat.com>, Paul Burton <pburton@wavecomp.com>, Jan Kiszka <jan.kiszka@web.de>, Igor Mitsyanko <i.mitsyanko@gmail.com>, Joel Stanley <joel@jms.id.au>, Stefan Berger <stefanb@linux.ibm.com>, Peter Maydell <peter.maydell@linaro.org>, Jia Liu <proljc@gmail.com>, Igor Mammedov <imammedo@redhat.com>, Helge Deller <deller@gmx.de>, Fam Zheng <fam@euphon.net>, Jiri Pirko <jiri@resnulli.us>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Magnus Damm <magnus.damm@gmail.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, Stefan Hajnoczi <stefanha@redhat.com>, Xie Changlong <xiechanglong.d@gmail.com>, Thomas Huth <huth@tuxfamily.org>, Marcelo Tosatti <mtosatti@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, John Snow <jsnow@redhat.com>, Guan Xuetao <gxt@mprc.pku.edu.cn>, Palmer Dabbelt <palmer@sifive.com>, Gerd Hoffmann <kraxel@redhat.com>, Andrey Smirnov <andrew.smirnov@gmail.com>, Thomas Huth <thuth@redhat.com>, Hannes Reinecke <hare@suse.com>, Jiri Slaby <jslaby@suse.cz>, Kevin Wolf <kwolf@redhat.com>, Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, Subbaraya Sundeep <sundeep.lkml@gmail.com>, Andrew Baumann <Andrew.Baumann@microsoft.com>, Alistair Francis <alistair@alistair23.me>, Rob Herring <robh@kernel.org>, Halil Pasic <pasic@linux.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, Cornelia Huck <cohuck@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Eduardo Habkost <ehabkost@redhat.com>, Radoslaw Biernacki <radoslaw.biernacki@linaro.org>, Eric Farman <farman@linux.ibm.com>, Wen Congyang <wencongyang2@huawei.com>, Max Reitz <mreitz@redhat.com>, Chris Wulff <crwulff@gmail.com>, Eric Auger <eric.auger@redhat.com>, Greg Kurz <groug@kaod.org>, Paul Durrant <paul.durrant@citrix.com>, Antony Pavlov <antonynpavlov@gmail.com>, Michael Roth <mdroth@linux.vnet.ibm.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Jean-Christophe Dubois <jcd@tribudubois.net>, Tony Krowiak <akrowiak@linux.ibm.com>, Ben Warren <ben@skyportsystems.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Aleksandar Rikalo <arikalo@wavecomp.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Laszlo Ersek <lersek@redhat.com>, Artyom Tarasenko <atar4qemu@gmail.com>
There is a newer version of this series
[Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less
Posted by Markus Armbruster 6 years, 6 months ago
In my "build everything" tree, changing migration/qemu-file-types.h
triggers a recompile of some 2600 out of 6600 objects (not counting
tests and objects that don't depend on qemu/osdep.h).

The culprit is again hw/hw.h, which supposedly includes it for
convenience.

Include migration/qemu-file-types.h only where it's needed.  Touching
it now recompiles less than 200 objects.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/acpi/piix4.c             | 1 +
 hw/block/virtio-blk.c       | 1 +
 hw/char/virtio-serial-bus.c | 1 +
 hw/display/virtio-gpu.c     | 1 +
 hw/intc/apic_common.c       | 1 +
 hw/nvram/eeprom93xx.c       | 1 +
 hw/nvram/fw_cfg.c           | 1 +
 hw/pci-host/piix.c          | 1 +
 hw/pci/msix.c               | 1 +
 hw/pci/pci.c                | 1 +
 hw/pci/shpc.c               | 1 +
 hw/ppc/spapr.c              | 1 +
 hw/s390x/s390-skeys.c       | 1 +
 hw/s390x/tod.c              | 1 +
 hw/s390x/virtio-ccw.c       | 1 +
 hw/scsi/mptsas.c            | 1 +
 hw/scsi/scsi-bus.c          | 1 +
 hw/scsi/scsi-disk.c         | 1 +
 hw/scsi/scsi-generic.c      | 1 +
 hw/scsi/virtio-scsi.c       | 1 +
 hw/timer/i8254_common.c     | 1 +
 hw/timer/twl92230.c         | 1 +
 hw/usb/redirect.c           | 1 +
 hw/virtio/vhost.c           | 1 +
 hw/virtio/virtio-mmio.c     | 1 +
 hw/virtio/virtio-pci.c      | 1 +
 hw/virtio/virtio.c          | 1 +
 include/hw/hw.h             | 1 -
 include/migration/cpu.h     | 1 +
 target/ppc/kvm.c            | 1 +
 30 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index a59e58d937..0d8c821f37 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -40,6 +40,7 @@
 #include "hw/acpi/memory_hotplug.h"
 #include "hw/acpi/acpi_dev_interface.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "qom/cpu.h"
 #include "trace.h"
 
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index cbb3729158..1f40834d27 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -26,6 +26,7 @@
 # include <scsi/sg.h>
 #endif
 #include "hw/virtio/virtio-bus.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-access.h"
 
 /* Config size before the discard support (hide associated config fields) */
diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
index f7a54f261b..b868e54d72 100644
--- a/hw/char/virtio-serial-bus.c
+++ b/hw/char/virtio-serial-bus.c
@@ -22,6 +22,7 @@
 #include "qapi/error.h"
 #include "qemu/iov.h"
 #include "qemu/module.h"
+#include "migration/qemu-file-types.h"
 #include "monitor/monitor.h"
 #include "qemu/error-report.h"
 #include "qemu/queue.h"
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 25d9e327fc..ed92071963 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -18,6 +18,7 @@
 #include "trace.h"
 #include "sysemu/dma.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-gpu.h"
 #include "hw/virtio/virtio-gpu-bswap.h"
 #include "hw/virtio/virtio-gpu-pixman.h"
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index e764a2bb03..7045761281 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -31,6 +31,7 @@
 #include "sysemu/kvm.h"
 #include "hw/qdev.h"
 #include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
 
 static int apic_irq_delivered;
 bool apic_report_tpr_access;
diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c
index 2db3d7cce6..5fc23df1d4 100644
--- a/hw/nvram/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
@@ -38,6 +38,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/nvram/eeprom93xx.h"
+#include "migration/qemu-file-types.h"
 
 /* Debug EEPROM emulation. */
 //~ #define DEBUG_EEPROM
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index 3032f1c65f..8db0297d59 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -31,6 +31,7 @@
 #include "hw/boards.h"
 #include "hw/nvram/fw_cfg.h"
 #include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 #include "qemu/option.h"
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index f3671d28b7..e5955457ab 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -32,6 +32,7 @@
 #include "qapi/error.h"
 #include "qemu/range.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci-host/pam.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index d39dcf32e8..ebe804b473 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -20,6 +20,7 @@
 #include "hw/pci/msix.h"
 #include "hw/pci/pci.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/range.h"
 #include "qapi/error.h"
 #include "trace.h"
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 8076a80ab3..43a3cac138 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -29,6 +29,7 @@
 #include "hw/pci/pci_bridge.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/pci_host.h"
+#include "migration/qemu-file-types.h"
 #include "monitor/monitor.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
index 5a10c6e9a5..7f0aa28e44 100644
--- a/hw/pci/shpc.c
+++ b/hw/pci/shpc.c
@@ -4,6 +4,7 @@
 #include "qemu/range.h"
 #include "qemu/error-report.h"
 #include "hw/pci/shpc.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/msi.h"
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 5cade1a374..76e815ceee 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -42,6 +42,7 @@
 #include "sysemu/hw_accel.h"
 #include "kvm_ppc.h"
 #include "migration/misc.h"
+#include "migration/qemu-file-types.h"
 #include "migration/global_state.h"
 #include "migration/register.h"
 #include "mmu-hash64.h"
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index e5bd92c0c7..d4807f7777 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -18,6 +18,7 @@
 #include "qapi/qmp/qdict.h"
 #include "qemu/error-report.h"
 #include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
 #include "migration/register.h"
 
 #define S390_SKEYS_BUFFER_SIZE (128 * KiB)  /* Room for 128k storage keys */
diff --git a/hw/s390x/tod.c b/hw/s390x/tod.c
index a9fca8eb0b..1bf0875afa 100644
--- a/hw/s390x/tod.c
+++ b/hw/s390x/tod.c
@@ -14,6 +14,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
 #include "migration/register.h"
 
 void s390_init_tod(void)
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 43d3a1b029..fa537bfba3 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -17,6 +17,7 @@
 #include "sysemu/kvm.h"
 #include "net/net.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-net.h"
 #include "hw/sysbus.h"
 #include "qemu/bitops.h"
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index 3f94d5ab55..6d2c15a2bc 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -34,6 +34,7 @@
 #include "trace.h"
 #include "qapi/error.h"
 #include "mptsas.h"
+#include "migration/qemu-file-types.h"
 #include "mpi.h"
 
 #define NAA_LOCALLY_ASSIGNED_ID 0x3ULL
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index fdc3a0e4e0..81fe7c3301 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -5,6 +5,7 @@
 #include "qemu/module.h"
 #include "qemu/option.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "scsi/constants.h"
 #include "hw/qdev.h"
 #include "sysemu/block-backend.h"
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index af3e622dc5..558fa11511 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -25,6 +25,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "hw/scsi/emulation.h"
 #include "scsi/constants.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
index c11a0c9a84..44430b6ea6 100644
--- a/hw/scsi/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
@@ -17,6 +17,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "hw/scsi/emulation.h"
 #include "sysemu/block-backend.h"
 #include "trace.h"
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index 8b9e5e2b49..a6d61aacdb 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -17,6 +17,7 @@
 #include "qapi/error.h"
 #include "standard-headers/linux/virtio_ids.h"
 #include "hw/virtio/virtio-scsi.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/error-report.h"
 #include "qemu/iov.h"
 #include "qemu/module.h"
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
index 76ca6ec444..3e980f2dee 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -30,6 +30,7 @@
 #include "qemu/timer.h"
 #include "hw/timer/i8254.h"
 #include "hw/timer/i8254_internal.h"
+#include "migration/qemu-file-types.h"
 
 /* val must be 0 or 1 */
 void pit_set_gate(ISADevice *dev, int channel, int val)
diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c
index 0ef4fc1fc1..91ae7bf203 100644
--- a/hw/timer/twl92230.c
+++ b/hw/timer/twl92230.c
@@ -24,6 +24,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "hw/i2c/i2c.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
 #include "qemu/bcd.h"
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 998fc6e4b0..846e60f3bb 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -41,6 +41,7 @@
 #include <usbredirfilter.h>
 
 #include "hw/usb.h"
+#include "migration/qemu-file-types.h"
 
 /* ERROR is defined below. Remove any previous definition. */
 #undef ERROR
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index bc899fc60e..ba1006ad96 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -26,6 +26,7 @@
 #include "hw/virtio/virtio-bus.h"
 #include "hw/virtio/virtio-access.h"
 #include "migration/blocker.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/dma.h"
 #include "trace.h"
 
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 97b7f35496..d4c0997074 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -23,6 +23,7 @@
 #include "standard-headers/linux/virtio_mmio.h"
 #include "hw/sysbus.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/host-utils.h"
 #include "qemu/module.h"
 #include "sysemu/kvm.h"
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f6d2223e78..1117f2347b 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,6 +19,7 @@
 
 #include "standard-headers/linux/virtio_pci.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "qapi/error.h"
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a94ea18a9c..79c7a910cc 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -19,6 +19,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/atomic.h"
 #include "hw/virtio/virtio-bus.h"
 #include "hw/virtio/virtio-access.h"
diff --git a/include/hw/hw.h b/include/hw/hw.h
index a4fb2390e8..b399627cbe 100644
--- a/include/hw/hw.h
+++ b/include/hw/hw.h
@@ -11,7 +11,6 @@
 #include "exec/memory.h"
 #include "hw/irq.h"
 #include "migration/vmstate.h"
-#include "migration/qemu-file-types.h"
 
 void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
 
diff --git a/include/migration/cpu.h b/include/migration/cpu.h
index 8424f1631a..21c4fc9eab 100644
--- a/include/migration/cpu.h
+++ b/include/migration/cpu.h
@@ -3,6 +3,7 @@
 #define MIGRATION_CPU_H
 
 #include "exec/cpu-defs.h"
+#include "migration/qemu-file-types.h"
 
 #if TARGET_LONG_BITS == 64
 #define qemu_put_betl qemu_put_be64
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 8a06d3171e..4bd95be9cd 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -38,6 +38,7 @@
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_cpu_core.h"
 #include "hw/ppc/ppc.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/watchdog.h"
 #include "trace.h"
 #include "exec/gdbstub.h"
-- 
2.21.0


Re: [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less
Posted by Philippe Mathieu-Daudé 6 years, 6 months ago
On 8/6/19 5:14 PM, Markus Armbruster wrote:
> In my "build everything" tree, changing migration/qemu-file-types.h
> triggers a recompile of some 2600 out of 6600 objects (not counting
> tests and objects that don't depend on qemu/osdep.h).
> 
> The culprit is again hw/hw.h, which supposedly includes it for
> convenience.
> 
> Include migration/qemu-file-types.h only where it's needed.  Touching
> it now recompiles less than 200 objects.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/acpi/piix4.c             | 1 +
>  hw/block/virtio-blk.c       | 1 +
>  hw/char/virtio-serial-bus.c | 1 +
>  hw/display/virtio-gpu.c     | 1 +
>  hw/intc/apic_common.c       | 1 +
>  hw/nvram/eeprom93xx.c       | 1 +
>  hw/nvram/fw_cfg.c           | 1 +
>  hw/pci-host/piix.c          | 1 +
>  hw/pci/msix.c               | 1 +
>  hw/pci/pci.c                | 1 +
>  hw/pci/shpc.c               | 1 +
>  hw/ppc/spapr.c              | 1 +
>  hw/s390x/s390-skeys.c       | 1 +
>  hw/s390x/tod.c              | 1 +
>  hw/s390x/virtio-ccw.c       | 1 +
>  hw/scsi/mptsas.c            | 1 +
>  hw/scsi/scsi-bus.c          | 1 +
>  hw/scsi/scsi-disk.c         | 1 +
>  hw/scsi/scsi-generic.c      | 1 +
>  hw/scsi/virtio-scsi.c       | 1 +
>  hw/timer/i8254_common.c     | 1 +
>  hw/timer/twl92230.c         | 1 +
>  hw/usb/redirect.c           | 1 +
>  hw/virtio/vhost.c           | 1 +
>  hw/virtio/virtio-mmio.c     | 1 +
>  hw/virtio/virtio-pci.c      | 1 +
>  hw/virtio/virtio.c          | 1 +
>  include/hw/hw.h             | 1 -
>  include/migration/cpu.h     | 1 +
>  target/ppc/kvm.c            | 1 +
>  30 files changed, 29 insertions(+), 1 deletion(-)
[...]
> diff --git a/include/hw/hw.h b/include/hw/hw.h
> index a4fb2390e8..b399627cbe 100644
> --- a/include/hw/hw.h
> +++ b/include/hw/hw.h
> @@ -11,7 +11,6 @@
>  #include "exec/memory.h"
>  #include "hw/irq.h"
>  #include "migration/vmstate.h"
> -#include "migration/qemu-file-types.h"

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>  
>  void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
>  
> diff --git a/include/migration/cpu.h b/include/migration/cpu.h
> index 8424f1631a..21c4fc9eab 100644
> --- a/include/migration/cpu.h
> +++ b/include/migration/cpu.h
> @@ -3,6 +3,7 @@
>  #define MIGRATION_CPU_H
>  
>  #include "exec/cpu-defs.h"
> +#include "migration/qemu-file-types.h"
>  
>  #if TARGET_LONG_BITS == 64
>  #define qemu_put_betl qemu_put_be64
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 8a06d3171e..4bd95be9cd 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -38,6 +38,7 @@
>  #include "hw/ppc/spapr.h"
>  #include "hw/ppc/spapr_cpu_core.h"
>  #include "hw/ppc/ppc.h"
> +#include "migration/qemu-file-types.h"
>  #include "sysemu/watchdog.h"
>  #include "trace.h"
>  #include "exec/gdbstub.h"
> 

Re: [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less
Posted by Philippe Mathieu-Daudé 6 years, 6 months ago
On 8/7/19 2:25 PM, Philippe Mathieu-Daudé wrote:
> On 8/6/19 5:14 PM, Markus Armbruster wrote:
>> In my "build everything" tree, changing migration/qemu-file-types.h
>> triggers a recompile of some 2600 out of 6600 objects (not counting
>> tests and objects that don't depend on qemu/osdep.h).
>>
>> The culprit is again hw/hw.h, which supposedly includes it for
>> convenience.
>>
>> Include migration/qemu-file-types.h only where it's needed.  Touching
>> it now recompiles less than 200 objects.
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  hw/acpi/piix4.c             | 1 +
>>  hw/block/virtio-blk.c       | 1 +
>>  hw/char/virtio-serial-bus.c | 1 +
>>  hw/display/virtio-gpu.c     | 1 +
>>  hw/intc/apic_common.c       | 1 +
>>  hw/nvram/eeprom93xx.c       | 1 +
>>  hw/nvram/fw_cfg.c           | 1 +
>>  hw/pci-host/piix.c          | 1 +
>>  hw/pci/msix.c               | 1 +
>>  hw/pci/pci.c                | 1 +
>>  hw/pci/shpc.c               | 1 +
>>  hw/ppc/spapr.c              | 1 +
>>  hw/s390x/s390-skeys.c       | 1 +
>>  hw/s390x/tod.c              | 1 +
>>  hw/s390x/virtio-ccw.c       | 1 +
>>  hw/scsi/mptsas.c            | 1 +
>>  hw/scsi/scsi-bus.c          | 1 +
>>  hw/scsi/scsi-disk.c         | 1 +
>>  hw/scsi/scsi-generic.c      | 1 +
>>  hw/scsi/virtio-scsi.c       | 1 +
>>  hw/timer/i8254_common.c     | 1 +
>>  hw/timer/twl92230.c         | 1 +
>>  hw/usb/redirect.c           | 1 +
>>  hw/virtio/vhost.c           | 1 +
>>  hw/virtio/virtio-mmio.c     | 1 +
>>  hw/virtio/virtio-pci.c      | 1 +
>>  hw/virtio/virtio.c          | 1 +
>>  include/hw/hw.h             | 1 -
>>  include/migration/cpu.h     | 1 +
>>  target/ppc/kvm.c            | 1 +
>>  30 files changed, 29 insertions(+), 1 deletion(-)
> [...]
>> diff --git a/include/hw/hw.h b/include/hw/hw.h
>> index a4fb2390e8..b399627cbe 100644
>> --- a/include/hw/hw.h
>> +++ b/include/hw/hw.h
>> @@ -11,7 +11,6 @@
>>  #include "exec/memory.h"
>>  #include "hw/irq.h"
>>  #include "migration/vmstate.h"
>> -#include "migration/qemu-file-types.h"
> 
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Oops another miss:

hw/intc/s390_flic_kvm.c: In function 'kvm_flic_save':
hw/intc/s390_flic_kvm.c:395:9: error: implicit declaration of function
'qemu_put_be64' [-Werror=implicit-function-declaration]
         qemu_put_be64(f, FLIC_FAILED);
         ^~~~~~~~~~~~~

>>  void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
>>  
>> diff --git a/include/migration/cpu.h b/include/migration/cpu.h
>> index 8424f1631a..21c4fc9eab 100644
>> --- a/include/migration/cpu.h
>> +++ b/include/migration/cpu.h
>> @@ -3,6 +3,7 @@
>>  #define MIGRATION_CPU_H
>>  
>>  #include "exec/cpu-defs.h"
>> +#include "migration/qemu-file-types.h"
>>  
>>  #if TARGET_LONG_BITS == 64
>>  #define qemu_put_betl qemu_put_be64

Re: [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less
Posted by Markus Armbruster 6 years, 6 months ago
Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 8/7/19 2:25 PM, Philippe Mathieu-Daudé wrote:
>> On 8/6/19 5:14 PM, Markus Armbruster wrote:
>>> In my "build everything" tree, changing migration/qemu-file-types.h
>>> triggers a recompile of some 2600 out of 6600 objects (not counting
>>> tests and objects that don't depend on qemu/osdep.h).
>>>
>>> The culprit is again hw/hw.h, which supposedly includes it for
>>> convenience.
>>>
>>> Include migration/qemu-file-types.h only where it's needed.  Touching
>>> it now recompiles less than 200 objects.
>>>
>>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>> ---
>>>  hw/acpi/piix4.c             | 1 +
>>>  hw/block/virtio-blk.c       | 1 +
>>>  hw/char/virtio-serial-bus.c | 1 +
>>>  hw/display/virtio-gpu.c     | 1 +
>>>  hw/intc/apic_common.c       | 1 +
>>>  hw/nvram/eeprom93xx.c       | 1 +
>>>  hw/nvram/fw_cfg.c           | 1 +
>>>  hw/pci-host/piix.c          | 1 +
>>>  hw/pci/msix.c               | 1 +
>>>  hw/pci/pci.c                | 1 +
>>>  hw/pci/shpc.c               | 1 +
>>>  hw/ppc/spapr.c              | 1 +
>>>  hw/s390x/s390-skeys.c       | 1 +
>>>  hw/s390x/tod.c              | 1 +
>>>  hw/s390x/virtio-ccw.c       | 1 +
>>>  hw/scsi/mptsas.c            | 1 +
>>>  hw/scsi/scsi-bus.c          | 1 +
>>>  hw/scsi/scsi-disk.c         | 1 +
>>>  hw/scsi/scsi-generic.c      | 1 +
>>>  hw/scsi/virtio-scsi.c       | 1 +
>>>  hw/timer/i8254_common.c     | 1 +
>>>  hw/timer/twl92230.c         | 1 +
>>>  hw/usb/redirect.c           | 1 +
>>>  hw/virtio/vhost.c           | 1 +
>>>  hw/virtio/virtio-mmio.c     | 1 +
>>>  hw/virtio/virtio-pci.c      | 1 +
>>>  hw/virtio/virtio.c          | 1 +
>>>  include/hw/hw.h             | 1 -
>>>  include/migration/cpu.h     | 1 +
>>>  target/ppc/kvm.c            | 1 +
>>>  30 files changed, 29 insertions(+), 1 deletion(-)
>> [...]
>>> diff --git a/include/hw/hw.h b/include/hw/hw.h
>>> index a4fb2390e8..b399627cbe 100644
>>> --- a/include/hw/hw.h
>>> +++ b/include/hw/hw.h
>>> @@ -11,7 +11,6 @@
>>>  #include "exec/memory.h"
>>>  #include "hw/irq.h"
>>>  #include "migration/vmstate.h"
>>> -#include "migration/qemu-file-types.h"
>> 
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> Oops another miss:
>
> hw/intc/s390_flic_kvm.c: In function 'kvm_flic_save':
> hw/intc/s390_flic_kvm.c:395:9: error: implicit declaration of function
> 'qemu_put_be64' [-Werror=implicit-function-declaration]
>          qemu_put_be64(f, FLIC_FAILED);
>          ^~~~~~~~~~~~~

Patchew found this, too.  I'll fix it.  Thanks!