国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種報(bào)文接收方法及網(wǎng)絡(luò)設(shè)備的制造方法

      文檔序號:9352712閱讀:1004來源:國知局
      一種報(bào)文接收方法及網(wǎng)絡(luò)設(shè)備的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種報(bào)文接收方法及網(wǎng)絡(luò)設(shè)備。
      【背景技術(shù)】
      [0002] 隨著多核技術(shù)的發(fā)展,具有多個(gè)中央處理器(Central Processing Unit,CPU)內(nèi) 核的網(wǎng)絡(luò)設(shè)備,可以通過分流功能將從外部設(shè)備接收到的數(shù)據(jù)報(bào)文分流到接收接口的多個(gè) 接收隊(duì)列中,使得每個(gè)CPU內(nèi)核對應(yīng)接收一個(gè)接收隊(duì)列的報(bào)文,從而達(dá)到多核接收同一接 收接口的報(bào)文的目的。通常,每個(gè)接收隊(duì)列對應(yīng)一種類型的報(bào)文,當(dāng)某種類型報(bào)文的流量持 續(xù)突發(fā)時(shí),通過單個(gè)CPU內(nèi)核從當(dāng)前接收隊(duì)列接收該類型的報(bào)文時(shí),容易出現(xiàn)丟包現(xiàn)象,很 難滿足網(wǎng)絡(luò)設(shè)備對接收性能的要求,因而需要通過多核來接收該接收隊(duì)列的報(bào)文。
      [0003] 任一 CPU內(nèi)核從某一接收隊(duì)列接收報(bào)文時(shí)都需要訪問該接收隊(duì)列的緩沖區(qū)描述 符(Buffer Description,BD)構(gòu)成的BD環(huán)數(shù)據(jù)結(jié)構(gòu),該BD環(huán)屬于臨界資源,可以通過自旋 鎖進(jìn)行保護(hù)。在任一 CPU內(nèi)核訪問BD環(huán)之前,可以通過獲取自旋鎖來阻止其它CPU內(nèi)核對 BD環(huán)的訪問,并在完成報(bào)文接收后釋放自旋鎖,以解除對BD環(huán)的鎖定。為了加快報(bào)文接收, 網(wǎng)絡(luò)設(shè)備通常采用軟件輪詢方式從接收隊(duì)列接收報(bào)文,在該種情況下,參見圖1所示的多 核競爭自旋鎖的示意圖,各CPU內(nèi)核通過競爭自旋鎖來訪問BD環(huán)以從接收隊(duì)列接收報(bào)文; 并且,當(dāng)其中一個(gè)CPU內(nèi)核獲取到自旋鎖并進(jìn)行報(bào)文接收時(shí),其它CPU內(nèi)核仍會(huì)頻繁地競爭 自旋鎖,從而使得系統(tǒng)資源開銷較大,導(dǎo)致系統(tǒng)性能下降。

      【發(fā)明內(nèi)容】

      [0004] 本發(fā)明實(shí)施例提供一種報(bào)文接收方法及網(wǎng)絡(luò)設(shè)備,能夠解決現(xiàn)有技術(shù)中通過多個(gè) CPU內(nèi)核從同一接收隊(duì)列接收報(bào)文時(shí),由于頻繁競爭自旋鎖導(dǎo)致的系統(tǒng)資源開銷大,系統(tǒng)性 能下降的問題。
      [0005] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
      [0006] 第一方面,提供一種報(bào)文接收方法,網(wǎng)絡(luò)設(shè)備的中央處理器CPU內(nèi)核包括宿主核 和輔助核,任一報(bào)文接收隊(duì)列對應(yīng)一個(gè)宿主核和至少一個(gè)輔助核,所述方法包括:
      [0007] 通過所述宿主核從所述接收隊(duì)列接收報(bào)文,所述宿主核持有自旋鎖;
      [0008] 在所述宿主核完成本輪報(bào)文的接收并進(jìn)行報(bào)文處理時(shí),若確定滿足預(yù)設(shè)條件,則 由所述輔助核競爭持有所述自旋鎖,并通過獲取到所述自旋鎖的輔助核從所述接收隊(duì)列接 收報(bào)文;
      [0009] 在所述宿主核完成報(bào)文處理后,由所述宿主核優(yōu)先競爭并持有所述自旋鎖。
      [0010] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述確定滿足預(yù)設(shè)條件 包括:
      [0011] 預(yù)設(shè)參考值;
      [0012] 根據(jù)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量確定檔位;
      [0013] 根據(jù)所述檔位以及狀態(tài)機(jī)的當(dāng)前狀態(tài),確定所述狀態(tài)機(jī)的將來狀態(tài)并結(jié)合預(yù)設(shè)步 長機(jī)制調(diào)整所述參考值;
      [0014] 若所述參考值落入預(yù)設(shè)范圍,則確定滿足預(yù)設(shè)條件。
      [0015] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式 中,所述根據(jù)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量確定檔位包括:
      [0016]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量小于第一預(yù)設(shè)值時(shí),確定所 述檔位為第一檔;
      [0017]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于所述第一預(yù) 設(shè)值且小于第二預(yù)設(shè)值時(shí),確定所述檔位為第二檔;
      [0018]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于所述第二預(yù) 設(shè)值且小于第三預(yù)設(shè)值時(shí),確定所述檔位為第三檔;
      [0019]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于第三預(yù)設(shè)值 且小于或者等于第四預(yù)設(shè)值時(shí),確定所述檔位為第四檔。
      [0020] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式 中,所述根據(jù)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量確定的檔位以及狀態(tài)機(jī)的 當(dāng)前狀態(tài),確定所述狀態(tài)機(jī)的將來狀態(tài)包括:
      [0021] 當(dāng)所述檔位為第一檔時(shí),確定所述狀態(tài)機(jī)的將來狀態(tài)為空閑;
      [0022] 當(dāng)所述檔位為第二檔時(shí),確定所述狀態(tài)機(jī)的將來狀態(tài)與所述狀態(tài)機(jī)的當(dāng)前狀態(tài)一 致;
      [0023]當(dāng)所述檔位為第三檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為繁忙,則確定所述狀態(tài)機(jī)的 將來狀態(tài)為趨向空閑;若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為保持、空閑、趨向繁忙或趨向空閑,則確 定所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為空閑;
      [0024]當(dāng)所述檔位為第四檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為空閑,則確定所述狀態(tài)機(jī)的 將來狀態(tài)為趨向繁忙;若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為保持、繁忙、趨向繁忙、或趨向空閑,則確 定所述狀態(tài)機(jī)的將來狀態(tài)為繁忙。
      [0025] 結(jié)合第一方面的第二或第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn) 方式中,根據(jù)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量確定的檔位以及狀態(tài)機(jī)的 當(dāng)前狀態(tài),并結(jié)合預(yù)設(shè)步長機(jī)制調(diào)整所述參考值包括:
      [0026]當(dāng)所述檔位為第一檔時(shí),將所述參考值增加第一預(yù)設(shè)步長;
      [0027]當(dāng)所述檔位為第二檔時(shí),保持所述參考值不變;
      [0028]當(dāng)所述檔位為第三檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為保持或空閑,則將所述參考 值增加第二預(yù)設(shè)步長;若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為繁忙、趨向繁忙或趨向空閑,則保持所述 參考值不變;
      [0029]當(dāng)所述檔位為第四檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為保持、繁忙或趨向繁忙,則將 所述參考值減小第三預(yù)設(shè)步長;若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為空閑或趨向空閑,則保持所述 參考值不變;
      [0030] 對所述參考值進(jìn)行校正;
      [0031] 其中,所述第一預(yù)設(shè)步長、所述第二預(yù)設(shè)步長和所述第三預(yù)設(shè)步長為正數(shù),所述第 四預(yù)設(shè)步長大于所述第一預(yù)設(shè)步長和所述第二預(yù)設(shè)步長。
      [0032] 第二方面,提供一種網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備的中央處理器CPU內(nèi)核包括宿主核 和輔助核,任一報(bào)文接收隊(duì)列對應(yīng)一個(gè)宿主核和至少一個(gè)輔助核,所述網(wǎng)絡(luò)設(shè)備包括:
      [0033] 接收單元,用于通過所述宿主核從所述接收隊(duì)列接收報(bào)文,所述宿主核持有自旋 鎖;
      [0034] 處理單元,用于在所述宿主核完成本輪報(bào)文的接收并進(jìn)行報(bào)文處理時(shí),若確定滿 足預(yù)設(shè)條件,則由所述輔助核競爭持有所述自旋鎖,并通過獲取到所述自旋鎖的輔助核從 所述接收隊(duì)列接收報(bào)文;
      [0035] 所述處理單元還用于,在所述宿主核完成報(bào)文處理后,由所述宿主核優(yōu)先競爭并 持有所述自旋鎖。
      [0036] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述處理單元具體用 于:
      [0037] 預(yù)設(shè)參考值;
      [0038] 根據(jù)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量確定檔位;
      [0039] 根據(jù)所述檔位以及狀態(tài)機(jī)的當(dāng)前狀態(tài),確定所述狀態(tài)機(jī)的將來狀態(tài)并結(jié)合預(yù)設(shè)步 長機(jī)制調(diào)整所述參考值;
      [0040] 若所述參考值落入預(yù)設(shè)范圍,則確定滿足預(yù)設(shè)條件。
      [0041] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,所述處理單元具體用于:
      [0042]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量小于第一預(yù)設(shè)值時(shí),確定所 述檔位為第一檔;
      [0043]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于所述第一預(yù) 設(shè)值且小于第二預(yù)設(shè)值時(shí),確定所述檔位為第二檔;
      [0044]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于所述第二預(yù) 設(shè)值且小于第三預(yù)設(shè)值時(shí),確定所述檔位為第三檔;
      [0045]當(dāng)所述宿主核本輪從所述接收隊(duì)列接收到的報(bào)文數(shù)量大于或者等于第三預(yù)設(shè)值 且小于或者等于第四預(yù)設(shè)值時(shí),確定所述檔位為第四檔。
      [0046] 結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式 中,所述處理單元具體用于:
      [0047]當(dāng)所述檔位為第一檔時(shí),確定所述狀態(tài)機(jī)的將來狀態(tài)為空閑;
      [0048]當(dāng)所述檔位為第二檔時(shí),確定所述狀態(tài)機(jī)的將來狀態(tài)與所述狀態(tài)機(jī)的當(dāng)前狀態(tài)一 致;
      [0049]當(dāng)所述檔位為第三檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為繁忙,則確定所述狀態(tài)機(jī)的 將來狀態(tài)為趨向空閑;若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為保持、空閑、趨向繁忙或趨向空閑,則確 定所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為空閑;
      [0050]當(dāng)所述檔位為第四檔時(shí),若所述狀態(tài)機(jī)的當(dāng)前狀態(tài)為空閑,則確定所述
      當(dāng)前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1