[發明專利]一種用戶態無鎖轉發的實現方法及裝置有效
| 申請號: | 202010131073.X | 申請日: | 2020-02-28 |
| 公開(公告)號: | CN111475264B | 公開(公告)日: | 2023-05-12 |
| 發明(設計)人: | 李昊 | 申請(專利權)人: | 新華三技術有限公司合肥分公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/52 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 230001 安徽省合肥市高新區創*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用戶 態無鎖 轉發 實現 方法 裝置 | ||
本申請提供一種用戶態無鎖轉發的實現方法及裝置,該方法包括:當線程對數據進行訪問或訪問結束時,根據線程的類別,更新已創建的紅區對應的結構屬性,其中,該紅區用于記錄線程對數據的全部訪問過程,該紅區包括當前使用紅區以及過期待處理紅區,該當前使用紅區存儲待釋放數據;根據更新后的結構屬性,判斷過期待處理紅區中是否存在訪問的線程;如果過期待處理紅區中未存在訪問的線程,則將當前使用紅區存儲的待釋放數據進行釋放處理。
技術領域
本申請涉及通信技術領域,尤其涉及一種用戶態無鎖轉發的實現方法及裝置。
背景技術
隨著互聯網、4G、5G網絡的普及推廣,對于網絡操作系統(英文:networkoperating?system,簡稱:Nos)的轉發性能要求越來越高。無論是運行在服務器或是路由器中,Nos充分利用多核中央處理器(英文:Central?Processing?Unit,簡稱:CPU)的能力。在多核CPU并發的情況下,會出現對關鍵數據的沖突訪問,因此,提供一種多核無鎖的轉發方式,對于轉發性能是至關重要的。
讀-拷貝更新(英文:Read-Copy?Update,簡稱:RCU),是在Linux內核態下提供的一種無鎖并發訪問方式,當多個上下文(例如,內核線程、軟中斷等)等并發訪問數據時,對于讀者無需加鎖進行互斥處理,是一種非常高效的互斥方式。
RCU機制主要包括兩部分:1)拷貝修改。如圖1所示,以圖1中的鏈表為例,在對鏈表中的某個節點更新時,先拷貝一個副本(new-one),對副本進行修改。然后,將副本掛在鏈表上舊節點(old-one)所在的位置。這個過程中,對舊節點的內容不做修改,包括舊節點的下一級節點的地址。因此,上述過程中,正在訪問該鏈表的讀者,依然可以通過舊節點安全的訪問該鏈表,同時無需在修改的過程中加鎖對讀者進行屏蔽。2)延遲釋放。在如圖1修改過副本后,舊節點不會被立即釋放,而是繼續掛在鏈表上。在特定的時間,調用舊節點的釋放回調函數,將舊節點釋放。
由于并不知道當前有哪些上下文在訪問某一個待釋放的節點,因此,RCU機制通過優雅期(grace?period)來確定釋放的時機。即以優雅期為界,對關鍵數據的修改或刪除操作在當前優雅期完成,那么在當前優雅期內,處于其他CPU上的讀者可能訪問到舊數據(在修改或刪除完成前就查找并使用舊節點),也可能訪問新數據(在修改或刪除操作完成后才查找到新節點)。因此,在全部CPU都完成了一次上下文切換后,即可保證后續讀者訪問的是新節點,可將舊節點安全釋放。
當前,主流的Nos在采用了用戶態的系統后,則失去了高效安全的RCU機制。盡管用戶態也有類似RCU的用戶態RCU(英文:user-space?read-copy?update,簡稱:URCU)機制,但是,由于URCU無法獲取CPU上的上下文切換,不能感知優雅期。因此,URCU對于編碼的要求非常高,并且URCU需要暴露出很多實現細節,尤其是將Nos移植到用戶態的時,適配URCU過程困難。
發明內容
有鑒于此,本申請提供了一種用戶態無鎖轉發的實現方法及裝置,解決用戶態轉發的無鎖要求,提供了一種接近內核RCU的解決方案。
第一方面,本申請提供了一種用戶態無鎖轉發的實現方法,該方法包括:
當線程對數據進行訪問或訪問結束時,根據線程的類別,更新已創建的紅區(redzone)對應的結構屬性,該紅區用于記錄線程對數據的全部訪問過程,該紅區包括當前使用紅區以及過期待處理紅區,該當前使用紅區存儲待釋放數據;
根據更新后的結構屬性,判斷過期待處理紅區中是否存在訪問的線程;
如果過期待處理紅區中未存在訪問的線程,則將當前使用紅區存儲的待釋放數據進行釋放處理。
結合第一方面,在第一種可能的實現方式中,當線程對數據進行訪問或訪問結束時,根據線程的類別,更新已創建的紅區對應的結構屬性之前,該方法還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新華三技術有限公司合肥分公司,未經新華三技術有限公司合肥分公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010131073.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于牛頓共軛梯度法的深度學習網絡架構
- 下一篇:一種防攻擊方法及裝置





