From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Laurent Vivier" <lvivier@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>, "Thomas Huth" <thuth@redhat.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
qemu-block@nongnu.org, "David Hildenbrand" <david@redhat.com>,
"Peter Lieven" <pl@kamp.de>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Max Reitz" <mreitz@redhat.com>,
"Halil Pasic" <pasic@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Samuel Thibault" <samuel.thibault@ens-lyon.org>
Subject: [PATCH v3 00/24] modules: add meta-data database
Date: Fri, 18 Jun 2021 06:53:29 +0200 [thread overview]
Message-ID: <20210618045353.2510174-1-kraxel@redhat.com> (raw)
This patch series adds support for module meta-data. Today this is
either hard-coded in qemu (see qemu_load_module_for_opts) or handled
with manually maintained lists in util/module (see module_deps[] and
qom_modules[]). This series replaced that scheme with annotation
macros, so the meta-data can go into the module source code and -- for
example -- the module_obj() annotations can go next to the TypeInfo
struct for the object class.
Patches 1-3 put the infrastructure in place: Add the annotation macros,
add a script to collect the meta-data, add a script to compile the
meta-data into C source code which we can then add to qemu.
Patches 4-12 add annotations macros to the modules we have.
Patches 13-15 put the modinfo database into use and remove the
module_deps[] and qom_modules[] lists.
Patch 16 adds two tracepoints for easier trouble-shooting.
Patches 17-19 add support for target-specific modules.
Patches 20-14 start building accelerators modular. So far it is
only qtest (all archs) and a small fraction of tcg (x86 only).
take care,
Gerd
Gerd Hoffmann (24):
modules: add modinfo macros
modules: collect module meta-data
modules: generate modinfo.c
modules: add qxl module annotations
modules: add virtio-gpu module annotations
modules: add chardev module annotations
modules: add audio module annotations
modules: add usb-redir module annotations
modules: add ccid module annotations
modules: add ui module annotations
modules: add s390x module annotations
modules: add block module annotations
modules: use modinfo for dependencies
modules: use modinfo for qom load
modules: use modinfo for qemu opts load
modules: add tracepoints
modules: check arch and block load on mismatch
modules: check arch on qom lookup
modules: target-specific module build infrastructure
accel: autoload modules
accel: add qtest module annotations
accel: build qtest modular
accel: add tcg module annotations
accel: build tcg modular
scripts/modinfo-collect.py | 67 +++++++++++
scripts/modinfo-generate.py | 84 ++++++++++++++
include/qemu/module.h | 43 +++++++
accel/accel-common.c | 2 +-
accel/accel-softmmu.c | 2 +-
accel/qtest/qtest.c | 2 +
accel/tcg/tcg-accel-ops.c | 1 +
accel/tcg/tcg-all.c | 1 +
audio/spiceaudio.c | 2 +
block/iscsi-opts.c | 1 +
chardev/baum.c | 1 +
chardev/spice.c | 4 +
hw/display/qxl.c | 4 +
hw/display/vhost-user-gpu-pci.c | 1 +
hw/display/vhost-user-gpu.c | 1 +
hw/display/vhost-user-vga.c | 1 +
hw/display/virtio-gpu-base.c | 1 +
hw/display/virtio-gpu-gl.c | 3 +
hw/display/virtio-gpu-pci-gl.c | 3 +
hw/display/virtio-gpu-pci.c | 2 +
hw/display/virtio-gpu.c | 1 +
hw/display/virtio-vga-gl.c | 3 +
hw/display/virtio-vga.c | 2 +
hw/s390x/virtio-ccw-gpu.c | 3 +
hw/usb/ccid-card-emulated.c | 1 +
hw/usb/ccid-card-passthru.c | 1 +
hw/usb/redirect.c | 1 +
softmmu/vl.c | 24 ++--
stubs/module-opts.c | 4 -
ui/egl-headless.c | 4 +
ui/gtk.c | 4 +
ui/sdl2.c | 4 +
ui/spice-app.c | 3 +
ui/spice-core.c | 5 +
util/module.c | 200 ++++++++++++++++++--------------
accel/qtest/meson.build | 8 +-
accel/tcg/meson.build | 5 +-
meson.build | 76 ++++++++++++
util/trace-events | 4 +
39 files changed, 462 insertions(+), 117 deletions(-)
create mode 100755 scripts/modinfo-collect.py
create mode 100755 scripts/modinfo-generate.py
--
2.31.1
next reply other threads:[~2021-06-18 4:56 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-18 4:53 Gerd Hoffmann [this message]
2021-06-18 4:53 ` [PATCH v3 01/24] modules: add modinfo macros Gerd Hoffmann
2021-06-18 17:46 ` Paolo Bonzini
2021-06-18 4:53 ` [PATCH v3 02/24] modules: collect module meta-data Gerd Hoffmann
2021-06-18 16:09 ` Paolo Bonzini
2021-06-21 12:52 ` Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 03/24] modules: generate modinfo.c Gerd Hoffmann
2021-06-22 18:19 ` Jose R. Ziviani
2021-06-22 20:43 ` Jose R. Ziviani
2021-06-18 4:53 ` [PATCH v3 04/24] modules: add qxl module annotations Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 05/24] modules: add virtio-gpu " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 06/24] modules: add chardev " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 07/24] modules: add audio " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 08/24] modules: add usb-redir " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 09/24] modules: add ccid " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 10/24] modules: add ui " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 11/24] modules: add s390x " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 12/24] modules: add block " Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 13/24] modules: use modinfo for dependencies Gerd Hoffmann
2021-06-18 17:48 ` Paolo Bonzini
2021-06-18 4:53 ` [PATCH v3 14/24] modules: use modinfo for qom load Gerd Hoffmann
2021-06-18 17:49 ` Paolo Bonzini
2021-06-18 4:53 ` [PATCH v3 15/24] modules: use modinfo for qemu opts load Gerd Hoffmann
2021-06-18 17:50 ` Paolo Bonzini
2021-06-18 4:53 ` [PATCH v3 16/24] modules: add tracepoints Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 17/24] modules: check arch and block load on mismatch Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 18/24] modules: check arch on qom lookup Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 19/24] modules: target-specific module build infrastructure Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 20/24] accel: autoload modules Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 21/24] accel: add qtest module annotations Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 22/24] accel: build qtest modular Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 23/24] accel: add tcg module annotations Gerd Hoffmann
2021-06-18 4:53 ` [PATCH v3 24/24] accel: build tcg modular Gerd Hoffmann
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=20210618045353.2510174-1-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=crosa@redhat.com \
--cc=david@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mreitz@redhat.com \
--cc=mst@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=pl@kamp.de \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=ronniesahlberg@gmail.com \
--cc=samuel.thibault@ens-lyon.org \
--cc=thuth@redhat.com \
/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.