All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/34] modules: add meta-data database
@ 2021-06-24 10:38 Gerd Hoffmann
  2021-06-24 10:38 ` [PATCH v4 01/34] modules: add modinfo macros Gerd Hoffmann
                   ` (35 more replies)
  0 siblings, 36 replies; 44+ messages in thread
From: Gerd Hoffmann @ 2021-06-24 10:38 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Samuel Thibault, qemu-block,
	David Hildenbrand, Markus Armbruster, Halil Pasic,
	Christian Borntraeger, Marc-André Lureau, Laurent Vivier,
	Thomas Huth, Eduardo Habkost, Richard Henderson, Peter Lieven,
	Greg Kurz, Dr. David Alan Gilbert, qemu-s390x, Ronnie Sahlberg,
	Cleber Rosa, David Gibson, Kevin Wolf, Daniel P. Berrangé,
	Cornelia Huck, Max Reitz, qemu-ppc, Paolo Bonzini

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.

Patch 4 - check module dependencies (Jose, new in v4).

Patches 5-13 add annotations macros to the modules we have.

Patches 14-16 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 18-20 add support for target-specific modules.

Patches 21-24 add documentation for all of the above (new in v4, was
separate series).

Patches 25-29 start building accelerators modular.  So far it is
only qtest (all archs) and a small fraction of tcg (x86 only).

Patches 30-34 add support for registering hmp commands so they can
be implemented as module (new in v4, was separate series).

take care,
  Gerd

Gerd Hoffmann (33):
  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
  modules: add documentation for module sourcesets
  modules: add module_obj() note to QOM docs
  modules: module.h kerneldoc annotations
  modules: hook up modules.h to docs build
  accel: autoload modules
  accel: add qtest module annotations
  accel: build qtest modular
  accel: add tcg module annotations
  accel: build tcg modular
  monitor: allow register hmp commands
  usb: drop usb_host_dev_is_scsi_storage hook
  monitor/usb: register 'info usbhost' dynamically
  usb: build usb-host as module
  monitor/tcg: move tcg hmp commands to accel/tcg, register them
    dynamically

Jose R. Ziviani (1):
  modules: check if all dependencies can be satisfied

 scripts/modinfo-collect.py      |  67 +++++++++++
 scripts/modinfo-generate.py     |  97 ++++++++++++++++
 include/hw/usb.h                |   7 +-
 include/monitor/monitor.h       |   3 +
 include/qemu/module.h           |  74 ++++++++++++
 accel/accel-common.c            |   2 +-
 accel/accel-softmmu.c           |   2 +-
 accel/qtest/qtest.c             |   2 +
 accel/tcg/hmp.c                 |  29 +++++
 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/ppc/spapr.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/dev-storage-bot.c        |   1 +
 hw/usb/dev-storage-classic.c    |   1 +
 hw/usb/dev-uas.c                |   1 +
 hw/usb/host-libusb.c            |  38 ++----
 hw/usb/host-stub.c              |  45 -------
 hw/usb/redirect.c               |   1 +
 monitor/hmp.c                   |   7 ++
 monitor/misc.c                  |  34 +++---
 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           |   6 +-
 docs/devel/build-system.rst     |  17 +++
 docs/devel/index.rst            |   1 +
 docs/devel/modules.rst          |   5 +
 docs/devel/qom.rst              |   8 ++
 hmp-commands-info.hx            |   3 -
 hw/usb/meson.build              |  10 +-
 meson.build                     |  82 +++++++++++++
 util/trace-events               |   4 +
 56 files changed, 624 insertions(+), 218 deletions(-)
 create mode 100755 scripts/modinfo-collect.py
 create mode 100755 scripts/modinfo-generate.py
 create mode 100644 accel/tcg/hmp.c
 delete mode 100644 hw/usb/host-stub.c
 create mode 100644 docs/devel/modules.rst

-- 
2.31.1




^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2021-07-06 17:18 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-24 10:38 [PATCH v4 00/34] modules: add meta-data database Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 01/34] modules: add modinfo macros Gerd Hoffmann
2021-06-24 20:37   ` Eduardo Habkost
2021-07-06 17:07     ` Paolo Bonzini
2021-06-24 10:38 ` [PATCH v4 02/34] modules: collect module meta-data Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 03/34] modules: generate modinfo.c Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 04/34] modules: check if all dependencies can be satisfied Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 05/34] modules: add qxl module annotations Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 06/34] modules: add virtio-gpu " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 07/34] modules: add chardev " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 08/34] modules: add audio " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 09/34] modules: add usb-redir " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 10/34] modules: add ccid " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 11/34] modules: add ui " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 12/34] modules: add s390x " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 13/34] modules: add block " Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 14/34] modules: use modinfo for dependencies Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 15/34] modules: use modinfo for qom load Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 16/34] modules: use modinfo for qemu opts load Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 17/34] modules: add tracepoints Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 18/34] modules: check arch and block load on mismatch Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 19/34] modules: check arch on qom lookup Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 20/34] modules: target-specific module build infrastructure Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 21/34] modules: add documentation for module sourcesets Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 22/34] modules: add module_obj() note to QOM docs Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 23/34] modules: module.h kerneldoc annotations Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 24/34] modules: hook up modules.h to docs build Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 25/34] accel: autoload modules Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 26/34] accel: add qtest module annotations Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 27/34] accel: build qtest modular Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 28/34] accel: add tcg module annotations Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 29/34] accel: build tcg modular Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 30/34] monitor: allow register hmp commands Gerd Hoffmann
2021-06-24 14:55   ` Dr. David Alan Gilbert
2021-06-24 17:40     ` Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 31/34] usb: drop usb_host_dev_is_scsi_storage hook Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 32/34] monitor/usb: register 'info usbhost' dynamically Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 33/34] usb: build usb-host as module Gerd Hoffmann
2021-06-24 10:38 ` [PATCH v4 34/34] monitor/tcg: move tcg hmp commands to accel/tcg, register them dynamically Gerd Hoffmann
2021-06-24 14:57   ` Dr. David Alan Gilbert
2021-06-24 14:48 ` [PATCH v4 00/34] modules: add meta-data database Jose R. Ziviani
2021-06-24 15:01 ` Dr. David Alan Gilbert
2021-06-24 17:28   ` Gerd Hoffmann
2021-06-24 18:02     ` Dr. David Alan Gilbert

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.