一種利用核間中斷定位不合理任務的方法和設備的制作方法
【專利摘要】本發明公開了一種利用核間中斷定位不合理任務的方法和設備,該方法包括:數據核對數據核在控制核的消息隊列中寫入核間消息的過程進行監控,如果監控到數據核向控制核的消息隊列中寫入核間消息失敗,則所述數據核通過核間中斷方式觸發所述控制核中斷;所述控制核中斷當前任務,并定位當前任務為不合理的任務。本發明實施例中,可以及時定位出不合理任務。
【專利說明】—種利用核間中斷定位不合理任務的方法和設備
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其是涉及一種在將轉發和控制相分離的多核網絡設備上,利用核間中斷定位不合理任務的方法和設備。
【背景技術】
[0002]在多核網絡設備上,通常將轉發和控制相分離,分別稱為數據平面和控制平面。在此情況下,多核網絡設備至少包括數據核和控制核,該數據核可以為一個或者多個,該控制核可以為一個。其中,數據核負責數據平面的相關任務,如數據核根據控制核下發的表項對數據進行轉發,即數據核只有I個任務,其負責數據轉發。控制核負責控制平面的相關任務,如控制核負責處理協議、流程管理、系統管理、表項建立和管理、消息隊列處理等工作,即控制核有多個任務,每個任務負責上述一項工作;基于此,控制核可以采用任務調度的方式對多個任務進行處理;進一步的,為了對多個任務進行處理,控制核上可以維護任務隊列,并將需要控制核處理的任務存儲在任務隊列中,由控制核依次處理任務隊列中的任務。例如:控制核包括有用于處理消息隊列的任務,該用于處理消息隊列的任務一直駐留在控制核的任務隊列中,并且會被控制核輪轉調度,該用于處理消息隊列的任務被調度時,如果發現消息隊列中有消息,則對消息進行處理,否則退出任務等待下次被調度。
[0003]針對數據轉發流程,數據核在收到數據后,對數據進行解析。如果轉發表項中有相關記錄,數據核根據轉發表項的內容對數據進行轉發。如果轉發表項中沒有相關記錄,數據核向控制核的消息隊列中寫入攜帶有該數據的核間消息。控制核依次調度任務隊列中的任務時,如果任務隊列中的各任務未出現不合理,則控制核能夠正常及時調度任務,并及時處理消息隊列,即從消息隊列中讀取核間消息,并對核間消息中攜帶的數據進行處理。但是,如果任務隊列中有任務不合理(假設某任務長時間占用控制核的CPlXCentral ProcessingUnit,中央處理器)資源),則控制核無法及時調度需要讀取消息隊列的任務,從而導致消息隊列中的核間消息得不到處理,在消息隊列被寫滿時,數據核無法繼續向控制核的消息隊列中核間消息,從而造成數據丟失。
[0004]進一步的,數據核向控制核的消息隊列中寫入的核間消息中攜帶的數據都是比較重要的數據,如協議數據等,因此數據的丟失對系統會造成很大影響,比如協議震蕩、轉發不通等。
[0005]綜上所述,在控制核依次處理任務隊列中的任務的過程中,如果有任務出現不合理,則控制核無法知道出現不合理的任務,繼而不能夠對任務進行修復,也就無法及時處理需要讀取消息隊列的任務,從而導致數據核無法及時向控制核的消息隊列中寫入攜帶有數據的核間消息,并造成數據丟失。
【發明內容】
[0006]本發明實施例提供一種利用核間中斷定位不合理任務的方法和設備,從而及時的定位出不合理的任務。[0007]為達到上述目的,本發明實施例提供一種利用核間中斷定位不合理任務的方法,該方法包括:
[0008]數據核對所述數據核在控制核的消息隊列中寫入核間消息的過程進行監控,如果監控到所述數據核向所述控制核的消息隊列中寫入核間消息失敗,則所述數據核通過核間中斷方式觸發所述控制核中斷;
[0009]所述控制核中斷當前任務,并定位所述當前任務為不合理的任務。
[0010]所述數據核對所述數據核在控制核的消息隊列中寫入核間消息的過程進行監控,具體包括:數據核確定核間消息的監控粒度,按照所述監控粒度對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控。
[0011]所述數據核確定核間消息的監控粒度的過程,具體包括:所述數據核確定所述控制核的消息隊列的長度η以及所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f,并確定所述核間消息的監控粒度具體為:所述控制核的消息隊列的長度η除以所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f。
[0012]所述數據核通過核間中斷方式觸發所述控制核中斷的過程,具體包括:所述數據核向中斷控制器寫入特定中斷向量以及所述控制核,由所述中斷控制器觸發所述控制核中斷;
[0013]所述控制核中斷當前任務的過程,具體包括:所述控制核從中斷控制器中獲得所述特定中斷向量,并利用所述特定中斷向量在向量表中對應的中斷處理程序中斷當前任務;其中,所述中斷處理程序用于中斷當前任務,且所述向量表中預先配置有特定中斷向量與中斷處理程序之間的對應關系。
[0014]所述數據核向所述控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,所述數據為協議數據、或業務數據流的首個數據。
[0015]本發明實施例提供一種網絡設備,所述網絡設備包括數據核和控制核,所述網絡設備包括監控模塊、處理模塊、中斷模塊,所述監控模塊和處理模塊位于所述數據核內,所述中斷模塊位于所述控制核內;其中:
[0016]所述監控模塊,用于對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控;
[0017]所述處理模塊,用于在監控到所述數據核向所述控制核的消息隊列中寫入核間消息失敗時,通過核間中斷方式觸發所述控制核中斷;
[0018]所述中斷模塊,用于中斷當前任務,并定位當前任務為不合理的任務。
[0019]所述監控模塊,具體用于確定核間消息的監控粒度,并按照所述監控粒度對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控。
[0020]所述監控模塊,進一步用于確定所述控制核的消息隊列的長度η以及所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f,并確定所述核間消息的監控粒度具體為:所述控制核的消息隊列的長度η除以所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f。
[0021]所述處理模塊,具體用于向中斷控制器中寫入特定中斷向量以及所述控制核,由所述中斷控制器觸發所述控制核中斷;[0022]所述中斷模塊,具體用于從中斷控制器中獲得所述特定中斷向量,并利用所述特定中斷向量在向量表中對應的中斷處理程序中斷當前任務;其中,所述中斷處理程序用于中斷當前任務,且所述向量表中預先配置有特定中斷向量與中斷處理程序之間的對應關系O
[0023]所述數據核向所述控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,所述數據為協議數據、或業務數據流的首個數據。
[0024]與現有技術相比,本發明實施例至少具有以下優點:本發明實施例中,通過對數據核在控制核的消息隊列中寫入核間消息的過程進行監控,以在數據核向控制核的消息隊列中寫入核間消息失敗時,通過核間中斷方式觸發控制核中斷,由控制核定位當前任務為不合理的任務,從而定位出發生不合理的任務。進一步的,在定位出發生不合理的任務之后,還可以對不合理的任務進行修復,從而優化系統處理效率,并使得數據核能夠向控制核的消息隊列中寫入攜帶有數據的核間消息,避免造成數據丟失。
【專利附圖】
【附圖說明】
[0025]圖1是本發明一實施例提供的一種利用核間中斷定位不合理任務的方法流程示意圖;
[0026]圖2是本發明另一實施例提供的一種網絡設備的結構示意圖。
【具體實施方式】
[0027]針對現有技術中存在的問題,本發明實施例提供一種利用核間中斷定位不合理任務(不合理任務可以如:一個任務進行了無謂的等待,浪費了 CPU資源)的方法,該方法應用于包括數據核和控制核的網絡設備中。在網絡設備上,將轉發和控制相分離,分別稱為數據平面和控制平面。其中,數據核可以為一個或者多個,并負責數據平面的相關任務,如:數據核根據控制核下發的表項對數據進行轉發。控制核可以為一個,并負責控制平面的相關任務,如:控制核負責處理協議、流程管理、系統管理、表項建立和管理、消息隊列處理等工作;此外,控制核上可以維護任務隊列,并將需要由控制核進行處理的任務存儲在任務隊列中,由控制核依次處理任務隊列中的任務。
[0028]如圖1所示,本發明實施例利用核間中斷定位不合理任務的方法可以包括以下步驟:
[0029]步驟101,數據核對數據核在控制核的消息隊列中寫入核間消息的過程進行監控。數據核向控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,該數據可以為協議數據、或業務數據流的首個數據。本實施例以數據核向控制核的消息隊列中寫入的核間消息為攜帶有數據的核間消息為例進行后續說明。
[0030]具體的,針對數據轉發流程,數據核在收到數據(如:協議數據或者業務數據流)后,對數據進行解析。如果轉發表項中有相關記錄(此時數據為業務數據流,且不是業務數據流的首個數據),則數據核根據該轉發表項的內容對數據進行轉發,該轉發過程在此不再贅述。如果轉發表項中沒有相關記錄(此時數據為協議數據或者業務數據流的首個數據),則數據核向控制核的消息隊列中寫入攜帶有該數據的核間消息。基于此,本發明實施例中,數據核對數據核在控制核的消息隊列中寫入核間消息的過程進行監控。
[0031]本發明實施例中,數據核對數據核在控制核的消息隊列中寫入核間消息的過程進行監控,具體包括:數據核確定核間消息的監控粒度,并按照該監控粒度對數據核在控制核的消息隊列中寫入核間消息的過程進行監控。例如,在監控粒度為5s時,則數據核每隔5s便對數據核在控制核的消息隊列中寫入核間消息的過程進行監控。進一步的,數據核確定核間消息的監控粒度的過程,具體包括:數據核確定控制核的消息隊列的長度η以及數據核在控制核的消息隊列中寫入核間消息的頻率f,并確定核間消息的監控粒度具體為:控制核的消息隊列的長度η除以數據核在控制核的消息隊列中寫入核間消息的頻率f。進一步的,通過調節控制核的消息隊列的長度η和/或數據核在控制核的消息隊列中寫入核間消息的頻率f,即可以調整核間消息的監控粒度。
[0032]步驟102,在監控過程中,如果監控到數據核向控制核的消息隊列中寫入核間消息失敗,則數據核通過核間中斷方式觸發控制核中斷。
[0033]具體的,在控制核依次調度任務隊列中的任務時,如果任務隊列中的各任務未出現不合理,則控制核能夠正常及時調度任務,并及時處理消息隊列,即從消息隊列中讀取核間消息,并對核間消息中攜帶的數據進行處理;在此情況下,數據核不會監控到數據核向控制核的消息隊列中寫入核間消息失敗。如果任務隊列中有任務出現不合理,則控制核無法及時調度需要讀取消息隊列的任務,從而導致消息隊列中的核間消息得不到處理,在消息隊列被寫滿時,數據核無法繼續向控制核的消息隊列中寫入核間消息;在此情況下,數據核將監控到數據核向控制核的消息隊列中寫入核間消息失敗,即到達核間消息的監控粒度(長度n/頻率f)時,數據核將監控到數據核向控制核的消息隊列中寫入核間消息失敗,從而觸發控制核中斷。
[0034]步驟103,控制核中斷當前任務,并定位當前任務為不合理的任務。
[0035]基于上述處理,在任務隊列中有任務出現不合理時,控制核能夠及時中斷當前任務,并定位當前任務為不合理的任務,并能夠確定出當前任務對應的處理函數發生問題。進一步的,控制核在定位出發生不合理的任務之后,通過及時對不合理任務進行修復,從而優化系統處理效率,使得數據核能夠向控制核的消息隊列中寫入核間消息,避免造成數據丟失。
[0036]本發明實施例中,在控制核的向量表中可以預先配置特定中斷向量(其為新注冊的中斷向量,如INT_IPI)與中斷處理程序之間的對應關系,該中斷處理程序用于中斷當前任務,且中斷處理程序為實現該特定中斷向量的處理函數。
[0037]在此基礎上,數據核通過核間中斷方式觸發控制核中斷的過程,具體包括:數據核向中斷控制器寫入特定中斷向量(如INT_IPI)以及控制核(如控制核的標識),由中斷控制器觸發控制核中斷。控制核中斷當前任務的過程,具體包括:控制核從中斷控制器中獲得特定中斷向量,并利用特定中斷向量在向量表中對應的中斷處理程序中斷當前任務。
[0038]基于與上述方法同樣的發明構思,本發明另一實施例提供了一種網絡設備,所述網絡設備包括數據核和控制核,如圖2所示,所述網絡設備包括監控模塊11、處理模塊12、中斷模塊13,所述監控模塊11和處理模塊12位于所述數據核內,所述中斷模塊13位于所述控制核內;其中:所述監控模塊11,用于對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控;所述處理模塊12,用于在監控到所述數據核向所述控制核的消息隊列中寫入核間消息失敗時,通過核間中斷方式觸發所述控制核中斷;所述中斷模塊13,用于中斷當前任務,定位當前任務為不合理的任務。
[0039]所述監控模塊11,具體用于確定核間消息的監控粒度,并按照所述監控粒度對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控。所述監控模塊11,進一步用于確定所述控制核的消息隊列的長度η以及所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f,并確定所述核間消息的監控粒度具體為:所述控制核的消息隊列的長度η除以所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f。
[0040]所述處理模塊12,具體用于向中斷控制器中寫入特定中斷向量以及所述控制核,由所述中斷控制器觸發所述控制核中斷;
[0041]所述中斷模塊13,具體用于從中斷控制器中獲得所述特定中斷向量,并利用所述特定中斷向量在向量表中對應的中斷處理程序中斷當前任務;其中,所述中斷處理程序用于中斷當前任務,且所述向量表中預先配置有特定中斷向量與中斷處理程序之間的對應關系O
[0042]所述數據核向所述控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,所述數據為協議數據、或業務數據流的首個數據。
[0043]其中,本發明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
[0044]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0045]本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發明所必須的。
[0046]本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
[0047]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
[0048]以上公開的僅為本發明的幾個具體實施例,但是,本發明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發明的保護范圍。
【權利要求】
1.一種利用核間中斷定位不合理任務的方法,其特征在于,該方法包括: 數據核對所述數據核在控制核的消息隊列中寫入核間消息的過程進行監控,如果監控到所述數據核向所述控制核的消息隊列中寫入核間消息失敗,則所述數據核通過核間中斷方式觸發所述控制核中斷; 所述控制核中斷當前任務,并定位所述當前任務為不合理的任務。
2.如權利要求1所述的方法,其特征在于,所述數據核對所述數據核在控制核的消息隊列中寫入核間消息的過程進行監控,具體包括: 所述數據核確定核間消息的監控粒度,并按照所述監控粒度對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控。
3.如權利要求2所述的方法,其特征在于,所述數據核確定核間消息的監控粒度的過程,具體包括: 所述數據核確定所述控制核的消息隊列的長度η以及所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f,并確定所述核間消息的監控粒度具體為:所述控制核的消息隊列的長度η除以所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f。
4.如權利要求1所述的方法,其特征在于, 所述數據核通過核間中斷方式觸發所述控制核中斷的過程,具體包括:所述數據核向中斷控制器寫入特定 中斷向量以及所述控制核,由所述中斷控制器觸發所述控制核中斷; 所述控制核中斷當前任務的過程,具體包括:所述控制核從中斷控制器中獲得所述特定中斷向量,并利用所述特定中斷向量在向量表中對應的中斷處理程序中斷當前任務;其中,所述中斷處理程序用于中斷當前任務,且所述向量表中預先配置有特定中斷向量與中斷處理程序之間的對應關系。
5.如權利要求1所述的方法,其特征在于, 所述數據核向所述控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,所述數據為協議數據、或業務數據流的首個數據。
6.一種網絡設備,所述網絡設備包括數據核和控制核,其特征在于,所述網絡設備包括監控模塊、處理模塊、中斷模塊,所述監控模塊和處理模塊位于所述數據核內,所述中斷模塊位于所述控制核內;其中: 所述監控模塊,用于對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控; 所述處理模塊,用于在監控到所述數據核向所述控制核的消息隊列中寫入核間消息失敗時,通過核間中斷方式觸發所述控制核中斷; 所述中斷模塊,用于中斷當前任務,并定位當前任務為不合理的任務。
7.如權利要求6所述的多核網絡設備,其特征在于, 所述監控模塊,具體用于確定核間消息的監控粒度,并按照所述監控粒度對所述數據核在所述控制核的消息隊列中寫入核間消息的過程進行監控。
8.如權利要求7所述的多核網絡設備,其特征在于, 所述監控模塊,進一步用于確定所述控制核的消息隊列的長度η以及所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f,并確定所述核間消息的監控粒度具體為:所述控制核的消息隊列的長度η除以所述數據核在所述控制核的消息隊列中寫入核間消息的頻率f。
9.如權利要求6所述的多核網絡設備,其特征在于, 所述處理模塊,具體用于向中斷控制器中寫入特定中斷向量以及所述控制核,由所述中斷控制器觸發所述控制核中斷; 所述中斷模塊,具體用于從中斷控制器中獲得所述特定中斷向量,并利用所述特定中斷向量在向量表中對應的中斷處理程序中斷當前任務;其中,所述中斷處理程序用于中斷當前任務,且所述向量表中預先配置有特定中斷向量與中斷處理程序之間的對應關系。
10.如權利要求6所述的多核網絡設備,其特征在于, 所述數據核向所述控制核的消息隊列中寫入的核間消息具體為:用于定位控制核的不合理任務的不攜帶具體內容的空核間消息,或者,攜帶有數據的核間消息;其中,所述數據為協議數據、或業務數據流的`首個數據。
【文檔編號】H04L12/26GK103825782SQ201410083868
【公開日】2014年5月28日 申請日期:2014年3月7日 優先權日:2014年3月7日
【發明者】王厚雪 申請人:杭州華三通信技術有限公司