主题 : 测试发现6410下linux2.6.38下重大bug, 请友善和感兴趣的测试 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 3218
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
综合积分: 20 分
注册时间: 2008-12-31
最后登录: 2013-05-27
楼主  发表于: 2011-09-03 16:39

 测试发现6410下linux2.6.38下重大bug, 请友善和感兴趣的测试

同样的程序在 x86 下个版本没问题, x86 下 2.6.38版本也没问题(使用fedora14的config编译)
在其他的 arm9 下没问题
6410下的 2.6.28 2.6.36 下 也没问题,
就在 mini6410+2.6.38  下有问题.
问题的产生: 程序使用 setitimer 设置 alarm,alarm的执行只是简单计数,然后在循环执行 memset(...) system(...),
alarm 间隔在 10ms 内, memset 的size 超过6M 时, 程序执行几秒就 block了,占100% cpu,  console, telnet 还正常。
附件是 测试程序源码, 直接编译即可执行, 三个参数,
第一个参数是 memset 内存的size,单位是MB,
第二个参数是 alarm 时间间隔,单位是毫秒,
第三个参数是是否执行system函数(0 不执行, 非0  执行)。
例如: arm-linux-gcc -o test test.c
test 传到6410, 执行
./test 6 10 1
减少 memset size , 扩大alarm 间隔 就不会block, 据说2.6.38更新了任务调度算法,不知是否与此有关。
描述:alarm bug 测试程序
附件: test.txt (5 K) 下载次数:0
恐怖分子
级别: 新手上路
UID: 3218
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
综合积分: 20 分
注册时间: 2008-12-31
最后登录: 2013-05-27
1楼  发表于: 2011-09-05 09:05
没人测试验证一下吗?
恐怖分子
级别: 新手上路
UID: 38856
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2011-03-02
最后登录: 2012-03-14
2楼  发表于: 2011-12-31 14:53
稍微等下,还没到你那地步呢~   你先再找找问题,修改修改