如何解决SSDsim 转Financial1,2 出bug的情况

来源:互联网 发布:关口知宏日本铁道 编辑:程序博客网 时间:2024/05/29 12:10

最近在做SSD模拟,发现了一个不错的simulator (http://storage.hust.edu.cn/SSDsim/)。下载代码,并且成功转换Financial1,2 (http://traces.cs.umass.edu/index.php/Storage/Storage) 成ascii格式,但是代码有执行错误。后来发现request的第三个参数(例如10698607296512 16 888 1 0 这里的888)不能为0,代码里也没做处理。

为了解决这个问题,添加了以下代码:

在ssd.c文件的 get_requests(struct ssd_info *ssd)  函数中,sscanf(buffer,"%I64u %d %d %d %d",&time_t,&device,&lsn,&size,&ope); 之后添加if (lsn == 0)  return 516;

同时在ssd.c文件的 while循环里 flag=get_requests(ssd); 之后做一个判断 if (flag == 516) continue;

意思就是如果进来的request的第三个参数即 lsn = 0,那么跳过这条请求,接着接收下一条请求(虽然这么做不知道合不合理,但是暂时能解决trace file无法执行的问题)。

0 0
原创粉丝点击