libvirt/src/qemu
Michal Privoznik 40a162f83e qemu: Don't cache NUMA caps
In v6.0.0-rc1~439 (and friends) we tried to cache NUMA
capabilities because we assumed they are immutable. And to some
extent they are (NUMA hotplug is not a thing, is it). However,
our capabilities contain also some runtime info that can change,
e.g. hugepages pool allocation sizes or total amount of memory
per node (host side memory hotplug might change the value).

Because of the caching we might not be reporting the correct
runtime info in 'virsh capabilities'.

The NUMA caps are used in three places:

  1) 'virsh capabilities'
  2) domain startup, when parsing numad reply
  3) parsing domain private data XML

In cases 2) and 3) we need NUMA caps to construct list of
physical CPUs that belong to NUMA nodes from numad reply. And
while this may seem static, it's not really because of possible
CPU hotplug on physical host.

There are two possible approaches:

  1) build a validation mechanism that would invalidate the
     cached NUMA caps, or
  2) drop the caching and construct NUMA caps from scratch on
     each use.

In this commit, the latter approach is implemented, because it's
easier.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1819058
Fixes: 1a1d848694
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2020-12-07 11:32:40 +01:00
..
EVENTHANDLERS.txt
libvirt_qemu_probes.d
libvirtd_qemu.aug qemu: conf: Introduce "migrate_tls_force" qemu.conf option 2020-11-24 17:59:26 +01:00
meson.build meson: drop use of .path() for python args 2020-11-09 16:32:55 +00:00
MIGRATION.txt
qemu_agent.c qemu: Use virJSONValueObjectGetStringArray() more 2020-12-01 17:21:14 +01:00
qemu_agent.h qemu_agent: add qemuAgentGetDisks 2020-12-01 11:23:41 +01:00
qemu_alias.c qemu: enable support for ESP SCSI controller family 2020-11-20 12:09:51 +00:00
qemu_alias.h
qemu_backup.c qemu: backup: Install bitmap for incremental backup to appropriate node only 2020-11-16 14:12:38 +01:00
qemu_backup.h util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_block.c util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_block.h util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_blockjob.c util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_blockjob.h
qemu_capabilities.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_capabilities.h qemu: add capabilities for the three ESP family SCSI controllers 2020-11-20 12:09:51 +00:00
qemu_capspriv.h qemu: Track default-ram-id machine attribute 2020-10-01 12:04:48 +02:00
qemu_cgroup.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_cgroup.h
qemu_checkpoint.c virDomainCheckpointRedefineCommit: Don't check ABI of definition in checkpoint 2020-12-04 16:15:03 +01:00
qemu_checkpoint.h qemu: rename: support renaming checkpoints directory 2020-11-13 14:49:50 +03:00
qemu_command.c qemu_command: Move dimm into qemuBuildDeviceAddressStr() 2020-12-04 16:24:19 +01:00
qemu_command.h qemu_command: Move dimm into qemuBuildDeviceAddressStr() 2020-12-04 16:24:19 +01:00
qemu_conf.c qemu: Don't cache NUMA caps 2020-12-07 11:32:40 +01:00
qemu_conf.h qemu: Don't cache NUMA caps 2020-12-07 11:32:40 +01:00
qemu_dbus.c qemu_dbus: use emulator cgroup for dbus-daemon 2020-11-03 21:26:32 +01:00
qemu_dbus.h qemu_dbus: use emulator cgroup for dbus-daemon 2020-11-03 21:26:32 +01:00
qemu_domain_address.c qemu_domain_address: Reformat qemuDomainAssignS390Addresses() 2020-12-04 16:24:19 +01:00
qemu_domain_address.h
qemu_domain.c qemu: Don't cache NUMA caps 2020-12-07 11:32:40 +01:00
qemu_domain.h qemu: Drop @qemuCaps argument from qemuDomainDefValidateMemoryHotplug() 2020-12-04 17:01:37 +01:00
qemu_domainjob.c
qemu_domainjob.h
qemu_driver.c qemu: Don't cache NUMA caps 2020-12-07 11:32:40 +01:00
qemu_driver.h
qemu_extdevice.c qemu_dbus: use emulator cgroup for dbus-daemon 2020-11-03 21:26:32 +01:00
qemu_extdevice.h
qemu_firmware.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_firmware.h
qemu_hostdev.c
qemu_hostdev.h
qemu_hotplug.c qemu: Drop @qemuCaps argument from qemuDomainDefValidateMemoryHotplug() 2020-12-04 17:01:37 +01:00
qemu_hotplug.h
qemu_interface.c qemu: honour fatal errors dealing with qemu slirp helper 2020-10-27 12:03:19 +00:00
qemu_interface.h qemu: honour fatal errors dealing with qemu slirp helper 2020-10-27 12:03:19 +00:00
qemu_interop_config.c util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_interop_config.h
qemu_migration_cookie.c qemu_migration_cookie: Make cookie parsing robust against missing domain job 2020-11-09 12:25:49 +01:00
qemu_migration_cookie.h qemu_migration_cookie: Export qemuMigrationCookieXMLFormat for tests 2020-11-09 12:25:49 +01:00
qemu_migration_params.c virBitmapNew: Don't check return value 2020-10-05 15:38:47 +02:00
qemu_migration_params.h
qemu_migration_paramspriv.h
qemu_migration.c qemu: Tweak debug message for qemuMigrationSrcPerformPeer2Peer3 2020-11-25 00:21:49 +01:00
qemu_migration.h
qemu_monitor_json.c qemuMonitorBlockJobInfo: Store 'ready' and 'ready_present' separately 2020-12-07 10:15:00 +01:00
qemu_monitor_json.h qemu: Pass / fill niothreads for qemuMonitorGetIOThreads 2020-12-03 17:06:07 +01:00
qemu_monitor_priv.h
qemu_monitor_text.c
qemu_monitor_text.h
qemu_monitor.c qemu: monitor: Remove unused qemuMonitorGetBlockJobInfo 2020-12-07 10:15:00 +01:00
qemu_monitor.h qemu: monitor: Remove unused qemuMonitorGetBlockJobInfo 2020-12-07 10:15:00 +01:00
qemu_namespace.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_namespace.h
qemu_process.c qemu: Don't cache NUMA caps 2020-12-07 11:32:40 +01:00
qemu_process.h qemu: Prepare hostdev data which depends on the host state separately 2020-10-20 15:08:22 +02:00
qemu_processpriv.h
qemu_qapi.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_qapi.h util: hash: Retire 'virHashTable' in favor of 'GHashTable' 2020-11-06 10:40:51 +01:00
qemu_saveimage.c qemu: use g_new0 2020-10-05 16:44:06 +02:00
qemu_saveimage.h
qemu_security.c
qemu_security.h
qemu_shim.c
qemu_slirp.c qemu: remove dead code that setup cgroups for helper processes 2020-11-03 21:26:32 +01:00
qemu_slirp.h
qemu_snapshot.c qemu: snapshot: Write metadata of previously-'current' snapshot on update 2020-11-24 17:59:26 +01:00
qemu_snapshot.h
qemu_tpm.c qemu_tpm.c: fix 'shortName' leak 2020-11-16 13:55:06 -03:00
qemu_tpm.h
qemu_validate.c qemu: Drop @qemuCaps argument from qemuDomainDefValidateMemoryHotplug() 2020-12-04 17:01:37 +01:00
qemu_validate.h
qemu_vhost_user_gpu.c
qemu_vhost_user_gpu.h
qemu_vhost_user.c lib: Replace VIR_AUTOSTRINGLIST with GStrv 2020-12-02 15:43:07 +01:00
qemu_vhost_user.h
qemu_virtiofs.c
qemu_virtiofs.h
qemu.conf qemu: conf: Introduce "migrate_tls_force" qemu.conf option 2020-11-24 17:59:26 +01:00
test_libvirtd_qemu.aug.in qemu: conf: Introduce "migrate_tls_force" qemu.conf option 2020-11-24 17:59:26 +01:00
THREADS.txt
virtqemud.init.in
virtqemud.service.in
virtqemud.sysconf