顯示具有 disksim 標籤的文章。 顯示所有文章
顯示具有 disksim 標籤的文章。 顯示所有文章

2014年5月8日 星期四

how to add a new parameter into .parv file in disksim






1  add your parameter in ssdmodel/modules/ssd.modspec as below:




2 declare a new variable to take the value of the parameter


3 make
   note: this will generate ssdmodel_ssd_param.c
                                     ssdmodel_ssd_param.h
                                     ssdmodel_ssd_param.tex
                                     modules.h





-----------------
contributed by Wade in oslab of CSIE in NCKU




        

2014年1月28日 星期二

『筆記』disksim在超急速trace下跑很慢,如何去加速

『筆記』disksim在超急速trace下跑很慢,如何去加速 
1 先用gprof去查可能的bottleneck function
2 以title為例,bottleneck都在處理queue(大多是 insert,get或是delete )
3. 本次發現 logorg_addnewtooutstandq()是bottleneck。原因是裡面有個while loop的功能只為了找到某linked list的tail。解法是: 『維護一個pointer永遠指向outstandq的tail』。注意: outstandq有很多個(也就是有很多條linked lists)。
4. 注意: tail pointer指向的東西(假設是temp)可能會被移除,所以temp被移掉
時最好是將tail-pointer更新成 temp->prev,不然下次addnewtooutstandq時如果發現tail-pointer還是null,就必需重找…(就沒加速到了啦)

5. ps: gprof只有當程式全部跑完才會產生 gmon.out

2013年11月13日 星期三

shell script更新

為了自動印出disksim實驗的config設定
更新了一下執行模擬的shell script檔。

基本上就是用grep去查是否存在   #define某個功能

短短的幾行,也寫很久,因為regular expression不熟…
心得: 基礎不穩,萬事卡

2011年7月11日 星期一

disksim SSD容量 與 "Max Addressable LBA in SSD Trace File"

SSD容量的算法,如下:
---
Pages Per Block         = 64
Blocks Per Plane        = 2048
Planes Per Element      = 8
Page Size               = 8 sectors = 4 KB
----
Pages Per Single Element 
= 1 (Element) * 8 (planes) * 2048 (Blocks) *64 (Pages) = 1048576 Pages
那,trace裡面的 Block number 最大可以定址到多少?
先換算成sector(file system block)
1048576* 8 = 8388608
the MAX Addressable Sector = 0 .. 8388607 Sectors

disksim 中 "I/O trace time scale" 參數

disksim在parv檔提供這個參數,讓user可以調整trace的特徵(如 arrival time, request size, location etc.)
但是網友發現 在disksim source中根本就把 IO trace time scale寫死,程式碼如下:


在 disksim/src/disksim_iosim.c下:

void iosim_initialize_iosim_info ()
{
    disksim->iosim_info = DISKSIM_malloc (sizeof(iosim_info_t));
    bzero ((char *)disksim->iosim_info, sizeof(iosim_info_t));

    /* initializations that get remapped into iosim_info */
    ioscale = 1.0;    /**************LOOK HERE************/
    last_request_arrive = 0.0;
    constintarrtime = 0.0;
}
也就是說,想改變request的arrival time,只能在上面code中改。

原文:https://sos.ece.cmu.edu/pipermail/disksim-users/2007-August/000184.html