From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: [Qemu-devel] [PATCH v3 03/29] qapi: Split error.json off common.json
Date: Fri, 9 Aug 2019 08:46:19 +0200 [thread overview]
Message-ID: <20190809064645.22656-4-armbru@redhat.com> (raw)
In-Reply-To: <20190809064645.22656-1-armbru@redhat.com>
In my "build everything" tree, changing a type in qapi/common.json
triggers a recompile of some 3600 out of 6600 objects (not counting
tests and objects that don't depend on qemu/osdep.h).
One common dependency is QapiErrorClass: it's used only in in
qapi/error.h, which uses nothing else, and is widely included.
Move QapiErrorClass from common.json to new error.json. Touching
common.json now recompiles only some 2900 objects.
Cc: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
MAINTAINERS | 2 ++
include/qapi/error.h | 2 +-
qapi/Makefile.objs | 2 +-
qapi/common.json | 24 ------------------------
qapi/error.json | 29 +++++++++++++++++++++++++++++
qapi/qapi-schema.json | 1 +
6 files changed, 34 insertions(+), 26 deletions(-)
create mode 100644 qapi/error.json
diff --git a/MAINTAINERS b/MAINTAINERS
index d6de200453..adc64cfe33 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1874,6 +1874,7 @@ M: Markus Armbruster <armbru@redhat.com>
S: Supported
F: include/qapi/error.h
F: include/qemu/error-report.h
+F: qapi/error.json
F: util/error.c
F: util/qemu-error.c
@@ -2062,6 +2063,7 @@ F: monitor/monitor-internal.h
F: monitor/qmp*
F: monitor/misc.c
F: monitor/monitor.c
+F: qapi/error.json
F: docs/devel/*qmp-*
F: docs/interop/*qmp-*
F: scripts/qmp/
diff --git a/include/qapi/error.h b/include/qapi/error.h
index 51b63dd4b5..3f95141a01 100644
--- a/include/qapi/error.h
+++ b/include/qapi/error.h
@@ -119,7 +119,7 @@
#ifndef ERROR_H
#define ERROR_H
-#include "qapi/qapi-types-common.h"
+#include "qapi/qapi-types-error.h"
/*
* Overall category of an error.
diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
index c5a29e86e2..dd3f5e6f94 100644
--- a/qapi/Makefile.objs
+++ b/qapi/Makefile.objs
@@ -6,7 +6,7 @@ util-obj-y += qmp-event.o
util-obj-y += qapi-util.o
QAPI_COMMON_MODULES = audio authz block-core block char common crypto
-QAPI_COMMON_MODULES += dump introspect job machine migration misc net
+QAPI_COMMON_MODULES += dump error introspect job machine migration misc net
QAPI_COMMON_MODULES += qdev qom rdma rocker run-state sockets tpm
QAPI_COMMON_MODULES += trace transaction ui
QAPI_TARGET_MODULES = machine-target misc-target
diff --git a/qapi/common.json b/qapi/common.json
index 99d313ef3b..3d4e8de1e0 100644
--- a/qapi/common.json
+++ b/qapi/common.json
@@ -4,30 +4,6 @@
# = Common data types
##
-##
-# @QapiErrorClass:
-#
-# QEMU error classes
-#
-# @GenericError: this is used for errors that don't require a specific error
-# class. This should be the default case for most errors
-#
-# @CommandNotFound: the requested command has not been found
-#
-# @DeviceNotActive: a device has failed to be become active
-#
-# @DeviceNotFound: the requested device has not been found
-#
-# @KVMMissingCap: the requested operation can't be fulfilled because a
-# required KVM capability is missing
-#
-# Since: 1.2
-##
-{ 'enum': 'QapiErrorClass',
- # Keep this in sync with ErrorClass in error.h
- 'data': [ 'GenericError', 'CommandNotFound',
- 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
-
##
# @IoOperationType:
#
diff --git a/qapi/error.json b/qapi/error.json
new file mode 100644
index 0000000000..3fad08f506
--- /dev/null
+++ b/qapi/error.json
@@ -0,0 +1,29 @@
+# -*- Mode: Python -*-
+
+##
+# = QMP errors
+##
+
+##
+# @QapiErrorClass:
+#
+# QEMU error classes
+#
+# @GenericError: this is used for errors that don't require a specific error
+# class. This should be the default case for most errors
+#
+# @CommandNotFound: the requested command has not been found
+#
+# @DeviceNotActive: a device has failed to be become active
+#
+# @DeviceNotFound: the requested device has not been found
+#
+# @KVMMissingCap: the requested operation can't be fulfilled because a
+# required KVM capability is missing
+#
+# Since: 1.2
+##
+{ 'enum': 'QapiErrorClass',
+ # Keep this in sync with ErrorClass in error.h
+ 'data': [ 'GenericError', 'CommandNotFound',
+ 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
index 38af54d6b3..920b03b0aa 100644
--- a/qapi/qapi-schema.json
+++ b/qapi/qapi-schema.json
@@ -80,6 +80,7 @@
# stable order, it's best to include each sub-schema just once, or
# include it first right here.
+{ 'include': 'error.json' }
{ 'include': 'common.json' }
{ 'include': 'sockets.json' }
{ 'include': 'run-state.json' }
--
2.21.0
next prev parent reply other threads:[~2019-08-09 6:57 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-09 6:46 [Qemu-devel] [PATCH v3 00/29] Tame a few "touch this, recompile the world" headers Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 01/29] include: Make headers more self-contained Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 02/29] Include generated QAPI headers less Markus Armbruster
2019-08-09 6:46 ` Markus Armbruster [this message]
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 05/29] queue: Drop superfluous #include qemu/atomic.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 06/29] trace: Eliminate use of TARGET_FMT_plx Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 07/29] trace: Do not include qom/cpu.h into generated trace.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 08/29] Include sysemu/reset.h a lot less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 09/29] Include migration/qemu-file-types.h " Markus Armbruster
2019-08-09 9:58 ` Philippe Mathieu-Daudé
2019-08-09 11:48 ` Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 10/29] ide: Include hw/ide/internal a bit less outside hw/ide/ Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 11/29] typedefs: Separate incomplete types and function types Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 12/29] Include hw/irq.h a lot less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 13/29] Clean up inclusion of exec/cpu-common.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 14/29] migration: Move the VMStateDescription typedef to typedefs.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 15/29] Include migration/vmstate.h less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 16/29] Include exec/memory.h slightly less Markus Armbruster
2019-08-09 10:03 ` Philippe Mathieu-Daudé
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 17/29] Include qom/object.h " Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 18/29] Include hw/hw.h exactly where needed Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 19/29] Include qemu/queue.h slightly less Markus Armbruster
2019-08-09 10:05 ` Philippe Mathieu-Daudé
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 20/29] Include qemu/main-loop.h less Markus Armbruster
2019-08-09 9:42 ` Philippe Mathieu-Daudé
2019-08-09 10:10 ` Philippe Mathieu-Daudé
2019-08-09 10:29 ` Philippe Mathieu-Daudé
2019-08-09 10:36 ` Philippe Mathieu-Daudé
2019-08-09 11:55 ` Markus Armbruster
2019-08-09 12:29 ` Philippe Mathieu-Daudé
2019-08-09 16:00 ` Alex Bennée
2019-08-10 19:34 ` Markus Armbruster
2019-08-12 12:49 ` Philippe Mathieu-Daudé
2019-08-15 12:55 ` [Qemu-devel] Running docker cross-tests with SELinux (was: Re: [PATCH v3 20/29] Include qemu/main-loop.h less) Philippe Mathieu-Daudé
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 21/29] Include hw/qdev-properties.h less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 22/29] Include hw/boards.h a bit less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 23/29] numa: Don't include hw/boards.h into sysemu/numa.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 24/29] Include sysemu/hostmem.h less Markus Armbruster
2019-08-09 10:39 ` Philippe Mathieu-Daudé
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 25/29] numa: Move remaining NUMA declarations from sysemu.h to numa.h Markus Armbruster
2019-08-09 10:53 ` Philippe Mathieu-Daudé
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 26/29] Clean up inclusion of sysemu/sysemu.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 27/29] Include sysemu/sysemu.h a lot less Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 28/29] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Markus Armbruster
2019-08-09 6:46 ` [Qemu-devel] [PATCH v3 29/29] sysemu: Split sysemu/runstate.h off sysemu/sysemu.h Markus Armbruster
2019-08-09 10:40 ` [Qemu-devel] [PATCH v3 00/29] Tame a few "touch this, recompile the world" headers no-reply
2019-08-09 16:12 ` Philippe Mathieu-Daudé
2019-08-10 17:01 ` 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=20190809064645.22656-4-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=philmd@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.