qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 28/29] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h
Date: Wed, 07 Aug 2019 22:19:01 +0200	[thread overview]
Message-ID: <875zn8raoa.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <87h86thu8n.fsf@linaro.org> ("Alex =?utf-8?Q?Benn=C3=A9e=22's?= message of "Wed, 07 Aug 2019 16:26:32 +0100")

Alex Bennée <alex.bennee@linaro.org> writes:

> Markus Armbruster <armbru@redhat.com> writes:
>
>> In my "build everything" tree, changing sysemu/sysemu.h triggers a
>> recompile of some 1800 out of 6600 objects (not counting tests and
>> objects that don't depend on qemu/osdep.h, down from 5400 due to the
>> previous commit).
>>
>> Several headers include sysemu/sysemu.h just to get typedef
>> VMChangeStateEntry.  Move it from sysemu/sysemu.h to qemu/typedefs.h.
>> Spell its structure tag the same while there.
>>
>> Touching sysemu/sysemu.h now recompiles some 1100 objects.
>> qemu/uuid.h also drops from 1800 to 1100, and
>> qapi/qapi-types-run-state.h from 5000 to 4400.
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  hw/block/vhost-user-blk.c   | 1 +
>>  hw/block/virtio-blk.c       | 1 +
>>  hw/display/virtio-gpu.c     | 1 +
>>  hw/misc/macio/macio.c       | 1 +
>>  hw/net/virtio-net.c         | 1 +
>>  hw/s390x/s390-ccw.c         | 1 +
>>  hw/s390x/s390-virtio-ccw.c  | 1 +
>>  hw/scsi/scsi-bus.c          | 1 +
>>  hw/scsi/vhost-scsi.c        | 1 +
>>  hw/scsi/vhost-user-scsi.c   | 1 +
>>  hw/usb/hcd-ehci.c           | 1 +
>>  hw/usb/hcd-ehci.h           | 1 -
>>  hw/virtio/virtio-rng.c      | 1 +
>>  hw/virtio/virtio.c          | 1 +
>>  include/hw/ide/internal.h   | 3 ++-
>>  include/hw/ppc/spapr_xive.h | 1 -
>>  include/hw/scsi/scsi.h      | 1 -
>>  include/hw/virtio/virtio.h  | 1 -
>>  include/qemu/typedefs.h     | 1 +
>>  include/sysemu/sysemu.h     | 1 -
>>  vl.c                        | 6 +++---
>>  21 files changed, 19 insertions(+), 9 deletions(-)
>>
>> diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
>> index 7b44cca6d9..6b6cd07362 100644
>> --- a/hw/block/vhost-user-blk.c
>> +++ b/hw/block/vhost-user-blk.c
>> @@ -28,6 +28,7 @@
>>  #include "hw/virtio/virtio.h"
>>  #include "hw/virtio/virtio-bus.h"
>>  #include "hw/virtio/virtio-access.h"
>> +#include "sysemu/sysemu.h"
>>
>>  static const int user_feature_bits[] = {
>>      VIRTIO_BLK_F_SIZE_MAX,
>> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
>> index 8cc2a232e0..78ac371eba 100644
>> --- a/hw/block/virtio-blk.c
>> +++ b/hw/block/virtio-blk.c
>> @@ -20,6 +20,7 @@
>>  #include "hw/block/block.h"
>>  #include "hw/qdev-properties.h"
>>  #include "sysemu/blockdev.h"
>> +#include "sysemu/sysemu.h"
>>  #include "hw/virtio/virtio-blk.h"
>>  #include "dataplane/virtio-blk.h"
>>  #include "scsi/constants.h"
>> diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
>> index 6de9689a30..28e868c021 100644
>> --- a/hw/display/virtio-gpu.c
>> +++ b/hw/display/virtio-gpu.c
>> @@ -17,6 +17,7 @@
>>  #include "ui/console.h"
>>  #include "trace.h"
>>  #include "sysemu/dma.h"
>> +#include "sysemu/sysemu.h"
>>  #include "hw/virtio/virtio.h"
>>  #include "migration/qemu-file-types.h"
>>  #include "hw/virtio/virtio-gpu.h"
>> diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
>> index b59df4e3b8..50f20d8206 100644
>> --- a/hw/misc/macio/macio.c
>> +++ b/hw/misc/macio/macio.c
>> @@ -35,6 +35,7 @@
>>  #include "hw/char/escc.h"
>>  #include "hw/misc/macio/macio.h"
>>  #include "hw/intc/heathrow_pic.h"
>> +#include "sysemu/sysemu.h"
>>  #include "trace.h"
>>
>>  /* Note: this code is strongly inspirated from the corresponding code
>> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
>> index 4113729fcf..9f11422337 100644
>> --- a/hw/net/virtio-net.c
>> +++ b/hw/net/virtio-net.c
>> @@ -31,6 +31,7 @@
>>  #include "hw/virtio/virtio-access.h"
>>  #include "migration/misc.h"
>>  #include "standard-headers/linux/ethtool.h"
>> +#include "sysemu/sysemu.h"
>>  #include "trace.h"
>>
>>  #define VIRTIO_NET_VM_VERSION    11
>> diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
>> index 22c6878b84..0c5a5b60bd 100644
>> --- a/hw/s390x/s390-ccw.c
>> +++ b/hw/s390x/s390-ccw.c
>> @@ -19,6 +19,7 @@
>>  #include "hw/s390x/css.h"
>>  #include "hw/s390x/css-bridge.h"
>>  #include "hw/s390x/s390-ccw.h"
>> +#include "sysemu/sysemu.h"
>>
>>  IOInstEnding s390_ccw_cmd_request(SubchDev *sch)
>>  {
>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>> index a543b64e56..434d933ec9 100644
>> --- a/hw/s390x/s390-virtio-ccw.c
>> +++ b/hw/s390x/s390-virtio-ccw.c
>> @@ -40,6 +40,7 @@
>>  #include "hw/nmi.h"
>>  #include "hw/qdev-properties.h"
>>  #include "hw/s390x/tod.h"
>> +#include "sysemu/sysemu.h"
>>
>>  S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
>>  {
>> diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
>> index db785e6001..cb8e8d1f36 100644
>> --- a/hw/scsi/scsi-bus.c
>> +++ b/hw/scsi/scsi-bus.c
>> @@ -10,6 +10,7 @@
>>  #include "scsi/constants.h"
>>  #include "sysemu/block-backend.h"
>>  #include "sysemu/blockdev.h"
>> +#include "sysemu/sysemu.h"
>>  #include "trace.h"
>>  #include "sysemu/dma.h"
>>  #include "qemu/cutils.h"
>> diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
>> index cd5cf1679d..c693fc748a 100644
>> --- a/hw/scsi/vhost-scsi.c
>> +++ b/hw/scsi/vhost-scsi.c
>> @@ -30,6 +30,7 @@
>>  #include "hw/fw-path-provider.h"
>>  #include "hw/qdev-properties.h"
>>  #include "qemu/cutils.h"
>> +#include "sysemu/sysemu.h"
>>
>>  /* Features supported by host kernel. */
>>  static const int kernel_feature_bits[] = {
>> diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c
>> index a5be128b54..31c9d34637 100644
>> --- a/hw/scsi/vhost-user-scsi.c
>> +++ b/hw/scsi/vhost-user-scsi.c
>> @@ -28,6 +28,7 @@
>>  #include "hw/virtio/virtio.h"
>>  #include "hw/virtio/virtio-access.h"
>>  #include "chardev/char-fe.h"
>> +#include "sysemu/sysemu.h"
>>
>>  /* Features supported by the host application */
>>  static const int user_feature_bits[] = {
>> diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
>> index d7d1ecd45d..e76c939751 100644
>> --- a/hw/usb/hcd-ehci.c
>> +++ b/hw/usb/hcd-ehci.c
>> @@ -35,6 +35,7 @@
>>  #include "trace.h"
>>  #include "qemu/error-report.h"
>>  #include "qemu/main-loop.h"
>> +#include "sysemu/sysemu.h"
>>
>>  #define FRAME_TIMER_FREQ 1000
>>  #define FRAME_TIMER_NS   (NANOSECONDS_PER_SECOND / FRAME_TIMER_FREQ)
>> diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h
>> index fdbcfdcbeb..0298238f0b 100644
>> --- a/hw/usb/hcd-ehci.h
>> +++ b/hw/usb/hcd-ehci.h
>> @@ -21,7 +21,6 @@
>>  #include "qemu/timer.h"
>>  #include "hw/usb.h"
>>  #include "sysemu/dma.h"
>> -#include "sysemu/sysemu.h"
>>  #include "hw/pci/pci.h"
>>  #include "hw/sysbus.h"
>>
>> diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
>> index 34b4619fd3..c9c2414b7b 100644
>> --- a/hw/virtio/virtio-rng.c
>> +++ b/hw/virtio/virtio-rng.c
>> @@ -17,6 +17,7 @@
>>  #include "hw/qdev-properties.h"
>>  #include "hw/virtio/virtio-rng.h"
>>  #include "sysemu/rng.h"
>> +#include "sysemu/sysemu.h"
>>  #include "qom/object_interfaces.h"
>>  #include "trace.h"
>>
>> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
>> index 721dcccc96..0ce142bc04 100644
>> --- a/hw/virtio/virtio.c
>> +++ b/hw/virtio/virtio.c
>> @@ -26,6 +26,7 @@
>>  #include "hw/qdev-properties.h"
>>  #include "hw/virtio/virtio-access.h"
>>  #include "sysemu/dma.h"
>> +#include "sysemu/sysemu.h"
>
> I'm confused - why do these now need to include sysemu.h if the only
> change to sysemu.h is to drop:
>
>  typedef struct vm_change_state_entry VMChangeStateEntry;
>
> in favour of the typedefs header?

The patch drops #include "sysemu/sysemu.h" from headers that only need
VMChangeStateEntry.  A bunch of .c that need more no longer get it from
these headers, and need to be patched up.

I'll amend the commit message to spell this out more clearly.


  reply	other threads:[~2019-08-07 20:19 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-06 15:14 [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 01/29] include: Make headers more self-contained Markus Armbruster
2019-08-07 15:03   ` Alex Bennée
2019-08-07 19:45     ` Markus Armbruster
2019-08-07 21:28       ` Alex Bennée
2019-08-08  4:21         ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 02/29] Include generated QAPI headers less Markus Armbruster
2019-08-06 21:50   ` Eric Blake
2019-08-07  9:53   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 03/29] qapi: Split error.json off common.json Markus Armbruster
2019-08-07  9:57   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class Markus Armbruster
2019-08-07 10:11   ` Philippe Mathieu-Daudé
2019-08-07 10:16     ` Paolo Bonzini
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 05/29] queue: Drop superfluous #include qemu/atomic.h Markus Armbruster
2019-08-07 10:21   ` Philippe Mathieu-Daudé
2019-08-07 15:40   ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 06/29] trace: Eliminate use of TARGET_FMT_plx Markus Armbruster
2019-08-07  9:29   ` Stefan Hajnoczi
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 07/29] trace: Do not include qom/cpu.h into generated trace.h Markus Armbruster
2019-08-07  9:32   ` Stefan Hajnoczi
2019-08-07 10:30     ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 08/29] Include sysemu/reset.h a lot less Markus Armbruster
2019-08-07 10:38   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h " Markus Armbruster
2019-08-07 12:25   ` Philippe Mathieu-Daudé
2019-08-07 17:30     ` Philippe Mathieu-Daudé
2019-08-07 19:46       ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 10/29] ide: Include hw/ide/internal a bit less outside hw/ide/ Markus Armbruster
2019-08-06 21:40   ` John Snow
2019-08-07 12:29     ` Philippe Mathieu-Daudé
2019-08-07 14:56       ` John Snow
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 11/29] typedefs: Separate incomplete types and function types Markus Armbruster
2019-08-07 12:31   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 12/29] Include hw/irq.h a lot less Markus Armbruster
2019-08-07 13:04   ` Philippe Mathieu-Daudé
2019-08-07 21:06     ` Eric Blake
2019-08-08  4:27       ` Markus Armbruster
2019-08-08  5:09         ` Richard Henderson
2019-08-08 11:48         ` Eric Blake
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 13/29] Clean up inclusion of exec/cpu-common.h Markus Armbruster
2019-08-07 14:20   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 14/29] migration: Move the VMStateDescription typedef to typedefs.h Markus Armbruster
2019-08-07 15:22   ` Alex Bennée
2019-08-07 17:13   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 15/29] Include migration/vmstate.h less Markus Armbruster
2019-08-07 14:44   ` Philippe Mathieu-Daudé
2019-08-08 11:36     ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 16/29] Include exec/memory.h slightly less Markus Armbruster
2019-08-07 14:50   ` Philippe Mathieu-Daudé
2019-08-08 12:16     ` Markus Armbruster
2019-08-08 12:36       ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 17/29] Include qom/object.h " Markus Armbruster
2019-08-07 17:11   ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 18/29] Include hw/hw.h exactly where needed Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 19/29] Include qemu/queue.h slightly less Markus Armbruster
2019-08-07 15:57   ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 20/29] Include qemu/main-loop.h less Markus Armbruster
2019-08-07 13:18   ` Philippe Mathieu-Daudé
2019-08-07 13:49     ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 21/29] Include hw/qdev-properties.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 22/29] Include hw/boards.h a bit less Markus Armbruster
2019-08-06 21:37   ` Alistair Francis
2019-08-07 17:26   ` Philippe Mathieu-Daudé
2019-08-07 17:57     ` Eduardo Habkost
2019-08-07 18:05       ` Philippe Mathieu-Daudé
2019-08-07 18:19         ` Eduardo Habkost
2019-08-08 11:57           ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 23/29] numa: Don't include hw/boards.h into sysemu/numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 24/29] Include sysemu/hostmem.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 25/29] numa: Move remaining NUMA declarations from sysemu.h to numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 26/29] Clean up inclusion of sysemu/sysemu.h Markus Armbruster
2019-08-06 21:36   ` Alistair Francis
2019-08-07 15:47   ` Alex Bennée
2019-08-07 20:10     ` Markus Armbruster
2019-08-08 14:21       ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less Markus Armbruster
2019-08-06 21:38   ` Alistair Francis
2019-08-07  9:28   ` Stefan Hajnoczi
2019-08-07 13:24   ` Philippe Mathieu-Daudé
2019-08-07 13:51     ` Markus Armbruster
2019-08-07 17:31   ` Philippe Mathieu-Daudé
2019-08-07 20:16     ` Markus Armbruster
2019-08-07 21:05       ` Philippe Mathieu-Daudé
2019-08-08  4:48         ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Markus Armbruster
2019-08-08  5:38           ` [Qemu-devel] Is network backend netmap worth keeping? Jason Wang
2019-08-08 13:36             ` Philippe Mathieu-Daudé
2019-08-08 17:27               ` Vincenzo Maffione
2019-08-08  7:27           ` Giuseppe Lettieri
2019-08-08 11:52             ` Markus Armbruster
2019-08-12 12:32               ` Philippe Mathieu-Daudé
2019-08-12 12:34                 ` Philippe Mathieu-Daudé
2019-09-02 20:50                 ` Giuseppe Lettieri
2019-09-13 13:04                   ` Markus Armbruster
2019-09-16 14:45                     ` Giuseppe Lettieri
2019-09-23 11:21                       ` Markus Armbruster
2019-10-04 13:02                         ` [PATCH] netmap: support git-submodule build otption Giuseppe Lettieri
2019-10-04 13:08                           ` Peter Maydell
2019-10-07 10:49                             ` Markus Armbruster
2019-10-07 11:58                               ` Peter Maydell
2019-10-07 12:35                                 ` Markus Armbruster
2019-10-07 12:39                                   ` Peter Maydell
2019-10-08  9:17                                     ` Daniel P. Berrangé
2019-10-08 11:57                                       ` Markus Armbruster
2019-10-07 15:37                                   ` Thomas Huth
2019-10-07 17:53                                     ` Markus Armbruster
2019-10-07 15:44                                 ` Markus Armbruster
2019-08-08  8:12           ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Stefano Garzarella
2019-10-07 18:21           ` Is network backend vde worth keeping? (was: Is network backend netmap worth keeping?) Markus Armbruster
2019-10-09  9:13             ` Thomas Huth
2019-10-11  6:55               ` Thomas Huth
2019-10-10 17:07             ` Julia Suvorova
2019-10-10 17:39             ` Daniel P. Berrangé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 28/29] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Markus Armbruster
2019-08-07 15:26   ` Alex Bennée
2019-08-07 20:19     ` Markus Armbruster [this message]
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 29/29] sysemu: Split sysemu/runstate.h off sysemu/sysemu.h Markus Armbruster
2019-08-07  4:40   ` Markus Armbruster
2019-08-07 10:15     ` Paolo Bonzini
2019-08-06 16:02 ` [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers no-reply
2019-08-06 16:56 ` no-reply
2019-08-07 16:32 ` Alex Bennée
2019-08-07 20:21   ` Markus Armbruster
2019-08-08 13:21   ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875zn8raoa.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).