Ping
>On Mon, 17 Aug 2015 10:09:33 +0200
>Marc Marí <mar...@redhat.com> wrote:
>
> The current module infrastructure has been improved to enable dynamic
> module loading.
>
> This reduces the load time for very simple guests. For the following
> configuration (very loaded)
>
> ./configure --enable-sdl --enable-gtk --enable-vte --enable-curses \
> --enable-vnc --enable-vnc-{jpeg,tls,sasl,png} --enable-virtfs \
> --enable-brlapi --enable-curl --enable-fdt --enable-bluez \
> --enable-kvm --enable-rdma --enable-uuid --enable-vde \
> --enable-linux-aio --enable-cap-ng --enable-attr
> --enable-vhost-net \ --enable-vhost-scsi --enable-spice --enable-rbd
> --enable-libiscsi \ --enable-smartcard-nss --enable-guest-agent
> --enable-libusb \ --enable-usb-redir --enable-lzo --enable-snappy
> --enable-bzip2 \ --enable-seccomp --enable-coroutine-pool
> --enable-glusterfs \ --enable-tpm --enable-libssh2 --enable-vhdx
> --enable-numa \ --enable-tcmalloc --target-list=x86_64-softmmu
>
> With modules disabled, there are 142 libraries loaded at startup.
> Time is the following:
> LD time: 0.065 seconds
> QEMU time: 0.02 seconds
> Total time: 0.085 seconds
>
> With this patch series and modules enabled, there are 128 libraries
> loaded at startup. Time is the following:
> LD time: 0.02 seconds
> QEMU time: 0.02 seconds
> Total time: 0.04 seconds
>
> Where LD time is the time between the program startup and the jump to
> main, and QEMU time is the time between the start of main and the
> first kvm_entry.
>
> These results are just with a few block drivers, that were already a
> module. Adding more modules (block or not block) should be easy, and
> will reduce the load time even more.
>
> Marc Marí (2):
> Add dynamic module loading for block drivers
> Add dynamic generation of module_block.h
>
> .gitignore | 1 +
> Makefile | 10 ++-
> block.c | 73 +++++++++++++++++++++-
> configure | 2 +-
> include/qemu/module.h | 3 +
> include/qemu/module_block.h | 89 +++++++++++++++++++++++++++
> scripts/modules/module_block.py | 132
> ++++++++++++++++++++++++++++++++++++++++
> util/module.c | 38 ++++-------- 8 files changed,
> 314 insertions(+), 34 deletions(-) create mode 100644
> include/qemu/module_block.h create mode 100755
> scripts/modules/module_block.py
>