All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 20/29] Include qemu/main-loop.h less
Date: Wed, 7 Aug 2019 15:18:20 +0200	[thread overview]
Message-ID: <1f71990a-cc06-1b50-e138-9975e1bde9c2@redhat.com> (raw)
In-Reply-To: <20190806151435.10740-21-armbru@redhat.com>

On 8/6/19 5:14 PM, Markus Armbruster wrote:
> In my "build everything" tree, changing qemu/main-loop.h triggers a
> recompile of some 5600 out of 6600 objects (not counting tests and
> objects that don't depend on qemu/osdep.h).  It includes block/aio.h,
> which in turn includes qemu/event_notifier.h, qemu/notify.h,
> qemu/processor.h, qemu/qsp.h, qemu/queue.h, qemu/thread-posix.h,
> qemu/thread.h, qemu/timer.h, and a few more.
> 
> Include qemu/main-loop.h only where it's needed.  Touching it now
> recompiles only some 1700 objects.  For block/aio.h and
> qemu/event_notifier.h, these numbers drop from 5600 to 2800.  For the
> others, they shrink only slightly.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  accel/kvm/kvm-all.c             | 1 +
>  block.c                         | 1 +
>  block/block-backend.c           | 1 +
>  block/create.c                  | 1 +
>  block/io.c                      | 1 +
>  block/nbd.c                     | 1 +
>  block/nfs.c                     | 1 +
>  block/nvme.c                    | 1 +
>  block/qcow2.c                   | 1 +
>  block/qed.c                     | 1 +
>  block/sheepdog.c                | 1 +
>  block/throttle-groups.c         | 1 +
>  blockdev.c                      | 1 +
>  blockjob.c                      | 1 +
>  chardev/baum.c                  | 1 +
>  chardev/char-pipe.c             | 1 +
>  chardev/char-win-stdio.c        | 1 +
>  chardev/char-win.c              | 1 +
>  dump/dump.c                     | 1 +
>  fsdev/qemu-fsdev-throttle.c     | 1 +
>  fsdev/qemu-fsdev-throttle.h     | 1 -
>  hw/9pfs/9p.c                    | 1 +
>  hw/9pfs/codir.c                 | 1 +
>  hw/9pfs/cofile.c                | 1 +
>  hw/9pfs/cofs.c                  | 1 +
>  hw/9pfs/coth.c                  | 1 +
>  hw/9pfs/coth.h                  | 1 -
>  hw/9pfs/coxattr.c               | 1 +
>  hw/9pfs/xen-9p-backend.c        | 1 +
>  hw/arm/omap1.c                  | 1 +
>  hw/block/dataplane/virtio-blk.c | 1 +
>  hw/block/dataplane/xen-block.c  | 1 +
>  hw/block/fdc.c                  | 1 +
>  hw/block/xen-block.c            | 1 +
>  hw/char/virtio-serial-bus.c     | 1 +
>  hw/core/machine-qmp-cmds.c      | 1 +
>  hw/display/qxl.c                | 1 +
>  hw/dma/etraxfs_dma.c            | 1 +
>  hw/i386/intel_iommu.c           | 1 +
>  hw/i386/xen/xen-hvm.c           | 1 +
>  hw/ide/ahci.c                   | 1 +
>  hw/ide/core.c                   | 1 +
>  hw/ide/qdev.c                   | 1 +
>  hw/intc/s390_flic.c             | 1 +
>  hw/m68k/mcf5206.c               | 1 +
>  hw/m68k/mcf5208.c               | 1 +
>  hw/misc/imx6_src.c              | 1 +
>  hw/net/fsl_etsec/etsec.c        | 1 +
>  hw/net/lan9118.c                | 1 +
>  hw/net/vhost_net.c              | 2 +-
>  hw/net/virtio-net.c             | 1 +
>  hw/ppc/ppc.c                    | 1 +
>  hw/ppc/ppc440_uc.c              | 1 +
>  hw/ppc/spapr_hcall.c            | 1 +
>  hw/ppc/spapr_rng.c              | 1 +
>  hw/scsi/mptsas.c                | 1 +
>  hw/scsi/scsi-disk.c             | 1 +
>  hw/scsi/vmw_pvscsi.c            | 1 +
>  hw/timer/allwinner-a10-pit.c    | 1 +
>  hw/timer/altera_timer.c         | 1 +
>  hw/timer/etraxfs_timer.c        | 1 +
>  hw/timer/exynos4210_rtc.c       | 1 +
>  hw/timer/milkymist-sysctl.c     | 1 +
>  hw/usb/dev-uas.c                | 1 +
>  hw/usb/hcd-ehci.c               | 1 +
>  hw/usb/host-libusb.c            | 1 +
>  hw/usb/xen-usb.c                | 1 +
>  hw/vfio/ccw.c                   | 1 +
>  hw/vfio/common.c                | 1 +
>  hw/vfio/pci.c                   | 1 +
>  hw/vfio/platform.c              | 1 +
>  hw/virtio/vhost-backend.c       | 1 +
>  hw/virtio/vhost-user.c          | 1 +
>  hw/virtio/virtio-crypto.c       | 1 +
>  hw/virtio/virtio-pmem.c         | 1 +
>  hw/virtio/virtio.c              | 1 +
>  hw/xen/xen-legacy-backend.c     | 1 +
>  hw/xen/xen_pvdev.c              | 1 +
>  include/block/block_int.h       | 1 -
>  include/chardev/char-fe.h       | 1 +
>  include/chardev/char-io.h       | 1 +
>  include/chardev/char.h          | 2 +-
>  include/hw/scsi/scsi.h          | 1 +
>  include/sysemu/sysemu.h         | 1 -
>  memory.c                        | 1 +
>  migration/block.c               | 1 +
>  migration/colo.c                | 1 +
>  migration/migration.c           | 1 +
>  migration/savevm.c              | 1 +
>  nbd/nbd-internal.h              | 1 -
>  net/can/can_socketcan.c         | 1 +
>  net/tap-win32.c                 | 1 +
>  net/tap.c                       | 1 +
>  qemu-img.c                      | 1 +
>  qom/cpu.c                       | 1 +
>  replay/replay-internal.c        | 1 +
>  target/arm/helper-a64.c         | 1 +
>  target/arm/helper.c             | 2 ++
>  target/arm/kvm.c                | 1 +
>  target/arm/kvm64.c              | 1 +
>  target/arm/m_helper.c           | 2 ++
>  target/arm/psci.c               | 2 ++
>  target/i386/kvm.c               | 1 +
>  target/lm32/op_helper.c         | 1 +
>  target/mips/kvm.c               | 1 +
>  target/ppc/int_helper.c         | 2 ++
>  target/ppc/kvm.c                | 1 +
>  target/ppc/machine.c            | 1 +
>  target/ppc/mem_helper.c         | 2 ++
>  target/ppc/misc_helper.c        | 2 ++
>  target/ppc/mmu_helper.c         | 2 ++
>  target/ppc/translate.c          | 1 +
>  target/s390x/kvm.c              | 1 +
>  tcg/tcg-op-gvec.c               | 1 +
>  tests/test-bdrv-drain.c         | 1 +
>  tests/test-bdrv-graph-mod.c     | 1 +
>  tests/test-block-backend.c      | 1 +
>  tests/test-block-iothread.c     | 1 +
>  tests/test-image-locking.c      | 1 +
>  tests/test-replication.c        | 1 +
>  tests/test-throttle.c           | 1 +
>  ui/input-linux.c                | 1 +
>  ui/spice-core.c                 | 1 +
>  ui/spice-display.c              | 1 +
>  ui/vnc-auth-sasl.h              | 1 -
>  ui/vnc.c                        | 1 +
>  util/oslib-posix.c              | 1 +
>  127 files changed, 128 insertions(+), 8 deletions(-)
> 
[...]
> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
> index 77f5df59b0..ac18a1184a 100644
> --- a/include/sysemu/sysemu.h
> +++ b/include/sysemu/sysemu.h
> @@ -5,7 +5,6 @@
>  #include "qapi/qapi-types-run-state.h"
>  #include "qemu/timer.h"
>  #include "qemu/notify.h"
> -#include "qemu/main-loop.h"
>  #include "qemu/bitmap.h"
>  #include "qemu/uuid.h"
>  #include "qom/object.h"
[...]

You missed to adapt ui/cocoa.m, building fails on OSX:

  OBJC    ui/cocoa.o
ui/cocoa.m:141:19: warning: implicit declaration of function
'qemu_mutex_iothread_locked' is invalid in C99
[-Wimplicit-function-declaration]
    bool locked = qemu_mutex_iothread_locked();
                  ^
ui/cocoa.m:141:19: warning: this function declaration is not a prototype
[-Wstrict-prototypes]
ui/cocoa.m:143:9: warning: implicit declaration of function
'qemu_mutex_lock_iothread' is invalid in C99
[-Wimplicit-function-declaration]
        qemu_mutex_lock_iothread();
        ^
ui/cocoa.m:143:9: warning: this function declaration is not a prototype
[-Wstrict-prototypes]
ui/cocoa.m:147:9: warning: implicit declaration of function
'qemu_mutex_unlock_iothread' is invalid in C99
[-Wimplicit-function-declaration]
        qemu_mutex_unlock_iothread();
        ^
ui/cocoa.m:147:9: warning: this function declaration is not a prototype
[-Wstrict-prototypes]
ui/cocoa.m:153:19: warning: implicit declaration of function
'qemu_mutex_iothread_locked' is invalid in C99
[-Wimplicit-function-declaration]
    bool locked = qemu_mutex_iothread_locked();
                  ^
ui/cocoa.m:157:9: warning: implicit declaration of function
'qemu_mutex_lock_iothread' is invalid in C99
[-Wimplicit-function-declaration]
        qemu_mutex_lock_iothread();
        ^
ui/cocoa.m:161:9: warning: implicit declaration of function
'qemu_mutex_unlock_iothread' is invalid in C99
[-Wimplicit-function-declaration]
        qemu_mutex_unlock_iothread();
        ^


  reply	other threads:[~2019-08-07 13:18 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é [this message]
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
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=1f71990a-cc06-1b50-e138-9975e1bde9c2@redhat.com \
    --to=philmd@redhat.com \
    --cc=armbru@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.