Skip to content

Commit 3768f49

Browse files
slakkalaastro
authored andcommitted
Make deflate-on-oom optional
Signed-off-by: Santtu Lakkala <[email protected]>
1 parent 38cf46f commit 3768f49

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

lib/runners/cloud-hypervisor.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
let
77
inherit (pkgs) lib;
8-
inherit (microvmConfig) vcpu mem balloonMem user interfaces volumes shares socket devices hugepageMem graphics storeDisk storeOnDisk kernel initrdPath;
8+
inherit (microvmConfig) vcpu mem balloonMem deflateOnOOM user interfaces volumes shares socket devices hugepageMem graphics storeDisk storeOnDisk kernel initrdPath;
99
inherit (microvmConfig.cloud-hypervisor) extraArgs;
1010

1111
kernelPath = {
@@ -54,8 +54,9 @@ let
5454

5555
balloonOps = opsMapped {
5656
size = "${toString balloonMem}M";
57-
deflate_on_oom = "on";
5857
free_page_reporting = "on";
58+
} // lib.optionalAttrs deflateOnOOM {
59+
deflate_on_oom = "on";
5960
};
6061

6162
tapMultiQueue = vcpu > 1;

lib/runners/qemu.nix

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ let
3939
qemu = overrideQemu (if microvmConfig.cpu == null then
4040
pkgs.qemu_kvm else pkgs.buildPackages.qemu_full);
4141

42-
inherit (microvmConfig) hostName cpu vcpu mem balloonMem user interfaces shares socket forwardPorts devices vsock graphics storeOnDisk kernel initrdPath storeDisk;
42+
inherit (microvmConfig) hostName cpu vcpu mem balloonMem deflateOnOOM user interfaces shares socket forwardPorts devices vsock graphics storeOnDisk kernel initrdPath storeDisk;
4343
inherit (microvmConfig.qemu) machine extraArgs serialConsole;
4444

4545
inherit (import ../. { inherit (pkgs) lib; }) withDriveLetters;
@@ -208,7 +208,9 @@ lib.warnIf (mem == 2048) ''
208208
] ++
209209
lib.optionals (user != null) [ "-user" user ] ++
210210
lib.optionals (socket != null) [ "-qmp" "unix:${socket},server,nowait" ] ++
211-
lib.optionals (balloonMem > 0) [ "-device" "virtio-balloon,free-page-reporting=on,id=balloon0,deflate-on-oom=on" ] ++
211+
lib.optionals (balloonMem > 0) [
212+
"-device" ("virtio-balloon,free-page-reporting=on,id=balloon0" + lib.optionalString (deflateOnOOM) ",deflate-on-oom=on")
213+
] ++
212214
builtins.concatMap ({ image, letter, serial, direct, readOnly, ... }:
213215
[ "-drive"
214216
"id=vd${letter},format=raw,file=${image},if=none,aio=io_uring,discard=unmap${

nixos-modules/microvm/options.nix

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,15 @@ in
123123
type = types.int;
124124
};
125125

126+
deflateOnOOM = mkOption {
127+
type = types.bool;
128+
default = true;
129+
description = ''
130+
Whether to enable automatic balloon deflation on out-of-memory.
131+
'';
132+
};
133+
134+
126135
forwardPorts = mkOption {
127136
type = types.listOf
128137
(types.submodule {

0 commit comments

Comments
 (0)