Skip to content

Commit d043d25

Browse files
authored
Merge pull request #6624 from liang-cong-red-hat/lifecycle_hugepage_refine_20251021
lifecycle_for_hugepage: Use dynamic page size and improve cleanup
2 parents f3496fb + 1d796be commit d043d25

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

libvirt/tests/cfg/memory/memory_backing/lifecycle_for_hugepage.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
memory_backing_dict = "'mb': {'hugepages': {}}"
4343
vm_attrs = {${memory_backing_dict}, 'memory_unit':'${mem_unit}','memory':${mem_value},'current_mem':${current_mem},'current_mem_unit':'${current_mem_unit}'}
4444
HugePages_Free = "0"
45-
free_hugepages = ${set_pagenum}
45+
free_hugepages = "0"
4646
- 1G:
4747
no s390-virtio
4848
page_size = "1"

libvirt/tests/src/memory/memory_backing/lifecycle_for_hugepage.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def adjust_parameters(params, test):
5454
:ret: dict, the updated test parameters
5555
"""
5656
def sub_update():
57-
set_pagesize = default_pgsize_set_mapping[default_pagesize]
57+
set_pagesize = memory.get_huge_page_size()
5858
params['set_pagesize'] = set_pagesize
5959
params['mount_size'] = set_pagesize
6060
params['set_pagenum'] = int(math.floor(total_hugepage_mem/set_pagesize))
@@ -67,26 +67,21 @@ def sub_update():
6767
total_hugepage_mem = int(params.get('total_hugepage_mem'))
6868
if scenario == 'default_page_size':
6969
vm_attrs['mb']['hugepages']['pages'][0]['size'] = default_pagesize
70+
elif scenario in ['0', 'default_hugepage_size']:
71+
sub_update()
7072

7173
if current_arch == 'aarch64':
72-
# kernel page size vs. huge page size to be set for kernel mm file
73-
# like if kernel page size 64K, then huge page size to be set is 2048K
74-
default_pgsize_set_mapping = {64: 2048, 4: 1048576}
7574
default_hugepage_size = memory.get_huge_page_size()
7675
params['vm_nr_hugepages'] = int(math.floor(total_hugepage_mem/default_hugepage_size))
7776

7877
if scenario == 'default_page_size':
7978
sub_update()
8079
params['HugePages_Free'] = params['vm_nr_hugepages']
8180
params['free_hugepages'] = params['set_pagenum']
82-
elif scenario in ['default_hugepage_size', 'scarce_mem']:
81+
elif scenario == 'scarce_mem':
8382
sub_update()
8483
params['free_hugepages'] = params['set_pagenum']
85-
elif scenario == '1G':
86-
params['HugePages_Free'] = params['vm_nr_hugepages']
87-
elif scenario == '0':
88-
sub_update()
89-
elif scenario in ['2M', '16G', '64K', '32M']:
84+
elif scenario in ['2M', '1G', '16G', '64K', '32M']:
9085
params['HugePages_Free'] = params['vm_nr_hugepages']
9186
test.log.debug("params['HugePages_Free']=%s", params.get('HugePages_Free'))
9287
test.log.debug("params['free_hugepages']=%s", params.get('free_hugepages'))
@@ -213,12 +208,14 @@ def teardown_test(vmxml, params, test):
213208
:param test: test object
214209
"""
215210
save_file = params.get("save_file", "/tmp/guest.save")
211+
set_pagesize = params.get("set_pagesize")
216212

217213
test.log.info("TEST_TEARDOWN: Clean up env.")
218214
vmxml.sync()
219215
if os.path.exists(save_file):
220216
os.remove(save_file)
221217
hp_cfg = test_setup.HugePageConfig(params)
218+
hp_cfg.set_kernel_hugepages(set_pagesize, 0, False)
222219
hp_cfg.cleanup()
223220

224221

0 commit comments

Comments
 (0)