From acf2c24f8eec0918ca419db68196c76dc827f197 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 5 Nov 2022 19:47:42 +0100 Subject: container: T4802: support per container shared-memory size configuration Size of /dev/shm within a container can be defined via --shm-size when invoking the container. Add corresponding CLI node. --- interface-definitions/container.xml.in | 20 +++++++++++++++++++- src/conf_mode/container.py | 5 +++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/interface-definitions/container.xml.in b/interface-definitions/container.xml.in index 51171d881..f84c94a40 100644 --- a/interface-definitions/container.xml.in +++ b/interface-definitions/container.xml.in @@ -111,7 +111,7 @@ - Constrain the memory available to a container + Memory (RAM) available to this container u32:0 Unlimited @@ -127,6 +127,24 @@ 512 + + + Shared memory available to this container + + u32:0 + Unlimited + + + u32:1-8192 + Container memory in megabytes (MB) + + + + + Container memory must be in range 0 to 8192 MB + + 64 + Attach user defined network to container diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py index 70d149f0d..8efeaed54 100755 --- a/src/conf_mode/container.py +++ b/src/conf_mode/container.py @@ -207,6 +207,7 @@ def verify(container): def generate_run_arguments(name, container_config): image = container_config['image'] memory = container_config['memory'] + shared_memory = container_config['shared_memory'] restart = container_config['restart'] # Add capability options. Should be in uppercase @@ -254,9 +255,9 @@ def generate_run_arguments(name, container_config): volume += f' -v {svol}:{dvol}' container_base_cmd = f'--detach --interactive --tty --replace {cap_add} ' \ - f'--memory {memory}m --memory-swap 0 --restart {restart} ' \ + f'--memory {memory}m --shm-size {shared_memory}m --memory-swap 0 --restart {restart} ' \ f'--name {name} {device} {port} {volume} {env_opt}' - + if 'allow_host_networks' in container_config: return f'{container_base_cmd} --net host {image}' -- cgit v1.2.3