原创 BLOCK_DUMP觀察LINUX IO寫入的具體文件

很多情況下開發者調測程序需要在Linux下獲取具體的IO的狀況,目前常用的IO觀察工具用vmstat和iostat,具體功能上說當然是iostat更勝一籌,在IO統計上時間點上更具體精細。但二者都是在全局上看到IO,宏觀上的數據對於判斷I

原创 bio sector的計算與塊設備lba

在構造nvme cmd命令的時候,使用了request的參數__sector,__data_len來設置nvme命令的lba,len值。  request的參數__sector,__data_len是怎麼得到的呢? 在造請求的函數(bl

原创 nvme req的dma映射與提交流程註釋

nvme_queue_rq函數用於提交一個req到nvme submission queue中。 1,nvme_setup_cmd用於構造nvme cmd:  nvme_setup_rw函數用於設置nvme讀寫命令的基礎字段:   2

原创 用systemtap確認信號的發送者

線程收到SIGSTOP信號進入了 T 暫停狀態,用systemtap確認誰發送了SIGSTOP信號給該線程。

原创 nvme 內核調用棧

nvme_queue_rq:   nvme_irq:

原创 Systemtap Best Examples

http://epic-alfa.kavli.tudelft.nl/share/doc/systemtap-client-2.7/examples/index.html

原创 個人新提的一個內核PATCH

https://lkml.org/lkml/2020/3/4/289  

原创 睡眠線程喚醒後vruntime的補償

  enqueue_entity -> if (flags & ENQUEUE_WAKEUP) place_entity(cfs_rq, se, 0); 因GENTLE_FAIR_SLEEPERS默認爲ture,所以默認補償值爲調

原创 你應該知道的Linux內核softirq

說起這個softirq ,很多人還是一頭霧水,覺得這個是什麼東西,跟tasklets 和 workqueue有什麼不同。 每次談到這個,很多人,包括我,都是有點緊張,特別是面試的時候,因爲你一旦說錯了什麼,那麼你這次面試估計就歇菜了。 談

原创 systemtap examples

函數耗時定量測試(類似於ftrace的function_graph) @entry, is available for automatically saving an expression at entry time for use in

原创 Dynamic Tracing with DTrace & SystemTap

http://myaut.github.io/dtrace-stap-book/index.html

原创 cond_resched的使用

kernel 4.18(centos8)中的cond_resched 在可搶佔內核中,在內核態有很多搶佔點,在有高優先級的進程需要運行時,就會在搶佔點到來時執行搶佔;而在內核不可搶佔系統中(如centos系統),在內核態運行的程序可調用c

原创 I/O, I/O, It's NVMe I go…

As a replacement for SCSI and SATA, the storage industry has developed a new protocol called Non-Volatile Memory Expres

原创 存儲系統--硬件