libvirt/src/qemu
Jonathon Jongsma 447e09dfdb qemu: Monitor nbdkit process for exit
Adds the ability to monitor the nbdkit process so that we can take
action in case the child exits unexpectedly.

When the nbdkit process exits, we pause the vm, restart nbdkit, and then
resume the vm. This allows the vm to continue working in the event of a
nbdkit failure.

Eventually we may want to generalize this functionality since we may
need something similar for e.g. qemu-storage-daemon, etc.

The process is monitored with the pidfd_open() syscall if it exists
(since linux 5.3). Otherwise it resorts to checking whether the process
is alive once a second. The one-second time period was chosen somewhat
arbitrarily.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2023-09-19 14:28:50 -05:00
..
libvirt_qemu_probes.d
libvirtd_qemu.aug
meson.build qemu: Extract qemuDomainLogContext into a new file 2023-09-19 14:28:50 -05:00
postcopy-migration.sysctl
qemu_agent.c qemu: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
qemu_agent.h
qemu_alias.c src: Drop needless typecast to virDomainDiskBus 2023-09-15 10:34:52 +02:00
qemu_alias.h qemu: add support for multiple secret aliases 2023-03-16 15:19:35 +01:00
qemu_backup.c virStorageNetHostDef: Convert 'transport' field to proper enum type 2023-09-15 10:35:20 +02:00
qemu_backup.h
qemu_block.c qemu: use nbdkit to serve network disks if available 2023-09-19 14:28:50 -05:00
qemu_block.h qemu: add multi-secret support in qemuBlockStorageSourceAttachData 2023-03-16 15:19:36 +01:00
qemu_blockjob.c qemuDomainGetImageIds: pass domain definition directly 2023-08-22 16:06:34 +02:00
qemu_blockjob.h
qemu_capabilities.c qemu: add virtio-blk-vhost-vdpa capability 2023-09-12 11:06:41 -05:00
qemu_capabilities.h qemu: add virtio-blk-vhost-vdpa capability 2023-09-12 11:06:41 -05:00
qemu_capspriv.h qemu: capabilities: Unexport 'virQEMUCapsAddMachine' 2023-09-06 14:09:46 +02:00
qemu_cgroup.c src: Rename some members of _virDomainMemoryDef struct 2023-08-24 12:39:29 +02:00
qemu_cgroup.h
qemu_checkpoint.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_checkpoint.h
qemu_command.c virDomainDeviceInfo: Convert 'type' field to proper enum type 2023-09-15 10:35:17 +02:00
qemu_command.h qemu: make vdpa connect function more generic 2023-09-12 11:06:41 -05:00
qemu_conf.c qemu: Add qemuNbdkitProcess 2023-09-19 14:28:50 -05:00
qemu_conf.h qemu: Add qemuNbdkitProcess 2023-09-19 14:28:50 -05:00
qemu_dbus.c qemu: Find dbus-daemon at runtime 2023-05-11 15:04:50 +02:00
qemu_dbus.h lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
qemu_domain_address.c virDomainWatchdogDef: Convert 'model' field to proper enum type 2023-09-15 10:35:13 +02:00
qemu_domain_address.h
qemu_domain.c qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_domain.h qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_domainjob.c util: virtypedparam: Remove return values from virTypedParamListAdd* APIs 2023-05-02 14:32:46 +02:00
qemu_domainjob.h
qemu_driver.c qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_driver.h
qemu_extdevice.c qemu: use nbdkit to serve network disks if available 2023-09-19 14:28:50 -05:00
qemu_extdevice.h
qemu_fd.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_fd.h
qemu_firmware.c conf: Don't default to raw format for loader/NVRAM 2023-08-21 13:51:34 +02:00
qemu_firmware.h qemu: Match NVRAM template extension for new domains 2023-08-21 13:51:32 +02:00
qemu_hostdev.c qemu: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
qemu_hostdev.h qemu: Stop virQEMUCaps propagation into qemuHostdevPreparePCIDevices() 2023-04-25 12:36:31 +02:00
qemu_hotplug.c qemu: use nbdkit to serve network disks if available 2023-09-19 14:28:50 -05:00
qemu_hotplug.h qemu_hotplug.h: Expose less functions 2023-04-25 08:46:27 +02:00
qemu_interface.c qemu: make vdpa connect function more generic 2023-09-12 11:06:41 -05:00
qemu_interface.h qemu: make vdpa connect function more generic 2023-09-12 11:06:41 -05:00
qemu_interop_config.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_interop_config.h
qemu_logcontext.c qemu: move qemuProcessReadLog() to qemuLogContext 2023-09-19 14:28:50 -05:00
qemu_logcontext.h qemu: move qemuProcessReadLog() to qemuLogContext 2023-09-19 14:28:50 -05:00
qemu_migration_cookie.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_migration_cookie.h
qemu_migration_params.c qemu: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
qemu_migration_params.h qemu: support set parallel migration compression method 2023-05-18 15:47:30 +02:00
qemu_migration_paramspriv.h
qemu_migration.c virDomainHostdevSubsys: Convert 'type' field to proper enum type 2023-09-15 10:35:04 +02:00
qemu_migration.h qemu: support set parallel migration compression method 2023-05-18 15:47:30 +02:00
qemu_monitor_json.c src: Avoid needless checks before calling g_strdup() 2023-09-18 14:46:24 +02:00
qemu_monitor_json.h qemu_monitor: Remove helpers for 'query-commands' 2023-07-20 17:28:21 +02:00
qemu_monitor_priv.h
qemu_monitor_text.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_monitor_text.h
qemu_monitor.c virDomainDeviceInfo: Convert 'type' field to proper enum type 2023-09-15 10:35:17 +02:00
qemu_monitor.h qemu_monitor: Remove helpers for 'query-commands' 2023-07-20 17:28:21 +02:00
qemu_namespace.c virDomainRNGDef: Convert 'backend' field to proper enum type 2023-09-15 10:35:11 +02:00
qemu_namespace.h
qemu_nbdkit.c qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_nbdkit.h qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_nbdkitpriv.h tests: add tests for nbdkit invocation 2023-09-19 14:28:50 -05:00
qemu_passt.c qemu: don't add --mac-addr option to passt commandline 2023-08-02 19:33:02 -04:00
qemu_passt.h
qemu_process.c qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_process.h qemu: Monitor nbdkit process for exit 2023-09-19 14:28:50 -05:00
qemu_processpriv.h
qemu_qapi.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_qapi.h
qemu_saveimage.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_saveimage.h
qemu_security.c security: make it possible to set SELinux label of child process from its binary 2023-03-10 14:09:29 -05:00
qemu_security.h security: make it possible to set SELinux label of child process from its binary 2023-03-10 14:09:29 -05:00
qemu_shim.c qemu_shim: Require absolute path for root directory 2023-03-22 15:53:33 +01:00
qemu_slirp.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_slirp.h
qemu_snapshot.c conf: add ability to configure a vdpa block disk device 2023-09-12 11:06:41 -05:00
qemu_snapshot.h
qemu_tpm.c qemu: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
qemu_tpm.h
qemu_validate.c virDomainDeviceInfo: Convert 'type' field to proper enum type 2023-09-15 10:35:17 +02:00
qemu_validate.h
qemu_vhost_user_gpu.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_vhost_user_gpu.h
qemu_vhost_user.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_vhost_user.h
qemu_virtiofs.c qemu: Update format strings in translated messages 2023-04-01 11:40:34 +02:00
qemu_virtiofs.h
qemu.conf.in qemu: Update documentation for dbus_daemon qemu.conf key 2023-05-11 15:04:56 +02:00
test_libvirtd_qemu.aug.in qemu: Update documentation for dbus_daemon qemu.conf key 2023-05-11 15:04:56 +02:00
virtqemud.init.in
virtqemud.service.in src: fix max file limits in systemd services 2023-08-04 13:00:52 +01:00