diff options
| author | Daniil Baturin <daniil@vyos.io> | 2025-09-18 15:27:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-18 15:27:30 +0100 |
| commit | 3fec74185970d4ad3b176e3126ffcdd5ab07b11d (patch) | |
| tree | 7dea5d7c3e571e53460395aad5d95205df455f8b /python | |
| parent | b4d6e2cc841b1f88c1545ea288be0437ac4edd2e (diff) | |
| parent | 45f7f3849a15af888cb826b4d71046553911eebd (diff) | |
| download | vyos-1x-3fec74185970d4ad3b176e3126ffcdd5ab07b11d.tar.gz vyos-1x-3fec74185970d4ad3b176e3126ffcdd5ab07b11d.zip | |
Merge pull request #4729 from natali-rs1985/T7805
T7805: VPP remove unused 'default-hugepage-size' from memory section and restrict page sizes in xml
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/vpp/config_resource_checks/memory.py | 45 | ||||
| -rw-r--r-- | python/vyos/vpp/config_resource_checks/resource_defaults.py | 14 | ||||
| -rw-r--r-- | python/vyos/vpp/utils.py | 17 |
3 files changed, 13 insertions, 63 deletions
diff --git a/python/vyos/vpp/config_resource_checks/memory.py b/python/vyos/vpp/config_resource_checks/memory.py index ea4697ba2..03fe097e9 100644 --- a/python/vyos/vpp/config_resource_checks/memory.py +++ b/python/vyos/vpp/config_resource_checks/memory.py @@ -21,10 +21,7 @@ import re import psutil from vyos.utils.process import cmd -from vyos.vpp.utils import ( - human_memory_to_bytes, - human_page_memory_to_bytes, -) +from vyos.vpp.utils import human_memory_to_bytes from vyos.vpp.config_resource_checks.resource_defaults import default_resource_map @@ -53,7 +50,7 @@ def get_hugepages_info() -> dict: for entry in os.listdir(base_path): page_size_kb = entry[10:] - page_size = human_page_memory_to_bytes(page_size_kb) + page_size = human_memory_to_bytes(page_size_kb) key = classify_page_size(page_size) info[key] = {} @@ -94,44 +91,30 @@ def get_numa_count(): def buffer_page_size(settings: dict) -> int: - page_size = settings.get('buffers', {}).get('page_size', 'default') - return human_page_memory_to_bytes(page_size) + page_size = settings.get('buffers', {}).get('page_size') + return human_memory_to_bytes(page_size) def buffer_size(settings: dict) -> int: numa_count = get_numa_count() - buffers_per_numa = int( - settings.get('buffers', {}).get( - 'buffers_per_numa', default_resource_map.get('buffers_per_numa') - ) - ) - data_size = int( - settings.get('buffers', {}).get( - 'data_size', default_resource_map.get('data_size') - ) - ) + buffers_per_numa = int(settings.get('buffers').get('buffers_per_numa')) + data_size = int(settings.get('buffers').get('data_size')) buffers_memory = buffers_per_numa * data_size * numa_count return buffers_memory def main_heap_page_size(settings: dict) -> int: - heap_page_size = settings.get('memory', {}).get( - 'main_heap_page_size', default_resource_map.get('main_heap_page_size') - ) - return human_page_memory_to_bytes(heap_page_size) + heap_page_size = settings.get('memory').get('main_heap_page_size') + return human_memory_to_bytes(heap_page_size) def memory_main_heap(settings: dict) -> int: - heap_size = settings.get('memory', {}).get( - 'main_heap_size', default_resource_map.get('main_heap_size') - ) + heap_size = settings.get('memory').get('main_heap_size') return human_memory_to_bytes(heap_size) def ipv6_heap_size(settings: dict) -> int: - heap_size = settings.get('ipv6', {}).get( - 'heap_size', default_resource_map.get('ipv6_heap_size') - ) + heap_size = settings.get('ipv6').get('heap_size') return human_memory_to_bytes(heap_size) @@ -140,15 +123,13 @@ def total_heap_size(heap_size: int, heap_page_size: int) -> int: def statseg_size(settings: dict) -> int: - statseg_memory = settings.get('statseg', {}).get( - 'size', default_resource_map.get('statseg_heap_size') - ) + statseg_memory = settings.get('statseg').get('size') return human_memory_to_bytes(statseg_memory) def statseg_page_size(settings: dict) -> int: - page_size = settings.get('statseg', {}).get('page_size') - return human_page_memory_to_bytes(page_size) + page_size = settings.get('statseg').get('page_size') + return human_memory_to_bytes(page_size) def total_statseg_size(_statseg_size: int, _statseg_page: int) -> int: diff --git a/python/vyos/vpp/config_resource_checks/resource_defaults.py b/python/vyos/vpp/config_resource_checks/resource_defaults.py index d8316fcaf..71a98703e 100644 --- a/python/vyos/vpp/config_resource_checks/resource_defaults.py +++ b/python/vyos/vpp/config_resource_checks/resource_defaults.py @@ -18,26 +18,12 @@ default_resource_map = { - # Default amount of buffers per NUMA (populated CPU socket) - 'buffers_per_numa': 16384, - # Default size of buffer (in bytes) - 'data_size': 2048, - # Default hugepage size for VPP - 'hugepage_size': '2M', - # Default amount of memory allocated for VPP exclusive usage - 'main_heap_size': '3G', - # Default main heap page size - 'main_heap_page_size': '2M', # Default size of buffers transferred via netlink 'netlink_rx_buffer_size': 212992, - # Default amount of memory allocated for VPP stats segment usage - 'statseg_heap_size': '128M', # Minimal amount of memory required to start VPP 'min_memory': '8G', # Minimal number of physical CPU cores required to start VPP 'min_cpus': 4, # Reserve at least 2 physical cores 'reserved_cpu_cores': 2, - # Default heap size for IPv6 - 'ipv6_heap_size': '32M', } diff --git a/python/vyos/vpp/utils.py b/python/vyos/vpp/utils.py index 4e42232cd..963423e2b 100644 --- a/python/vyos/vpp/utils.py +++ b/python/vyos/vpp/utils.py @@ -330,23 +330,6 @@ def bytes_to_human_memory(value: int, unit: str) -> str | None: return f'{val}{unit}' if val else None -def human_page_memory_to_bytes(value: str) -> int: - """ - Convert a human-readable vpp page size format to a byte value. - - :param value: The string memory size in vpp human-readable format. - :return: A int representing the value. - """ - default = { - 'default': get_default_page_size, - 'default-hugepage': get_default_hugepage_size, - } - try: - return default[value]() - except KeyError: - return human_memory_to_bytes(value) - - class EthtoolGDrvinfo: """Return interface details like `ethtol -i` does""" |
