diff options
author | Paul Durrant <pdurrant@amazon.com> | 2020-10-01 09:15:00 +0100 |
---|---|---|
committer | Anthony PERARD <anthony.perard@citrix.com> | 2020-10-19 16:32:41 +0100 |
commit | c4583c8c394ee49ce7d5271f572abd3b000fa9e4 (patch) | |
tree | 98fbb64c939b023f063abe2c2ff86c0db662904f /include/hw/xen/xen-backend.h | |
parent | 2211118a2acb6f36bc497713479050e45a3ec693 (diff) |
xen-bus: reduce scope of backend watch
Currently a single watch on /local/domain/X/backend is registered by each
QEMU process running in service domain X (where X is usually 0). The purpose
of this watch is to ensure that QEMU is notified when the Xen toolstack
creates a new device backend area.
Such a backend area is specific to a single frontend area created for a
specific guest domain and, since each QEMU process is also created to service
a specfic guest domain, it is unnecessary and inefficient to notify all QEMU
processes.
Only the QEMU process associated with the same guest domain need
receive the notification. This patch re-factors the watch registration code
such that notifications are targetted appropriately.
Reported-by: Jerome Leseinne <jerome.leseinne@gmail.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Message-Id: <20201001081500.1026-1-paul@xen.org>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Diffstat (limited to 'include/hw/xen/xen-backend.h')
-rw-r--r-- | include/hw/xen/xen-backend.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/hw/xen/xen-backend.h b/include/hw/xen/xen-backend.h index 010d712638..aac2fd454d 100644 --- a/include/hw/xen/xen-backend.h +++ b/include/hw/xen/xen-backend.h @@ -31,6 +31,7 @@ void xen_backend_set_device(XenBackendInstance *backend, XenDevice *xen_backend_get_device(XenBackendInstance *backend); void xen_backend_register(const XenBackendInfo *info); +const char **xen_backend_get_types(unsigned int *nr); void xen_backend_device_create(XenBus *xenbus, const char *type, const char *name, QDict *opts, Error **errp); |