
add pid and cpu relate testcases for MPAM Signed-off-by: Wen Renjie <wenrenjie@huawei.com> --- testcases/feature-test/mpam/mpam_relate_01.sh | 41 +++++++++++++ testcases/feature-test/mpam/mpam_relate_02.sh | 48 +++++++++++++++ testcases/feature-test/mpam/mpam_relate_03.sh | 42 +++++++++++++ testcases/feature-test/mpam/mpam_relate_04.sh | 52 ++++++++++++++++ testcases/feature-test/mpam/mpam_relate_05.sh | 40 +++++++++++++ testcases/feature-test/mpam/mpam_relate_06.sh | 40 +++++++++++++ testcases/feature-test/mpam/mpam_relate_07.sh | 39 ++++++++++++ testcases/feature-test/mpam/mpam_relate_08.sh | 40 +++++++++++++ testcases/feature-test/mpam/mpam_relate_09.sh | 59 +++++++++++++++++++ testcases/feature-test/mpam/mpam_relate_10.sh | 43 ++++++++++++++ testcases/feature-test/mpam/mpam_relate_11.sh | 43 ++++++++++++++ testcases/feature-test/mpam/mpam_relate_12.sh | 41 +++++++++++++ 12 files changed, 528 insertions(+) create mode 100755 testcases/feature-test/mpam/mpam_relate_01.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_02.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_03.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_04.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_05.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_06.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_07.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_08.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_09.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_10.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_11.sh create mode 100755 testcases/feature-test/mpam/mpam_relate_12.sh diff --git a/testcases/feature-test/mpam/mpam_relate_01.sh b/testcases/feature-test/mpam/mpam_relate_01.sh new file mode 100755 index 00000000..8f62b5f7 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_01.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 创建进程,挂载根分组,创建资源组后关联进程pid + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p0 + sleep 100 & + pid=$! + + grep -wq $pid $mpam_dir/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "进程创建后pid显示在根分组内" + else + tst_res TFAIL "进程创建后pid未显示在根分组内" + fi + + echo $pid > $mpam_dir/p0/tasks + grep -wq $pid $mpam_dir/p0/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "进程pid关联资源组成功" + else + tst_res TFAIL "进程pid关联资源组失败" + fi + + kill -9 $pid + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_02.sh b/testcases/feature-test/mpam/mpam_relate_02.sh new file mode 100755 index 00000000..2b74425d --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_02.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 进程pid在资源组间的迁移 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 $mpam_dir/p2 + sleep 100 & + pid=$! + + echo $pid > $mpam_dir/p1/tasks + grep -wq $pid $mpam_dir/p1/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "资源组关联进程pid成功" + else + tst_res TFAIL "资源组关联进程pid失败" + fi + + echo $pid > $mpam_dir/p2/tasks + grep -wq $pid $mpam_dir/p1/tasks + if [ $? -ne 0 ]; then + tst_res TPASS "进程迁移后pid在原资源组移除" + else + tst_res TFAIL "进程迁移后pid未在原资源组移除" + fi + grep -wq $pid $mpam_dir/p2/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "进程pid迁移成功" + else + tst_res TFAIL "进程pid迁移失败" + fi + + kill -9 $pid + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_03.sh b/testcases/feature-test/mpam/mpam_relate_03.sh new file mode 100755 index 00000000..e8eafffa --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_03.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 创建单个资源组关联pid后,删除资源组 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p0 + sleep 100 & + pid=$! + + echo $pid > $mpam_dir/p0/tasks + + rmdir $mpam_dir/p0 + if [ $? -eq 0 ]; then + tst_res TPASS "资源组删除成功" + else + tst_res TFAIL "资源组删除删除" + fi + + grep -wq $pid $mpam_dir/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "进程创建后pid显示在根分组内" + else + tst_res TFAIL "进程创建后pid未显示在根分组内" + fi + + kill -9 $pid + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_04.sh b/testcases/feature-test/mpam/mpam_relate_04.sh new file mode 100755 index 00000000..14b1f9f1 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_04.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 进程pid在监控组迁移测试 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + mkdir $mpam_dir/p1/mon_groups/m1 $mpam_dir/p1/mon_groups/m2 + + sleep 100 & + pid=$! + + echo $pid > $mpam_dir/p1/tasks + + echo $pid > $mpam_dir/p1/mon_groups/m1/tasks + grep -wq $pid $mpam_dir/p1/mon_groups/m1/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "监控组关联进程pid成功" + else + tst_res TFAIL "监控组关联进程pid失败" + fi + + echo $pid > $mpam_dir/p1/mon_groups/m2/tasks + grep -wq $pid $mpam_dir/p1/mon_groups/m1/tasks + if [ $? -ne 0 ]; then + tst_res TPASS "进程迁移后pid在原监控组移除" + else + tst_res TFAIL "进程迁移后pid未在原监控组移除" + fi + grep -wq $pid $mpam_dir/p1/mon_groups/m2/tasks + if [ $? -eq 0 ]; then + tst_res TPASS "进程pid迁移成功" + else + tst_res TFAIL "进程pid迁移失败" + fi + + kill -9 $pid + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_05.sh b/testcases/feature-test/mpam/mpam_relate_05.sh new file mode 100755 index 00000000..13ccfd1d --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_05.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 挂载根分组,创建资源组p1关联单个vcpu + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + + cpu="1" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,2-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "资源组关联cpu成功" + else + tst_res TFAIL "资源组关联cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "cpu从根分组移除成功" + else + tst_res TFAIL "cpu从根分组移除失败" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_06.sh b/testcases/feature-test/mpam/mpam_relate_06.sh new file mode 100755 index 00000000..6d329484 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_06.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 挂载根分组,创建资源组后关联多个连续的vcpu + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + + cpu="1-3" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,4-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "资源组关联多个连续cpu成功" + else + tst_res TFAIL "资源组关联多个连续cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "多个连续cpu从根分组移除成功" + else + tst_res TFAIL "多个连续cpu从根分组移除失败" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_07.sh b/testcases/feature-test/mpam/mpam_relate_07.sh new file mode 100755 index 00000000..849f2e83 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_07.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# vcpu在资源组间的迁移 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 $mpam_dir/p2 + + cpu="1" + echo $cpu > $mpam_dir/p1/cpus_list + + echo $cpu > $mpam_dir/p2/cpus_list + grep -wq $cpu $mpam_dir/p2/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "cpu迁移到新的资源组成功" + else + tst_res TFAIL "cpu迁移到新的资源组失败" + fi + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -eq 0 ]; then + tst_res TFAIL "cpu在原资源组移除失败" + else + tst_res TPASS "cpu在原资源组移除成功" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_08.sh b/testcases/feature-test/mpam/mpam_relate_08.sh new file mode 100755 index 00000000..4612c4eb --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_08.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 挂载根分组,创建资源组后关联多个不连续的vcpu + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + + cpu="1-3,5,10-15" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,4,6-9,16-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "资源组关联多个不连续cpu成功" + else + tst_res TFAIL "资源组关联多个不连续cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "多个不连续cpu从根分组移除成功" + else + tst_res TFAIL "多个不连续cpu从根分组移除失败" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_09.sh b/testcases/feature-test/mpam/mpam_relate_09.sh new file mode 100755 index 00000000..5bd791ab --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_09.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 资源组关联cpu后,cpu下线再上线测试 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + + cpu="1" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,2-$cpu_last" + cpu_full="0-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "资源组关联cpu成功" + else + tst_res TFAIL "资源组关联cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "cpu从根分组移除成功" + else + tst_res TFAIL "cpu从根分组移除失败" + fi + + echo 0 > /sys/devices/system/cpu/cpu$cpu/online + tst_res TINFO "cpu$cpu 下线" + grep -wq $cpu $mpam_dir/p1/cpus_list + if [ $? -ne 0 ]; then + tst_res TPASS "cpu从资源组移除成功" + else + tst_res TFAIL "cpu从资源组移除失败" + fi + + echo 1 > /sys/devices/system/cpu/cpu$cpu/online + tst_res TINFO "cpu$cpu 上线" + grep -wq $cpu_full $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "cpu上线后使能到根分组" + else + tst_res TFAIL "cpu上线后未使能到根分组" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_10.sh b/testcases/feature-test/mpam/mpam_relate_10.sh new file mode 100755 index 00000000..fc0a2495 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_10.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 创建监控组后,向监控组关联多个连续的vcpu + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + mkdir $mpam_dir/p1/mon_groups/m1 + + cpu="1-3" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,4-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + + echo $cpu > $mpam_dir/p1/mon_groups/m1/cpus_list + grep -wq $cpu $mpam_dir/p1/mon_groups/m1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "监控组关联多个连续cpu成功" + else + tst_res TFAIL "监控组关联多个连续cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "多个连续cpu从根分组移除成功" + else + tst_res TFAIL "多个连续cpu从根分组移除失败" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_11.sh b/testcases/feature-test/mpam/mpam_relate_11.sh new file mode 100755 index 00000000..ebef9c76 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_11.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# 创建监控组后,向监控组关联多个不连续的vcpu + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + mkdir $mpam_dir/p1/mon_groups/m1 + + cpu="1-3,5,10-15" + cpu_last=$(($ENV_CPU_NUM-1)) + cpu_rest="0,4,6-9,16-$cpu_last" + + echo $cpu > $mpam_dir/p1/cpus_list + + echo $cpu > $mpam_dir/p1/mon_groups/m1/cpus_list + grep -wq $cpu $mpam_dir/p1/mon_groups/m1/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "监控组关联多个不连续cpu成功" + else + tst_res TFAIL "监控组关联多个不连续cpu失败" + fi + grep -wq $cpu_rest $mpam_dir/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "多个不连续cpu从根分组移除成功" + else + tst_res TFAIL "多个不连续cpu从根分组移除失败" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file diff --git a/testcases/feature-test/mpam/mpam_relate_12.sh b/testcases/feature-test/mpam/mpam_relate_12.sh new file mode 100755 index 00000000..60b39750 --- /dev/null +++ b/testcases/feature-test/mpam/mpam_relate_12.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. +# Author: wenrenjie@huawei.com +# Create: 2025/09/03 +# vcpu在监控组迁移测试 + +. mpam_lib.sh +tst_begin_test + +fn_main(){ + mount -t resctrl resctrl $mpam_dir + + mkdir $mpam_dir/p1 + mkdir $mpam_dir/p1/mon_groups/m1 $mpam_dir/p1/mon_groups/m2 + + cpu="1" + echo $cpu > $mpam_dir/p1/cpus_list + echo $cpu > $mpam_dir/p1/mon_groups/m1/cpus_list + + echo $cpu > $mpam_dir/p1/mon_groups/m2/cpus_list + grep -wq $cpu $mpam_dir/p1/mon_groups/m2/cpus_list + if [ $? -eq 0 ]; then + tst_res TPASS "cpu迁移到新的监控组成功" + else + tst_res TFAIL "cpu迁移到新的监控组失败" + fi + grep -wq $cpu $mpam_dir/p1/mon_groups/m1/cpus_list + if [ $? -eq 0 ]; then + tst_res TFAIL "cpu在原资源组移除失败" + else + tst_res TPASS "cpu在原资源组移除成功" + fi + + umount $mpam_dir +} + +fn_main + +tst_check_dmesg +tst_exit \ No newline at end of file -- 2.25.1