2014年2月17日 星期一

用blktrace 錄 postmark

1 準備一個partition (就是讓postmark噴 request過去的啦)。
       
         a. what size of partition
         b. what filesystem    
       
          e.g., sudo postmark xx.conf


2 打開blktrace (準備攔截噴到那個partition的IO)
   例如  blktrace -d  /dev/sda3
    note: 如果你硬要自己取 blktrace outputfile的名子,要小心…。e.g., 我取『pm_64-        128file_32rec_5000WTx_5GB.blktrace.out』  這個名子 blkparse 都失敗…


3 新開一個terminal來啟動 postmark →設參數 (看你想要什麼樣的workload) → run
   這樣postmark就開始噴request了

    note:  跑postmark前,最好先清空cache。參考網址




     ps 每次設參數很煩 你就寫一個 .conf 檔,然後用 "load" 載入
     note:  設定postmark file數時(e.g., set number)要確定沒超過 partition size,不然可能出現權限問題


4 等到噴完 用ctrl + c 終止 blktrace ,然後再同一個目錄下會出現很多log檔~


5 用 blkparse 去解碼,不然你是看不懂那一堆 log檔的
   e.g., blkparse sdb4.blktrace* > pm64_128kbfile_32kbrec_5GB.dis.tmp


6 post-processing if needed.
   像是後製成 disksim可以吃的格式。



---------
ref: http://www.cse.unsw.edu.au/~aaronc/iosched/doc/blktrace.html

     

web2 +mp3 結果圖 分析

1 原本paper上的圖有開work-conserving,要把他改成新圖。
   而且只放  前100sec (也就是有灌滿的期間)



2 在該段期間內,QDI差異約6~7倍 (當然,承受較多的user受到干擾)



3 無GC ,  so no GCI

2014年2月10日 星期一

install linux


====partition plan=========
/ : 30G  SSD
/boot : 1G SSD
/tmp: 50GB HDD
/home : 300 HDD
swap : 2G SSD
tool:  http://www.junauza.com/2012/04/best-disk-partition-managers-for-linux.html





choose best server

apt-get update
      @ 套件管理需知 (建議先看,搞懂dkpg, apt, yum 等term...)


bison/flex/geany/gnuplot/htop/virtualbox/filezilla/terminator/inteltoolkit/postmark/chrome

pae
sudo apt-get install linux-generic-pae linux-headers-generic-pae

prompt color style

keyboard hot key


安裝insight
http://outsidenote.blogspot.tw/2013/03/install-insight-debugger-on-ubuntu.html




ref: http://sleepingwolf.pixnet.net/blog/post/19509749-%E3%80%90%E8%BD%89%E8%BC%89%E3%80%91%E5%AE%8C%E5%85%A8%E7%94%A8-linux-%E4%BE%86%E7%94%9F%E6%B4%BB




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

2014年1月12日 星期日

自評

me
無法擔大任
尚無夢想
愛找理由

do it for myself !

2013年12月27日 星期五

Improving NAND Endurance by Dynamic Program and Erase Scaling

paper sharing:
title: Improving NAND Endurance by Dynamic Program and Erase Scaling
where: HotStorage13

------------------------------------------------------------------------------
1. flash的endurance和program時用的電壓有關~ (電壓越大~命越短)
2. 承上,所以program speed和endurance就是一個tradeoff囉。(電壓越大寫越快)
3 他就弄了一個FTL叫 DPES-FTL (dynamic program and erase scaling (DPES)),希望可以提高endurance而又不要害到write speed太多

how ? 
→ 兩個write req之間的idle time時用小電壓

如何知道會有idle time?
→ by estimation

contributions
1. endurance-programSpeed model
2. DEPS-FTL

2013年12月25日 星期三

Program Interference in MLC NAND

Program Interference in MLC NAND Flash Memory: Characterization, Modeling, and Mitigation' ICCD13
http://users.ece.cmu.edu/~omutlu/pub/flash-programming-interference_iccd13.pdf


建一個model,讓你知道在什麼情況下會發生 program interference

情況包含: 1 program location
2 program order 
3 current P/E cycle
準度有96%呢~~好強喔~~~ 

然後呢,要幹麻?
→ 用途1,你可以把這個model掛上disksim,就可以做這方面的實驗了。

那他拿來幹麻?
→ 他用他預測的model,來做偷調電壓的動作 (我沒看很仔細)
例如: 某個cell讀出來 10V,他查一下model認定該cell原本應該是8V
是被干擾才變成10V,所以就扣減2V

好處?
→ 如果真的被他猜對,原本可能要ECC幫忙的,就省起來了~

省起來又怎樣? ECC不是電路在作嗎?
→ ECC發現error會在correct完後"再寫回",所以如果可以把不用correct
就可以省寫很多pages啦~