亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種網(wǎng)卡的加載方法及系統(tǒng)的制作方法

文檔序號:9929390閱讀:526來源:國知局
一種網(wǎng)卡的加載方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器板卡技術(shù)領(lǐng)域,具體涉及一種網(wǎng)卡的加載方法及系統(tǒng)。
【背景技術(shù)】
[0002]Iinux源碼在編譯時,可以選擇將一些功能編譯為模塊,使得它們和內(nèi)核不耦合在一起,這樣內(nèi)核占用的空間就會比較小,當(dāng)需要某個功能時,可以動態(tài)的對相關(guān)模塊進(jìn)行加載。
[0003]有時候,用戶態(tài)程序需要對內(nèi)核加載模塊的過程進(jìn)行一定的干預(yù),使得內(nèi)核按照用戶態(tài)程序的設(shè)置來加載模塊。比如設(shè)備有2塊同樣的網(wǎng)卡elOOOe,當(dāng)加載模塊elOOOe.ko時,內(nèi)核相當(dāng)于將這兩塊網(wǎng)卡同時初始化,當(dāng)模塊加載完成后,兩塊網(wǎng)卡都可以使用了。但是有時候,不需要同時加載兩個網(wǎng)卡,可能僅僅需要加載其中一個,而另一個留給其他程序進(jìn)行處理。

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

