bio sector的計算與塊裝置lba

2021-10-05 20:44:49 字數 1172 閱讀 3403

在構造nvme cmd命令的時候,使用了request的引數__sector,__data_len來設定nvme命令的lba,len值。

request的引數__sector,__data_len是怎麼得到的呢?

在造請求的函式(blk_mq_make_request,通常由submit_bio呼叫)中,如果新bio能合併到當前執行緒plug中的request或者能合併到裝置請求佇列中的request(乙個request是多個bio的集合,把多個磁碟位址連續的bio合併成乙個request),則會根據是前項合併還是後項合併重新調整request的__sector與__data_len;如果不能合併,則申請新的request,用bio初始化他:

在傳送nvme cmd之前,要對request中bio鍊錶中所有bio中的所有vector進行dma對映,

關於最開始構造bio時,bio 的bi_sector值的**,請參考另一篇博文「塊裝置非同步讀page流程」中的案例。

HDFS塊大小的計算與設計規則

1.概述 hadoop集群中檔案的儲存都是以塊的形式儲存在hdfs中。2.預設值 從2.7.3版本開始block size的預設大小為128m,之前版本的預設值是64m.3.如何修改block塊的大小?可以通過修改hdfs site.xml檔案中的dfs.block.size對應的值。dfs.blo...

「塊定義」與「塊參照」的區別

塊定義 與 塊參照 的區別 關係 塊定義 即為 塊表記錄,模型空間,圖紙空間 塊參照 即為塊引用 塊參照 塊引用 存在於模型空間或者布局空間 塊定義和模型空間和布局空間是同等級別 同名塊不可以巢狀 要遍歷塊定義,先用塊參考求出塊定義的id blockid 然後遍歷塊定義。塊參照說明 乙個塊參考用於放...

檢測塊與塊的碰撞和塊和點

首先獲取到將要檢測的兩個物件,接下來得到兩個物件的塊區域,然後檢測碰撞,例如 for varob inaarr index1.removefromparent true aarr.splice aarr.indexof index1 1 計算分數 vars this.score label.gets...