原创 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