[0004]針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種網(wǎng)卡的加載方法及系統(tǒng),能選擇性地加載網(wǎng)卡。
[0005]本發(fā)明提出了一種網(wǎng)卡的加載方法,包括:
[0006]獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一 PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息;
[0007]根據(jù)所述第一PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡;
[0008]根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。
[0009]可選的,所述待控制網(wǎng)卡包括:待加載網(wǎng)卡或不加載網(wǎng)卡;
[0010]相應(yīng)地,所述獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一 PCI信息對應(yīng)的控制指令包括:
[0011]獲取待加載網(wǎng)卡或不加載網(wǎng)卡的第一PCI信息和與所述第一 PCI信息對應(yīng)的控制指令。
[0012]可選的,所述根據(jù)所述第一PCI信息和所述第二PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡,具體包括:
[0013]對待加載網(wǎng)卡或不加載網(wǎng)卡的第一PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;
[0014]根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。
[0015]可選的,所述獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息,具體包括:
[0016]接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一 PCI信息為所述用戶態(tài)程序通過命令lspci Igr印‘0200’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。
[0017]可選的,所述第一PCI信息和所述第二PCI信息均包括:總線號和設(shè)備編號ID。
[0018]本發(fā)明還提出了一種網(wǎng)卡的加載系統(tǒng),包括:
[0019]第一獲取模塊,用于獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一 PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息;
[0020]第二獲取模塊,用于根據(jù)所述第一PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡;
[0021]記載模塊,用于根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。
[0022]可選的,所述待控制網(wǎng)卡包括:待加載網(wǎng)卡或不加載網(wǎng)卡;
[0023]相應(yīng)地,
[0024]所述第一獲取模塊,具體用于獲取待加載網(wǎng)卡或不加載網(wǎng)卡的第一PCI信息和與所述第一 PCI信息對應(yīng)的加載控制指令。
[0025]可選的,所述第二獲取模塊,具體用于對待加載網(wǎng)卡或不加載網(wǎng)卡的第一PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。
[0026]可選的,所述第一獲取模塊,具體用于接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一PCI信息為所述用戶態(tài)程序通過命令lspci |grep‘0200’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。
[0027]可選的,所述第一PCI信息和所述第二PCI信息均包括:總線號和設(shè)備編號ID
[0028]由上述技術(shù)方案可知,本發(fā)明提出的網(wǎng)卡的加載方法,通過向內(nèi)核寫入待控制網(wǎng)卡的第一PCI信息和控制指令,以使內(nèi)核能根據(jù)第一PCI信息對內(nèi)核讀取的設(shè)備的所有網(wǎng)卡進(jìn)行識別,進(jìn)而選擇性地加載網(wǎng)卡。
【附圖說明】
[0029]通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對本發(fā)明進(jìn)行任何限制,在附圖中:
[0030]圖1示出了本發(fā)明一實(shí)施例提出的一種網(wǎng)卡的加載方法的流程示意圖;
[0031]圖2示出了本發(fā)明一實(shí)施例提出的一種網(wǎng)卡的加載系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0032]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0033]圖1為本發(fā)明一實(shí)施例提出的一種網(wǎng)卡的加載方法的流程示意圖,參照圖1,該網(wǎng)卡的加載方法包括:
[0034]110、內(nèi)核獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息;
[0035]需要說明的是,用戶態(tài)的應(yīng)用程序(用戶態(tài)程序)通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核空間,此時,用戶態(tài)程序?qū)鬟f很多變量、參數(shù)的值給內(nèi)核,例如:本發(fā)明中設(shè)備的待控制網(wǎng)卡的第一 PCI信息和控制指令,控制指令可以為加載控制指令或者不加載控制指令;
[0036]此處的設(shè)備中所有網(wǎng)卡的第二PCI信息為內(nèi)核讀取各網(wǎng)卡時獲取的。
[0037]120、根據(jù)所述第一 PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡;
[0038]需要說明的是,內(nèi)核在獲取用戶態(tài)程序發(fā)送的第一PCI信息以及內(nèi)核采集的第二PCI信息后,將根據(jù)第一 PCI信息和第二 PCI信息從設(shè)備所有的網(wǎng)卡中選取出待加載的網(wǎng)卡;
[0039]可理解的是,內(nèi)核也可以選取出不加載的網(wǎng)卡,并對不加載網(wǎng)卡之外的其余網(wǎng)卡進(jìn)行加載。
[0040]130、根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。
[0041]需要說明的是,控制指令為加載控制指令或者是不加載控制指令,內(nèi)核根據(jù)控制指令以及控制指令與第一 PCI信息的對應(yīng)關(guān)系,即可判斷設(shè)備的每個網(wǎng)卡是否要加載,若要加載,則對網(wǎng)卡進(jìn)行加載;
[0042]綜上所述,本發(fā)明通過向內(nèi)核寫入待控制網(wǎng)卡的第一PCI信息和控制指令,以使內(nèi)核能根據(jù)第一 PCI信息對內(nèi)核讀取的設(shè)備的所有網(wǎng)卡進(jìn)行識別,進(jìn)而選擇性地加載網(wǎng)卡。
[0043]在一可行的實(shí)施例中,步驟110中的待控制網(wǎng)卡為待加載網(wǎng)卡;
[0044]相應(yīng)地,步驟110具體包括:獲取待加載網(wǎng)卡第一PCI信息和與所述第一 PCI信息對應(yīng)的加載控制指令;
[0045]步驟120,具體包括:對待加載網(wǎng)卡的第一PCI信息和第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;
[0046]根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。
[0047]需要說明的是,本實(shí)施例通過用戶態(tài)程序?qū)@取的待加載網(wǎng)卡的第一PCI信息發(fā)送給內(nèi)核,內(nèi)核對采集到的設(shè)備各網(wǎng)卡的第二PCI信息和接收到的第一PCI信息進(jìn)行匹配,從所有網(wǎng)卡的第二 PCI信息中識別出與第一 PCI信息相匹配的第二 PCI信息以及該第二 PCI信息對應(yīng)的網(wǎng)卡,并根據(jù)加載控制指令對該網(wǎng)卡進(jìn)行加載;
[0048]可理解的是,其他不符合匹配規(guī)則的網(wǎng)卡則為不加載網(wǎng)卡,因此,不需要對該部分網(wǎng)卡進(jìn)行加載。
[0049]在一可行的實(shí)施例中,步驟110中的待控制網(wǎng)卡為不加載網(wǎng)卡;
[0050]相應(yīng)地,步驟110具體包括:獲取不加載網(wǎng)卡的第一PCI信息和與所述第一 PCI信息對應(yīng)的不加載控制指令;
[0051]需要說明的是,不加載網(wǎng)卡可以為多個,對于多個不加載網(wǎng)卡的第一PCI信息,與第一 PCI信息對應(yīng)的不加載控制指令將控制該多個不加載網(wǎng)卡不進(jìn)行加載動作。
[0052]步驟120,具體包括:對不加載網(wǎng)卡的第一PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;
[0053]根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。
[0054]下面對步驟110進(jìn)行詳細(xì)說明:
[0055]內(nèi)核接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一 PCI信息為所述用戶態(tài)程序通過命令I(lǐng)spci I grep‘0200’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。
[0056]需要說明的是,獲取PCI信息的手段并不唯一,其他手段也是可行的,此處不再進(jìn)行贅述。
[0057]優(yōu)選的,第一PCI信息和第二PCI信息均包括:總線號和設(shè)備編號ID;
[0058]可理解是,PCI信息在本發(fā)明中屬于標(biāo)識性的信息,若網(wǎng)卡中還存在能與其他網(wǎng)卡區(qū)別的信息,則也是可以作為標(biāo)識性信息的,也處于本方案的保護(hù)范圍。
[0059]本發(fā)明的工作原理如下:
[0060]每個網(wǎng)卡都對應(yīng)一個PCI信息,或者說每個網(wǎng)卡都有唯一的PCI編號,對待控制(加載或不加載)的網(wǎng)卡寫入與之對應(yīng)的控制動作,然后通過對PCI編號進(jìn)行判斷,就可以對網(wǎng)卡的加載進(jìn)行控制。
[0061 ] 本發(fā)明的工作過程如下:
[0062]1.修改內(nèi)核源代碼,網(wǎng)卡探測函數(shù)中,添加判斷。
[0063]以elOOOe網(wǎng)卡代碼netdev.c為例,需要修改el000e_probe函數(shù)。該函數(shù)的參數(shù)是struct pci_dev*pdev和struct pci_device_id*ent(這點(diǎn)符合Iinux編程規(guī)范,也就說其他網(wǎng)卡probe函數(shù)也是這樣的)。
[0064]通過pdev_>device可以獲取具體的設(shè)備號(^¥;^610,通過。(16¥->13118->111111^61'可以獲取到網(wǎng)卡的總線號busNum。
[0065]當(dāng)devicelD和全局變量g_deviceID相等,同時和busNum和全局變量g_busNum
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1