core-admin/qubes
Marek Marczykowski-Górecki 4dc8631010
Use maxmem=0 to disable qmemman, add more automation to it
Use maxmem=0 for disabling dynamic memory balance, instead of cryptic
service.meminfo-writer feature. Under the hood, meminfo-writer service
is also set based on maxmem property (directly in qubesdb, not
vm.features dict).
Having this as a property (not "feature"), allow to have sensible
handling of default value. Specifically, disable it automatically if
otherwise it would crash a VM. This is the case for:
 - domain with PCI devices (PoD is not supported by Xen then)
 - domain without balloon driver and/or meminfo-writer service

The check for the latter is heuristic (assume presence of 'qrexec' also
can indicate balloon driver support), but it is true for currently
supported systems.

This also allows more reliable control of libvirt config: do not set
memory != maxmem, unless qmemman is enabled.

memory != maxmem only makes sense if qmemman for given domain is
enabled.  Besides wasting some domain resources for extra page tables
etc, for HVM domains this is harmful, because maxmem-memory difference
is made of Popupate-on-Demand pool, which - when depleted - will kill
the domain. This means domain without balloon driver will die as soon
as will try to use more than initial memory - but without balloon driver
it sees maxmem memory and doesn't know about the lower limit.

Fixes QubesOS/qubes-issues#4135
2018-11-21 02:13:25 +01:00
..
api api/admin: fix error message when refusing to create template on template 2018-11-04 17:05:55 +01:00
ext Use maxmem=0 to disable qmemman, add more automation to it 2018-11-21 02:13:25 +01:00
qmemman qmemman: fix early crash 2018-01-18 17:36:37 +01:00
storage storage: fix NotImplementedError message for import_data() 2018-10-29 20:21:42 +00:00
tests Use maxmem=0 to disable qmemman, add more automation to it 2018-11-21 02:13:25 +01:00
tools app: uncouple pool setup from loading initial configuration 2018-09-11 23:50:25 +00:00
vm Use maxmem=0 to disable qmemman, add more automation to it 2018-11-21 02:13:25 +01:00
__init__.py Merge branch 'master' into devel-no-assert 2018-10-29 20:29:53 +01:00
app.py vm: add shutdown_timeout property, make vm.shutdown(wait=True) use it 2018-10-26 23:54:04 +02:00
backup.py Merge remote-tracking branch 'origin/pr/237' 2018-10-29 22:54:05 +01:00
config.py app: create /var/lib/qubes as file-reflink if supported 2018-09-11 23:50:26 +00:00
core2migration.py Make pylint happy 2017-12-21 18:19:10 +01:00
devices.py Merge branch 'master' into devel-no-assert 2018-10-29 20:29:53 +01:00
dochelpers.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
events.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
exc.py exc: fix QubesMemoryError constructor 2018-10-30 01:14:58 +01:00
firewall.py Merge branch 'master' into devel-no-assert 2018-10-29 20:29:53 +01:00
log.py Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
rngdoc.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
tarwriter.py Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
utils.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00