[發明專利]一種繞過Bio層訪問磁盤驅動的存儲接口的方法有效
| 申請號: | 201010621826.1 | 申請日: | 2010-12-27 |
| 公開(公告)號: | CN102073605A | 公開(公告)日: | 2011-05-25 |
| 發明(設計)人: | 饒國林 | 申請(專利權)人: | 深圳市創新科信息技術有限公司;云海創想信息技術(北京)有限公司 |
| 主分類號: | G06F13/16 | 分類號: | G06F13/16 |
| 代理公司: | 北京德琦知識產權代理有限公司 11018 | 代理人: | 牛崢;王麗琴 |
| 地址: | 518057 廣東省深圳市南山區*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 繞過 bio 訪問 磁盤 驅動 存儲 接口 方法 | ||
1.一種繞過Bio層訪問磁盤驅動的存儲接口的方法,其特征在于,包括如下步驟:
建立設備模型,每個磁盤設備對應一個磁盤設備對象,并將應用程序發起的IO請求封裝成IO請求對象;
為每個磁盤設備對象建立兩級隊列:等待隊列和處理隊列;等待隊列用于依次接收IO請求對象,在處理隊列有空位的情況下,將IO請求對象從等待隊列中轉移到處理隊列;
創建掃描線程,用于掃描所有磁盤設備對象的等待隊列,若等待隊列上有IO請求對象,從處理隊列中取出IO請求對象向底層提交,IO處理完畢后將該IO請求對象從處理隊列中移除。
2.根據權利要求1所述的方法,其特征在于,所述將應用程序發起的IO請求封裝成IO請求對象包括:
使用專用數據包記錄IO請求的關鍵信息;利用所述專用數據包的信息,構造并填充scsi_cmd結構;
所述從處理隊列中取出IO請求對象向底層提交包括:使用所述scsi_cmd結構作為傳入參數,通過下層指定接口注冊函數提交IO請求。
3.根據權利要求2所述的方法,其特征在于,所述關鍵信息包括:SCSI命令描述塊,IO請求的數據傳輸方向,讀寫請求的數據傳輸的DMA地址,數據傳輸長度和數據請求完成狀態。
4.根據權利要求2所述的方法,其特征在于,該方法進一步包括:在底層驅動中增加一條分支路徑接口注冊函數;
所述scsi_cmd結構記錄動態內存存取DMA地址,頁地址設為空;
所述使用所述scsi_cmd結構作為傳入參數,通過下層指定接口注冊函數提交IO請求包括:判斷所述scsi_cmd結構的頁地址是否為空,若是,通過所述分支路徑接口注冊函數提交IO請求。
5.根據權利要求2、3或4所述的方法,其特征在于,所述從處理隊列中取出IO請求對象向底層提交,IO處理完畢后將該IO請求對象從處理隊列中移除包括:
將中斷完成函數指針記錄到scsi_cmd結構中;
比較返回命令的命令序列號,來判斷該返回命令是否屬于超時的無效返回,若是,則結束處理;否則,記錄SCSI命令完成狀態信息,通過所述專用數據數據包向上層模塊返回,并且釋放scsi_cmd命令資源;
scsi_cmd的result字段記錄了IO完成的狀態,根據IO完成的狀態,調用相應的函數來向上層返回請求處理結果;
如果所述處理結果為命令正確完成,清除處理隊列上的相應IO請求對象,從等待隊列中繼續取新的IO請求對象轉移到處理隊列上;如果命令未能正確完成,將根據記錄的SCSI命令完成狀態信息判斷出錯原因,進行命令重試。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市創新科信息技術有限公司;云海創想信息技術(北京)有限公司,未經深圳市創新科信息技術有限公司;云海創想信息技術(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010621826.1/1.html,轉載請聲明來源鉆瓜專利網。





