[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less |
Date: |
Wed, 7 Aug 2019 23:05:36 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 8/7/19 10:16 PM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <address@hidden> writes:
>
>> On 8/6/19 5:14 PM, Markus Armbruster wrote:
>>> In my "build everything" tree, changing sysemu/sysemu.h triggers a
>>> recompile of some 5400 out of 6600 objects (not counting tests and
>>> objects that don't depend on qemu/osdep.h).
>>>
>>> hw/qdev-core.h includes sysemu/sysemu.h since recent commit e965ffa70a
>>> "qdev: add qdev_add_vm_change_state_handler()". This is a bad idea:
>>> hw/qdev-core.h is widely included.
>>>
>>> Move the declaration of qdev_add_vm_change_state_handler() to
>>> sysemu/sysemu.h, and drop the problematic include from hw/qdev-core.h.
>>>
>>> Touching sysemu/sysemu.h now recompiles some 1800 objects.
>>> qemu/uuid.h also drops from 5400 to 1800. A few more headers show
>>> smaller improvement: qemu/notify.h drops from 5600 to 5200,
>>> qemu/timer.h from 5600 to 4500, and qapi/qapi-types-run-state.h from
>>> 5500 to 5000.
>>>
>>> Cc: Stefan Hajnoczi <address@hidden>
>>> Signed-off-by: Markus Armbruster <address@hidden>
>>> ---
>>> accel/kvm/kvm-all.c | 1 +
>>> backends/hostmem.c | 1 +
>>> cpus.c | 1 +
>>> hw/arm/allwinner-a10.c | 1 +
>>> hw/arm/aspeed_soc.c | 1 +
>>> hw/arm/kzm.c | 1 +
>>> hw/arm/msf2-soc.c | 1 +
>>> hw/arm/stm32f205_soc.c | 1 +
>>> hw/char/serial-isa.c | 1 +
>>> hw/char/xen_console.c | 1 +
>>> hw/core/numa.c | 1 +
>>> hw/core/vm-change-state-handler.c | 1 +
>>> hw/display/qxl-render.c | 1 +
>>> hw/i386/xen/xen-hvm.c | 1 +
>>> hw/i386/xen/xen-mapcache.c | 1 +
>>> hw/intc/ioapic.c | 1 +
>>> hw/pci/pci.c | 1 +
>>> hw/riscv/sifive_e.c | 1 +
>>> hw/riscv/sifive_u.c | 1 +
>>> hw/riscv/spike.c | 1 +
>>> hw/riscv/virt.c | 1 +
>>> hw/sparc64/niagara.c | 2 +-
>>> hw/usb/hcd-ehci.h | 1 +
>>> hw/xen/xen-common.c | 1 +
>>> hw/xen/xen_devconfig.c | 1 +
>>> hw/xenpv/xen_machine_pv.c | 1 +
>>> include/hw/qdev-core.h | 5 -----
>>> include/sysemu/sysemu.h | 3 +++
>>> migration/global_state.c | 1 +
>>> migration/migration.c | 1 +
>>> migration/savevm.c | 1 +
>>> 31 files changed, 32 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
>>> index e1a44eccf5..fc38d0b9e3 100644
>>> --- a/accel/kvm/kvm-all.c
>>> +++ b/accel/kvm/kvm-all.c
>>> @@ -29,6 +29,7 @@
>>> #include "exec/gdbstub.h"
>>> #include "sysemu/kvm_int.h"
>>> #include "sysemu/cpus.h"
>>> +#include "sysemu/sysemu.h"
>>> #include "qemu/bswap.h"
>>> #include "exec/memory.h"
>>> #include "exec/ram_addr.h"
>>
>> Include missing in net/netmap.c:
>>
>> CC net/netmap.o
>> net/netmap.c: In function 'netmap_update_fd_handler':
>> net/netmap.c:108:5: error: implicit declaration of function
>> 'qemu_set_fd_handler' [-Werror=implicit-function-declaration]
>> qemu_set_fd_handler(s->nmd->fd,
>> ^~~~~~~~~~~~~~~~~~~
>> net/netmap.c:108:5: error: nested extern declaration of
>> 'qemu_set_fd_handler' [-Werror=nested-externs]
>
> Can you tell me offhand what I have to install so configure enables
> CONFIG_NETMAP?
The steps are listed in tests/docker/dockerfiles/debian-amd64.docker,
but you can get to this point running:
$ make docker-image-debian-amd64 V=1 DEBUG=1
This will build the docker image with netmap (so you don't have to mess
with your workstation setup), then build QEMU within the image.
- Re: [Qemu-devel] [PATCH v2 26/29] Clean up inclusion of sysemu/sysemu.h, (continued)
[Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Markus Armbruster, 2019/08/06
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Alistair Francis, 2019/08/06
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Stefan Hajnoczi, 2019/08/07
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Philippe Mathieu-Daudé, 2019/08/07
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Philippe Mathieu-Daudé, 2019/08/07
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less, Markus Armbruster, 2019/08/07
- Re: [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less,
Philippe Mathieu-Daudé <=
- [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
- Re: [Qemu-devel] Is network backend netmap worth keeping?, Jason Wang, 2019/08/08
- Re: [Qemu-devel] Is network backend netmap worth keeping?, Philippe Mathieu-Daudé, 2019/08/08
- Re: [Qemu-devel] Is network backend netmap worth keeping?, Vincenzo Maffione, 2019/08/08
Re: [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less), Stefano Garzarella, 2019/08/08
Re: [Qemu-devel] Is network backend netmap worth keeping?, Giuseppe Lettieri, 2019/08/08
Re: [Qemu-devel] Is network backend netmap worth keeping?, Markus Armbruster, 2019/08/08
Re: [Qemu-devel] Is network backend netmap worth keeping?, Philippe Mathieu-Daudé, 2019/08/12
Re: [Qemu-devel] Is network backend netmap worth keeping?, Philippe Mathieu-Daudé, 2019/08/12
[Qemu-devel] [PATCH v2 19/29] Include qemu/queue.h slightly less, Markus Armbruster, 2019/08/06