qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

Include migration/qemu-file-types.h a lot less

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>
Message-Id: <20190812052359.30071-10-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

+30 -1
+1
hw/acpi/piix4.c
··· 40 40 #include "hw/acpi/memory_hotplug.h" 41 41 #include "hw/acpi/acpi_dev_interface.h" 42 42 #include "hw/xen/xen.h" 43 + #include "migration/qemu-file-types.h" 43 44 #include "qom/cpu.h" 44 45 #include "trace.h" 45 46
+1
hw/block/virtio-blk.c
··· 26 26 # include <scsi/sg.h> 27 27 #endif 28 28 #include "hw/virtio/virtio-bus.h" 29 + #include "migration/qemu-file-types.h" 29 30 #include "hw/virtio/virtio-access.h" 30 31 31 32 /* Config size before the discard support (hide associated config fields) */
+1
hw/char/virtio-serial-bus.c
··· 22 22 #include "qapi/error.h" 23 23 #include "qemu/iov.h" 24 24 #include "qemu/module.h" 25 + #include "migration/qemu-file-types.h" 25 26 #include "monitor/monitor.h" 26 27 #include "qemu/error-report.h" 27 28 #include "qemu/queue.h"
+1
hw/display/virtio-gpu.c
··· 18 18 #include "trace.h" 19 19 #include "sysemu/dma.h" 20 20 #include "hw/virtio/virtio.h" 21 + #include "migration/qemu-file-types.h" 21 22 #include "hw/virtio/virtio-gpu.h" 22 23 #include "hw/virtio/virtio-gpu-bswap.h" 23 24 #include "hw/virtio/virtio-gpu-pixman.h"
+1
hw/intc/apic_common.c
··· 31 31 #include "sysemu/kvm.h" 32 32 #include "hw/qdev.h" 33 33 #include "hw/sysbus.h" 34 + #include "migration/qemu-file-types.h" 34 35 35 36 static int apic_irq_delivered; 36 37 bool apic_report_tpr_access;
+1
hw/intc/s390_flic_kvm.c
··· 22 22 #include "hw/s390x/s390_flic.h" 23 23 #include "hw/s390x/adapter.h" 24 24 #include "hw/s390x/css.h" 25 + #include "migration/qemu-file-types.h" 25 26 #include "trace.h" 26 27 27 28 #define FLIC_SAVE_INITIAL_SIZE getpagesize()
+1
hw/nvram/eeprom93xx.c
··· 38 38 #include "qemu/osdep.h" 39 39 #include "hw/hw.h" 40 40 #include "hw/nvram/eeprom93xx.h" 41 + #include "migration/qemu-file-types.h" 41 42 42 43 /* Debug EEPROM emulation. */ 43 44 //~ #define DEBUG_EEPROM
+1
hw/nvram/fw_cfg.c
··· 31 31 #include "hw/boards.h" 32 32 #include "hw/nvram/fw_cfg.h" 33 33 #include "hw/sysbus.h" 34 + #include "migration/qemu-file-types.h" 34 35 #include "trace.h" 35 36 #include "qemu/error-report.h" 36 37 #include "qemu/option.h"
+1
hw/pci-host/piix.c
··· 32 32 #include "qapi/error.h" 33 33 #include "qemu/range.h" 34 34 #include "hw/xen/xen.h" 35 + #include "migration/qemu-file-types.h" 35 36 #include "hw/pci-host/pam.h" 36 37 #include "sysemu/reset.h" 37 38 #include "sysemu/sysemu.h"
+1
hw/pci/msix.c
··· 20 20 #include "hw/pci/msix.h" 21 21 #include "hw/pci/pci.h" 22 22 #include "hw/xen/xen.h" 23 + #include "migration/qemu-file-types.h" 23 24 #include "qemu/range.h" 24 25 #include "qapi/error.h" 25 26 #include "trace.h"
+1
hw/pci/pci.c
··· 29 29 #include "hw/pci/pci_bridge.h" 30 30 #include "hw/pci/pci_bus.h" 31 31 #include "hw/pci/pci_host.h" 32 + #include "migration/qemu-file-types.h" 32 33 #include "monitor/monitor.h" 33 34 #include "net/net.h" 34 35 #include "sysemu/sysemu.h"
+1
hw/pci/shpc.c
··· 4 4 #include "qemu/range.h" 5 5 #include "qemu/error-report.h" 6 6 #include "hw/pci/shpc.h" 7 + #include "migration/qemu-file-types.h" 7 8 #include "hw/pci/pci.h" 8 9 #include "hw/pci/pci_bus.h" 9 10 #include "hw/pci/msi.h"
+1
hw/ppc/spapr.c
··· 42 42 #include "sysemu/hw_accel.h" 43 43 #include "kvm_ppc.h" 44 44 #include "migration/misc.h" 45 + #include "migration/qemu-file-types.h" 45 46 #include "migration/global_state.h" 46 47 #include "migration/register.h" 47 48 #include "mmu-hash64.h"
+1
hw/s390x/s390-skeys.c
··· 18 18 #include "qapi/qmp/qdict.h" 19 19 #include "qemu/error-report.h" 20 20 #include "sysemu/kvm.h" 21 + #include "migration/qemu-file-types.h" 21 22 #include "migration/register.h" 22 23 23 24 #define S390_SKEYS_BUFFER_SIZE (128 * KiB) /* Room for 128k storage keys */
+1
hw/s390x/tod.c
··· 14 14 #include "qemu/error-report.h" 15 15 #include "qemu/module.h" 16 16 #include "sysemu/kvm.h" 17 + #include "migration/qemu-file-types.h" 17 18 #include "migration/register.h" 18 19 19 20 void s390_init_tod(void)
+1
hw/s390x/virtio-ccw.c
··· 17 17 #include "sysemu/kvm.h" 18 18 #include "net/net.h" 19 19 #include "hw/virtio/virtio.h" 20 + #include "migration/qemu-file-types.h" 20 21 #include "hw/virtio/virtio-net.h" 21 22 #include "hw/sysbus.h" 22 23 #include "qemu/bitops.h"
+1
hw/scsi/mptsas.c
··· 34 34 #include "trace.h" 35 35 #include "qapi/error.h" 36 36 #include "mptsas.h" 37 + #include "migration/qemu-file-types.h" 37 38 #include "mpi.h" 38 39 39 40 #define NAA_LOCALLY_ASSIGNED_ID 0x3ULL
+1
hw/scsi/scsi-bus.c
··· 5 5 #include "qemu/module.h" 6 6 #include "qemu/option.h" 7 7 #include "hw/scsi/scsi.h" 8 + #include "migration/qemu-file-types.h" 8 9 #include "scsi/constants.h" 9 10 #include "hw/qdev.h" 10 11 #include "sysemu/block-backend.h"
+1
hw/scsi/scsi-disk.c
··· 25 25 #include "qemu/error-report.h" 26 26 #include "qemu/module.h" 27 27 #include "hw/scsi/scsi.h" 28 + #include "migration/qemu-file-types.h" 28 29 #include "hw/scsi/emulation.h" 29 30 #include "scsi/constants.h" 30 31 #include "sysemu/sysemu.h"
+1
hw/scsi/scsi-generic.c
··· 17 17 #include "qemu/error-report.h" 18 18 #include "qemu/module.h" 19 19 #include "hw/scsi/scsi.h" 20 + #include "migration/qemu-file-types.h" 20 21 #include "hw/scsi/emulation.h" 21 22 #include "sysemu/block-backend.h" 22 23 #include "trace.h"
+1
hw/scsi/virtio-scsi.c
··· 17 17 #include "qapi/error.h" 18 18 #include "standard-headers/linux/virtio_ids.h" 19 19 #include "hw/virtio/virtio-scsi.h" 20 + #include "migration/qemu-file-types.h" 20 21 #include "qemu/error-report.h" 21 22 #include "qemu/iov.h" 22 23 #include "qemu/module.h"
+1
hw/timer/i8254_common.c
··· 30 30 #include "qemu/timer.h" 31 31 #include "hw/timer/i8254.h" 32 32 #include "hw/timer/i8254_internal.h" 33 + #include "migration/qemu-file-types.h" 33 34 34 35 /* val must be 0 or 1 */ 35 36 void pit_set_gate(ISADevice *dev, int channel, int val)
+1
hw/timer/twl92230.c
··· 24 24 #include "hw/hw.h" 25 25 #include "qemu/timer.h" 26 26 #include "hw/i2c/i2c.h" 27 + #include "migration/qemu-file-types.h" 27 28 #include "sysemu/sysemu.h" 28 29 #include "ui/console.h" 29 30 #include "qemu/bcd.h"
+1
hw/usb/redirect.c
··· 41 41 #include <usbredirfilter.h> 42 42 43 43 #include "hw/usb.h" 44 + #include "migration/qemu-file-types.h" 44 45 45 46 /* ERROR is defined below. Remove any previous definition. */ 46 47 #undef ERROR
+1
hw/virtio/vhost.c
··· 26 26 #include "hw/virtio/virtio-bus.h" 27 27 #include "hw/virtio/virtio-access.h" 28 28 #include "migration/blocker.h" 29 + #include "migration/qemu-file-types.h" 29 30 #include "sysemu/dma.h" 30 31 #include "trace.h" 31 32
+1
hw/virtio/virtio-mmio.c
··· 23 23 #include "standard-headers/linux/virtio_mmio.h" 24 24 #include "hw/sysbus.h" 25 25 #include "hw/virtio/virtio.h" 26 + #include "migration/qemu-file-types.h" 26 27 #include "qemu/host-utils.h" 27 28 #include "qemu/module.h" 28 29 #include "sysemu/kvm.h"
+1
hw/virtio/virtio-pci.c
··· 19 19 20 20 #include "standard-headers/linux/virtio_pci.h" 21 21 #include "hw/virtio/virtio.h" 22 + #include "migration/qemu-file-types.h" 22 23 #include "hw/pci/pci.h" 23 24 #include "hw/pci/pci_bus.h" 24 25 #include "qapi/error.h"
+1
hw/virtio/virtio.c
··· 19 19 #include "qemu/error-report.h" 20 20 #include "qemu/module.h" 21 21 #include "hw/virtio/virtio.h" 22 + #include "migration/qemu-file-types.h" 22 23 #include "qemu/atomic.h" 23 24 #include "hw/virtio/virtio-bus.h" 24 25 #include "hw/virtio/virtio-access.h"
-1
include/hw/hw.h
··· 11 11 #include "exec/memory.h" 12 12 #include "hw/irq.h" 13 13 #include "migration/vmstate.h" 14 - #include "migration/qemu-file-types.h" 15 14 16 15 void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); 17 16
+1
include/migration/cpu.h
··· 4 4 #define MIGRATION_CPU_H 5 5 6 6 #include "exec/cpu-defs.h" 7 + #include "migration/qemu-file-types.h" 7 8 8 9 #if TARGET_LONG_BITS == 64 9 10 #define qemu_put_betl qemu_put_be64
+1
target/ppc/kvm.c
··· 38 38 #include "hw/ppc/spapr.h" 39 39 #include "hw/ppc/spapr_cpu_core.h" 40 40 #include "hw/ppc/ppc.h" 41 + #include "migration/qemu-file-types.h" 41 42 #include "sysemu/watchdog.h" 42 43 #include "trace.h" 43 44 #include "exec/gdbstub.h"