0162] 另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單 元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
[0163] 上述以軟件功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存 儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機 網絡設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法 的部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(Read-OnlyMemory,簡 稱ROM)、隨機存取存儲器(RandomAccessMemory,簡稱RAM)、磁碟或者光盤等各種可以存 儲程序代碼的介質。
[0164] 最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡 管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然 可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替 換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精 神和范圍。
【主權項】
1. 一種報文接收方法,其特征在于,網絡設備的中央處理器CPU內核包括宿主核和輔 助核,任一報文接收隊列對應一個宿主核和至少一個輔助核,所述方法包括: 通過所述宿主核從所述接收隊列接收報文,所述宿主核持有自旋鎖; 在所述宿主核完成本輪報文的接收并進行報文處理時,若確定滿足預設條件,則由所 述輔助核競爭持有所述自旋鎖,并通過獲取到所述自旋鎖的輔助核從所述接收隊列接收報 文; 在所述宿主核完成報文處理后,由所述宿主核優先競爭并持有所述自旋鎖。2. 根據權利要求1所述的方法,其特征在于,所述確定滿足預設條件包括: 預設參考值; 根據所述宿主核本輪從所述接收隊列接收到的報文數量確定檔位; 根據所述檔位以及狀態機的當前狀態,確定所述狀態機的將來狀態并結合預設步長機 制調整所述參考值; 若所述參考值落入預設范圍,則確定滿足預設條件。3. 根據權利要求2所述的方法,其特征在于,所述根據所述宿主核本輪從所述接收隊 列接收到的報文數量確定檔位包括: 當所述宿主核本輪從所述接收隊列接收到的報文數量小于第一預設值時,確定所述檔 位為第一檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于所述第一預設值 且小于第二預設值時,確定所述檔位為第二檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于所述第二預設值 且小于第三預設值時,確定所述檔位為第三檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于第三預設值且小 于或者等于第四預設值時,確定所述檔位為第四檔。4. 根據權利要求3所述的方法,其特征在于,所述根據所述宿主核本輪從所述接收隊 列接收到的報文數量確定的檔位以及狀態機的當前狀態,確定所述狀態機的將來狀態包 括: 當所述檔位為第一檔時,確定所述狀態機的將來狀態為空閑; 當所述檔位為第二檔時,確定所述狀態機的將來狀態與所述狀態機的當前狀態一致; 當所述檔位為第三檔時,若所述狀態機的當前狀態為繁忙,則確定所述狀態機的將來 狀態為趨向空閑;若所述狀態機的當前狀態為保持、空閑、趨向繁忙或趨向空閑,則確定所 述狀態機的當前狀態為空閑; 當所述檔位為第四檔時,若所述狀態機的當前狀態為空閑,則確定所述狀態機的將來 狀態為趨向繁忙;若所述狀態機的當前狀態為保持、繁忙、趨向繁忙、或趨向空閑,則確定所 述狀態機的將來狀態為繁忙。5. 根據權利要求3或4所述的方法,其特征在于,根據所述宿主核本輪從所述接收隊列 接收到的報文數量確定的檔位以及狀態機的當前狀態,并結合預設步長機制調整所述參考 值包括: 當所述檔位為第一檔時,將所述參考值增加第一預設步長; 當所述檔位為第二檔時,保持所述參考值不變; 當所述檔位為第三檔時,若所述狀態機的當前狀態為保持或空閑,則將所述參考值增 加第二預設步長;若所述狀態機的當前狀態為繁忙、趨向繁忙或趨向空閑,則保持所述參考 值不變; 當所述檔位為第四檔時,若所述狀態機的當前狀態為保持、繁忙或趨向繁忙,則將所述 參考值減小第三預設步長;若所述狀態機的當前狀態為空閑或趨向空閑,則保持所述參考 值不變; 對所述參考值進行校正; 其中,所述第一預設步長、所述第二預設步長和所述第三預設步長為正數,所述第四預 設步長大于所述第一預設步長和所述第二預設步長。6. -種網絡設備,其特征在于,所述網絡設備的中央處理器CPU內核包括宿主核和輔 助核,任一報文接收隊列對應一個宿主核和至少一個輔助核,所述網絡設備包括: 接收單元,用于通過所述宿主核從所述接收隊列接收報文,所述宿主核持有自旋鎖; 處理單元,用于在所述宿主核完成本輪報文的接收并進行報文處理時,若確定滿足預 設條件,則由所述輔助核競爭持有所述自旋鎖,并通過獲取到所述自旋鎖的輔助核從所述 接收隊列接收報文; 所述處理單元還用于,在所述宿主核完成報文處理后,由所述宿主核優先競爭并持有 所述自旋鎖。7. 根據權利要求6所述的網絡設備,其特征在于,所述處理單元具體用于: 預設參考值; 根據所述宿主核本輪從所述接收隊列接收到的報文數量確定檔位; 根據所述檔位以及狀態機的當前狀態,確定所述狀態機的將來狀態并結合預設步長機 制調整所述參考值; 若所述參考值落入預設范圍,則確定滿足預設條件。8. 根據權利要求7所述的網絡設備,其特征在于,所述處理單元具體用于: 當所述宿主核本輪從所述接收隊列接收到的報文數量小于第一預設值時,確定所述檔 位為第一檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于所述第一預設值 且小于第二預設值時,確定所述檔位為第二檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于所述第二預設值 且小于第三預設值時,確定所述檔位為第三檔; 當所述宿主核本輪從所述接收隊列接收到的報文數量大于或者等于第三預設值且小 于或者等于第四預設值時,確定所述檔位為第四檔。9. 根據權利要求8所述的網絡設備,其特征在于,所述處理單元具體用于: 當所述檔位為第一檔時,確定所述狀態機的將來狀態為空閑; 當所述檔位為第二檔時,確定所述狀態機的將來狀態與所述狀態機的當前狀態一致; 當所述檔位為第三檔時,若所述狀態機的當前狀態為繁忙,則確定所述狀態機的將來 狀態為趨向空閑;若所述狀態機的當前狀態為保持、空閑、趨向繁忙或趨向空閑,則確定所 述狀態機的當前狀態為空閑; 當所述檔位為第四檔時,若所述狀態機的當前狀態為空閑,則確定所述狀態機的將來 狀態為趨向繁忙;若所述狀態機的當前狀態為保持、繁忙、趨向繁忙、或趨向空閑,則確定所 述狀態機的將來狀態為繁忙。10.根據權利要求8或9所述的網絡設備,其特征在于,所述處理單元具體用于: 當所述檔位為第一檔時,將所述參考值增加第一預設步長; 當所述檔位為第二檔時,保持所述參考值不變; 當所述檔位為第三檔時,若所述狀態機的當前狀態為保持或空閑,則將所述參考值增 加第二預設步長;若所述狀態機的當前狀態為繁忙、趨向繁忙或趨向空閑,則保持所述參考 值不變; 當所述檔位為第四檔時,若所述狀態機的當前狀態為保持、繁忙或趨向繁忙,則將所述 參考值減小第三預設步長;若所述狀態機的當前狀態為空閑或趨向空閑,則保持所述參考 值不變; 對所述參考值進行校正; 其中,所述第一預設步長、所述第二預設步長和所述第三預設步長為正數,所述第四預 設步長大于所述第一預設步長和所述第二預設步長。
【專利摘要】本發明實施例提供一種報文接收方法及網絡設備,涉及通信技術領域,能夠解決現有技術中通過多個CPU內核從同一接收隊列接收報文時,由于多核頻繁競爭自旋鎖導致的系統資源開銷大,系統性能下降的問題。具體方案為:網絡設備的中央處理器CPU內核包括宿主核和輔助核,任一報文接收隊列對應一個宿主核和至少一個輔助核,網絡設備通過宿主核從接收隊列接收報文,宿主核持有自旋鎖,在宿主核完成本輪報文的接收并進行報文處理時,若確定滿足預設條件,則允許輔助核競爭自旋鎖,并通過獲取到自旋鎖的輔助核從接收隊列接收報文,在宿主核完成報文處理后,由宿主核優先競爭并持有自旋鎖。本發明實施例用于接收報文。
【IPC分類】H04L12/863, H04L12/24
【公開號】CN105071973
【申請號】CN201510542550
【發明人】姜先緒, 羅向征
【申請人】邁普通信技術股份有限公司
【公開日】2015年11月18日
【申請日】2015年8月28日