内存测试用例memtester4.3.0

2 篇文章 0 订阅
[root@sylixos:/root]# free
heap show >>

     HEAP         TOTAL      USED     MAX USED  SEGMENT USED
-------------- ---------- ---------- ---------- ------- ----
kersys          1302549KB   305619KB   306644KB    1988  23%

vmm physical zone show >>

ZONE     PHYSICAL         SIZE     PAGESIZE       PGD        FREEPAGE  DMA  USED
---- ---------------- ------------ -------- ---------------- -------- ----- ----
   0         b1700000      3400000     1000         90e88000    10900 true   18%
   1         b4b00000     26500000     1000         90e88000   156765 false   0%
   2       2000000000    180000000     1000         90e88000  1572864 false   0%

ALL-Physical memory size:  8104MB
VMM-Physical memory size:  6809MB
VMM-Physical memory free:  6798MB
[root@sylixos:/root]# 

free命令可得内存最大可用6798MB,./memtester 第一个参数表示测多大内存(单位可以是G、M、K、B),第二个参数表示测试次数。
(测试内存大小建议是VMM-Physical memory free大小的40%)
测试结果:
在这里插入图片描述

memtester-4.3.0memtester-ARM
int test_stuck_address(bufa, count);(√ ) 先全部把地址值交替取反放入对应存储位置,然后再读出比较,重复2次(官网的重复了16次):测试address bus
int test_random_value(bufa, bufb, count);(√ )等效test_random_comparison(bufa, bufb, count):数据敏感型测试用例
int test_xor_comparison(bufa, bufb, count);(-) 与test_random_value比多了个异或操作,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_sub_comparison(bufa, bufb, count);(-)与test_random_value比多了个减法操作,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_mul_comparison(bufa, bufb, count);(-)与test_random_value比多了个乘法操作,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_div_comparison(bufa, bufb, count);(-)与test_random_value比多了个除法操作,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_or_comparison(bufa, bufb, count);(√ )在test_random_comparison()里面合并了,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_and_comparison(bufa, bufb, count);(√ )在test_random_comparison()里面合并了,用户场景之一,用例覆盖。数据敏感/指令功能验证,同时可验证SAF;
int test_seqinc_comparison(bufa, bufb, count);(√ )这是 test_blockseq_comparison的一个子集;模拟客户压力测试场景。
int test_solidbits_comparison(bufa, bufb, count);(√ )固定全1后写入两个buffer,然后读出比较,然后全0写入读出比较;这就是Zero-One算法,Breuer & Friedman 1976 ,检测SAF的,算法是{w0,r0,w1,r1}时间复杂度是4N,又叫做MSCAN,验证每个cell能读写,间接测试了stuck at fault
int test_checkerboard_comparison(bufa, bufb, count);(√ )把设定好的几组Data BackGround,依次写入,然后读出比较 (注:论文里说设计良好的Data background可以检测出state coupling faults时间复杂度是4N,这是验证相邻位置是否互相影响从而设计的用例。
int test_blockseq_comparison(bufa, bufb, count);(√ )一次写一个count大小的块,写的值是拿byte级的数填充32bit,然后取出对比,接着重复256次;也是压力用例,只是次数变多了;
int test_walkbits0_comparison(bufa, bufb, count);(√ )就是bit=1的位置在32bit里面移动,每移动一次就全部填满buffer,先是从低位往高位移,再是从高位往低位移动,(这么做的目的是啥?其中的一个目的是检测NPSF其次是CFs,其次是数据敏感型异常检测,注这里是32bit的,还有8bit的粒度更细了)
int test_walkbits1_comparison(bufa, bufb, count);(√ )与上同理,另注:早memtester86中这个算法叫做moving inversions algorithm
int test_bitspread_comparison(bufa, bufb, count);(√ )还是在32bit里面移动,只是这次移动的不是单单的一个0或者1,而是两个1,这两个1之间隔着两个空位,(是临近耦合异常的一种data pattern变体:两个1之间间隔1个位置,然后同步移动)
int test_bitflip_comparison(bufa, bufb, count);(√ )也是32bit里面的一个bit=1不断移动生成data pattern然后,每个pattern均执行:{取反交替写入a、b缓冲区,写完之后检查一遍,然后不断重复以下步骤八次{用八个DMA从a缓冲区搬数据到b缓冲区,并行搬,模拟短时间内反复读写同一位置看是否有数据丢失异常}}核心思想:短时间内反复读写同一位置。
int test_8bit_wide_random(bufa, bufb, count);(√ )以char指针存值,也就是每次存8bit,粒度更细;
int test_16bit_wide_random(bufa, bufb, count);(√ )以unsigned short指针存值,也就是每次存16bit,不同粒度检测;
int test_crosstalk_comparison(bufa, bufb, count);[32个0,接着32bit里面1个0移动]以这样的模型叠加写入内存;(只有上行,没像有moving inversions algorithm一样进行反转)
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值