原创 QEMU-KVM和Ceph RBD

https://www.cnblogs.com/sammyliu/p/5066895.html   理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 緩存機制總結 https://www.cnblog

原创 sched feature: TTWU_QUEUE

喚醒線程時,通過select_task_rq函數(考慮到負載均衡等因素)選擇該線程要運行的目標CPU(可能不是當前執行喚醒操作的cpu)。通過函數cpus_share_cache判斷如果目標CPU與當前CPU不共享LLC(即L3 cach

原创 NVMe協議SSD控制器端實現淺析

http://www.dostor.com/p/48121.html 一.NVMe 協議 NVMe協議是在PCIe SSD開始大量出現在市場上後,因爲各個廠家的私有協議不具有兼容性,無法和現有操作系統無縫銜接,INTEL爲了統一接口協議建

原创 What “Did we miss an interrupt?” means - nvme_timeout

"Did we miss an interrupt" mean? https://lkml.org/lkml/2018/4/26/623Question: We are testing NVMe cards on ARM64 platfo

原创 Asynchronous vectored I/O operations

英文原文是https://lwn.net/Articles/170954/,其描述了vectored operations。這裏在原文中間加上了與之對應的內核代碼的分析。 The file_operations structure con

原创 bluestore數據crc檢驗失敗,排除內核態出問題的方法

在ceph存儲測試中,發現用戶態通過aio讀取到的bluestore數據crc檢驗失敗,業務懷疑是內核態返回給用戶的數據有問題,可在塊設備的bio完成回調函數中直接讀取bio對應page的數據,與用戶態讀取的數據比較,排除內核態的問題。

原创 QEMU-KVM和Ceph RBD - 三篇文章

https://www.cnblogs.com/sammyliu/p/5066895.html   理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 緩存機制總結 https://www.cnblog

原创 塊存儲:寫塊設備緩存的代碼註釋

“塊存儲:AIO的直接寫流程註釋”中說到,在__generic_file_write_iter的處理流程中, 1) 如果是Direct 寫(IOCB_DIRECT),__generic_file_write_iter將首先調用generi

原创 塊存儲:AIO的直接寫流程註釋

提交io流程中aio_write之前函數的註釋,可參考“塊存儲:AIO的直接讀流程註釋”。  設置iter迭代器的函數註釋可參考“塊存儲:AIO的直接讀流程註釋”。 blkdev_write_iter函數調用__generic_fil

原创 新提的內核patch(direct-io)

https://lkml.org/lkml/2020/6/8/585

原创 塊存儲:AIO的直接讀流程註釋

AIO塊設備直接讀流程:  以下詳細代碼註釋:    其中aio_setup_rw函數用於設置遍歷用戶態buffer信息的迭代器iov_iter:  call_read_iter函數會調用塊設備的read_iter函數blkd

原创 nvme設備中斷的申請與註冊過程

nvme_setup_io_queues:   1,申請中斷向量 其中判斷PCIE設備支持的最大MSIX entry:   2,註冊中斷 nvme_create_io_queues -> nvme_create_queue-

原创 Linux內核報文收發-網卡部分

https://zhaozhanxu.com/archives/page/7/  Linux版本: 3.10.103 網卡驅動: ixgbe 報文收發簡單流程 網卡驅動默認採用的是NAPI的報文處理方式。即中斷+輪詢的方式,網卡收到一個

原创 Do we need to call set_current_state(TASK_INTERRUPTIBLE) before calling schedule?

Do I need to call set_current_state() before calling schedule() to schedule the next process from the run queue? I have

原创 ext4_commit_super BUG

最近在centos7.6遇到的問題,提交ext4 supperblock的buffer_head時在summit_bh_wbc函數鍾發生了BUG_ON, 原因在於ext4的sb對應的buffer_head沒有與page建立映射,運行到s