218 Star 774 Fork 360

GVPopenEuler / kernel

 / 详情

[uptdate-sp1] x86物理机上执行ltp用例cpuset_memory_spread失败

Done
Bug
Opened this issue  
2021-04-29 09:54

【环境信息】
系统:x86物理机 内存:380G
cpu:88核
OS版本: 版本sp1 update_20210421
【问题复现步骤】
安装最小化镜像
升级kernel以及update_20210421中最新的安装包
执行用例./runltp -p -l result.log -s cpuset_memory_spread
【预期结果】
用例执行成功
【实际结果】
执行失败
输入图片说明

Comments (7)

6++ created缺陷
6++ set related repository to openEuler/kernel
Expand operation logs

Hey Classicriver_jia, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot .
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.

6++ set assignee to 成坚 (CHENG Jian)
6++ set deadline to 2021-04-30
6++ set start time to 2021-04-29
6++ set priority to Main

memory_spread 参数的作用

该参数只能设定 page cache 分配时候的倾向于均衡的分配,还是倾向于在各个节点上分析。
不能保证各个 NODE 上 page cache 数量一定在某个范围或者差值范围内。

寻找其他机器测试,有些通过,有些不通过
https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh#L280

# test general spread page cache in a cpuset
test_spread_page1()
{
	while read spread cpus nodes exp_nodes
	do
		base_test "$spread" "$cpus" "$nodes" "$exp_nodes"
	done <<- EOF
		0	0	0	0
		1	0	0	0
		0	0	1	1
		1	0	1	1
		0	0	0,1	0
		1	0	0,1	0,1
	EOF
	# while read spread cpus nodes exp_nodes
}

没有问题,用例不过是因为limit限制的太死了,从结果上看是符合测试预期的:
第一张图结果上把每个node0/1上的内存和策略(is spread)都打印出来了,前六个结果对应第二张图的那张表,期望是一致的,第一张图的最后一个结果对应第三张图,结果和期望也是一致的

输入图片说明

用例中判断要求

他这个判断进程执行前后各个node上的page cache差值,PASS的范围是在2000-10000之间,
但是 memory_spread 的配置只能设置分配的倾向性,不能保证具体在哪个node上分配多少,不能保证各个 node 之前page cache 的数量上的差值。

结论:测试用例设计不严谨

测试用例
https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh

# In general, the cache hog will use more than 10000 kb slab space on the nodes
# on which it is running. The other nodes' slab space has littler change.(less
# than 1000 kb).
upperlimit=10000
lowerlimit=2000

2000~10000 的限制显得有点机械。。

@6++ issue 我先关闭。

其他同学 @汪可可 已经在跟社区讨论这个用例的修改了。

如有疑问,请联系 @成坚 (CHENG Jian)

谢谢

成坚 (CHENG Jian) changed issue state from 待办的 to 已完成
成坚 (CHENG Jian) translation missing: en.project.new_issues_operate_log.link_issue(Normal)[openEuler 20.03 LTS SP2/x86] ltp用例cpuset_memory_spread执行失败

Sign in to comment

Status
Assignees
Projects
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
Duration (hours)
Confirm
参与者(3)
5329419 openeuler ci bot 1632792936
C
1
https://toscode.gitee.com/openeuler/kernel.git
git@toscode.gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

Search