libvirt/docs/manpages
Michal Privoznik 06f405c627 qemu: Explicitly forbid live changing nodeset for strict numatune
Let's imagine a guest that's configured with strict numatune:

  <numatune>
    <memory mode='strict' nodeset='0'/>
  </numatune>

For guests with NUMA:
Depending on machine type used (see commit v6.4.0-rc1~75) we
generate either:

  1) -object '{"qom-type":"memory-backend-ram","id":"ram-node0",\
               "size":20971520,"host-nodes":[0],"policy":"preferred"}' \
     -numa node,nodeid=0,cpus=0,memdev=ram-node0

or

  2) -numa node,nodeid=0,cpus=0,mem=20480

Later, when QEMU boots up and cpuset CGroup controller is
available we further restrict QEMU there too. But there's a
behaviour difference hidden: while in case 1) QEMU is restricted
from beginning, in case 2) it is not and thus it may happen that
it will allocate memory from different NUMA node and even though
CGroup will try to migrate it, it may fail to do so (e.g. because
memory is locked). Therefore, one can argue that case 2) is
broken. NB, case 2) is exactly what mode 'restrictive' is for.
However, in case 1) we are unable to update QEMU with new
host-nodes, simply because it's lacking a command to do so.

For guests without NUMA:
It's very close to case 2) from above. We have commit
v7.10.0-rc1~163 that prevents us from outputting host-nodes when
generating memory-backend-* for system memory, but that simply
allows QEMU to allocate memory anywhere and then relies on
CGroups to move it to desired location.

Due to all of this, there is no reliable way to change nodeset
for mode 'strict'. Let's forbid it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2021-12-17 13:21:48 +01:00
..
index.rst docs: add manpage for virtxend 2021-01-15 19:08:00 +00:00
libvirtd.rst docs: Document libxl.conf location 2021-03-12 10:52:51 +01:00
meson.build Revert "virt-ssh-helper: Add manual page" 2021-12-10 23:08:31 +01:00
virsh.rst qemu: Explicitly forbid live changing nodeset for strict numatune 2021-12-17 13:21:48 +01:00
virt-admin.rst docs: use "::" instead of ".. code-block::" 2020-10-05 13:05:47 +01:00
virt-host-validate.rst docs: convert virt-host-validate man page from pod to rst 2019-12-11 14:28:41 +00:00
virt-login-shell.rst docs: use "::" instead of ".. code-block::" 2020-10-05 13:05:47 +01:00
virt-pki-query-dn.rst virt-pki-query-dn: Add manual page 2021-12-10 18:40:10 +01:00
virt-pki-validate.rst docs: convert virt-pki-validate man page from pod to rst 2019-12-11 14:28:41 +00:00
virt-qemu-run.rst virt-qemu-run: Improve manual page 2021-12-10 18:39:56 +01:00
virt-sanlock-cleanup.rst man: fix section of virt-sanlock-cleanup 2020-01-17 15:34:10 +01:00
virt-xml-validate.rst docs: convert virt-xml-validate man page from pod to rst 2019-12-11 14:28:41 +00:00
virtbhyved.rst docs: add manpage for virtbhyved 2021-01-15 19:08:00 +00:00
virtinterfaced.rst docs: add manpage for virtinterfaced 2021-01-15 19:08:00 +00:00
virtlockd.rst docs: don't hardcode an ancient version in manpage examples 2021-01-15 19:08:00 +00:00
virtlogd.rst docs: don't hardcode an ancient version in manpage examples 2021-01-15 19:08:00 +00:00
virtlxcd.rst docs: Document lxc.conf location 2021-03-12 10:52:41 +01:00
virtnetworkd.rst docs: add manpage for virtnetworkd 2021-01-15 19:08:00 +00:00
virtnodedevd.rst docs: add manpage for virtnodedevd 2021-01-15 19:08:00 +00:00
virtnwfilterd.rst docs: add manpage for virtnwfilterd 2021-01-15 19:08:00 +00:00
virtproxyd.rst Fix spelling 2021-04-15 15:42:21 +02:00
virtqemud.rst docs: Capitalize QEMU driver reference 2021-03-12 10:51:47 +01:00
virtsecretd.rst docs: add manpage for virtsecretd 2021-01-15 19:08:00 +00:00
virtstoraged.rst docs: add manpage for virtstoraged 2021-01-15 19:08:00 +00:00
virtvboxd.rst docs: add manpage for virtvboxd 2021-01-15 19:08:00 +00:00
virtvzd.rst docs: add manpage for virtvzd 2021-01-15 19:08:00 +00:00
virtxend.rst docs: Document libxl.conf location 2021-03-12 10:52:51 +01:00