[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Removing Linux memory hotplug limitations
Qubes OS is trying to switch from relying on populate-on-demand to memory hotplug for Linux guests. However, this runs into a problem, which is that only a limited amount of memory can be hotplugged. My experiments with Qubes OS’s build of Linux 6.3.2 reveal: - The more memory a guest starts off with, the more memory that can be added to it via hotplug. - The memory that the guest is not able to use remains available on the host and can be assigned to dom0 (and, presumably, to oother guests). - There is no sudden jump at 2GiB or 3GiB as far as I can tell. - There are no kernel warning messages unless I try to add a huge amount of memory (far beyond what can be successfully hotplugged). In particular, there are no warning messages from drivers/xen/balloon.c. - There are several waits in the balloon driver that should probably hvae comments added. - `cat /sys/devices/system/memory/memory*/state` reveals that all memory devices are online. - `echo $((1 << 63)) | sudo tee /sys/devices/system/xen_memory/xen_memory0/target` causes a kernel crash (BUG_ON(ret != nr_pages) in drivers/xen/balloon.c). Patch coming. - The initial amount of memory assigned to a guest is irrelevant. - The maximum amount of memory assigned to a guest is highly relevant. Table below: Initial maximum memory: Maximum after hotplug 400M 2733M 500M 3067M 600M 3535M 700M 3919M 800M 4315 900m 4711 1000m 5105 SciPy linear regression gives: - Slope: 3.9943 - Y-Intercept: 1116.14 - R: 0.99965 - stderr: 0.047 In short, there is a very clear, nearly linear relationship between the amount of cold-plugged memory and the amount of memory that can be hotplugged later. -- Sincerely, Demi Marie Obenour (she/her/hers) Invisible Things Lab Attachment:
signature.asc
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |