CN117421163A - 设备探测方法、片上系统、计算机设备及存储介质 - Google Patents
设备探测方法、片上系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117421163A CN117421163A CN202311262611.9A CN202311262611A CN117421163A CN 117421163 A CN117421163 A CN 117421163A CN 202311262611 A CN202311262611 A CN 202311262611A CN 117421163 A CN117421163 A CN 117421163A
- Authority
- CN
- China
- Prior art keywords
- network card
- user
- board network
- mode
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims description 33
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种设备探测方法、片上系统、计算机设备及存储介质,应用于计算机技术领域,该方法应用于片上系统,片上系统包括处理器以及板载网卡,处理器搭载包括用户态空间和内核态空间的操作系统,用户态空间配置有DPDK且DPDK包括用于驱动板载网卡的用户态驱动,内核态空间配置有预设文件系统,处理器根据板载网卡的设备节点标识,在预设文件系统中提取驱动板载网卡所需的目标信息,并在DPDK中创建用于记录目标信息的用户态设备文件,该用户态设备文件与用户态驱动具有关联关系,处理器调用用户态驱动并根据该关联关系驱动板载网卡,由于设备节点标识唯一的表示板载网卡,可以确保DPDK探测到的正确的板载网卡,进而实现高性能的信息传输。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种设备探测方法、片上系统、计算机设备及存储介质。
背景技术
DPDK(Data Plane Development Kit,数据平面开发套件)是一个开源的数据平面开发工具集,通常配置于片上系统内部,片上系统通过DPDK能够与其连接的外部设备,比如PCI网卡实现高性能的信息传输。在实际应用中,片上系统通过DPDK与PCI网卡进行高效通信的前提是DPDK能够有效探测到,即识别到PCI网卡。
然而,现有的设备探测方法主要针对通过PCI总线与片上系统相连的PCI网卡,对于集成在片上系统内部的板载网卡则无法进行有效探测,因此,如何使得DPDK探测到片上系统内部的板载网卡,进而实现高性能的信息传输,成为本领域技术人员亟待解决的技术问题之一。
发明内容
有鉴于此,本申请致力于提供一种设备探测方法、片上系统、计算机设备及存储介质,使得DPDK探测到片上系统内部的板载网卡,进而实现高性能的信息传输。
第一方面,本申请提供一种设备探测方法,应用于片上系统,所述片上系统包括处理器以及与所述处理器通信连接的板载网卡,所述处理器搭载有操作系统,所述操作系统包括用户态空间和内核态空间,所述用户态空间配置有数据平面开发套件DPDK且所述DPDK包括用于驱动所述板载网卡的用户态驱动,所述内核态空间配置有所述DPDK可访问的预设文件系统,所述方法包括如下由所述处理器执行的步骤:
根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息;
在所述DPDK中创建用于记录所述目标信息的用户态设备文件,且所述用户态设备文件与所述用户态驱动相关联;
调用所述用户态驱动并根据所述用户态设备文件与所述用户态驱动之间的关联关系驱动所述板载网卡。
基于上述内容,在本申请提供的设备探测方法中,处理器根据板载网卡的设备节点标识,在预设文件系统中提取驱动板载网卡所需的目标信息,并在DPDK中创建用于记录目标信息的用户态设备文件,并且该用户态设备文件与用户态驱动是相关联的,最后处理器调用用户态驱动并根据用户态设备文件与用户态驱动之间的关联关系驱动该板载网卡,由于设备节点标识用于唯一的表示板载网卡,可以确保DPDK探测到的正确的板载网卡,因此,通过本申请提供的设备探测方法,可以使得DPDK探测到片上系统内部的板载网卡,实现对板载网卡的驱动,进而实现高性能的信息传输。
在一种可选的实施方式中,所述目标信息包括表征所述板载网卡提供给所述操作系统的可访问空间的资源信息以及所述板载网卡的设备信息;
在所述DPDK中创建用于记录所述目标信息的用户态设备文件,包括:
在所述DPDK中创建用户态用户空间输入/输出UIO设备文件以及用户态运行时环境RTE设备文件,其中,所述用户态UIO设备文件用于记录所述资源信息,所述用户态RTE设备文件用于记录所述设备信息。
在本申请中,创建用户态UIO设备文件以及用户态RTE设备文件,通过用户态UIO设备文件记录板载网卡的资源信息,通过用户态RTE设备文件记录板载网卡的设备信息,通过提供不同的用户态设备文件分别记录目标信息中的不同内容,满足DPDK关于用户态文件创建的相关规则,确保DPDK能够成功探测到板载网卡。
在一种可能的实施方式中,所述用户态设备文件与所述用户态驱动之间的关联关系,包括:
所述用户态驱动与所述用户态RTE设备文件关联,以及,所述用户态RTE设备文件与所述用户态UIO设备文件关联。
在本申请中,提供用户态设备文件与用户态驱动之间建立关联关系的具体实现方式,用户态UIO设备文件与用户态RTE设备文件关联,用户态RTE设备文件与用户态驱动关联,通过用户态RTE设备文件实现用户态UIO设备文件与用户态驱动的关联,为通过用户态驱动驱动板载网卡提供实现基础。
在一种可能的实施方式中,在所述DPDK中创建用户态UIO设备文件,包括:
对所述资源信息对应的可访问空间进行地址重映射,得到重映射地址;
将所述重映射地址记录于预先调用的用户态UIO设备结构体,得到所述用户态UIO设备文件。
在本申请中,提供一种用户态UIO设备文件的具体创建方法,通过用户态UIO设备文件记录板载网卡可访问空间的重映射地址,使得用户态驱动基于自身与用户态UIO设备之间的关联关系以及用户态UIO设备文件所记录的重映射地址实现对板载网卡中可访问空间的访问,进而实现对于板载网卡的驱动。
在一种可能的实施方式中,在所述DPDK中创建所述用户态RTE设备文件,包括:
将所述设备信息记录于预先调用的用户态RTE设备结构体,得到所述用户态RTE设备文件。
在本申请中,提供一种用户态RTE设备文件的具体创建方法,通过用户态RTE设备文件记录板载网卡的设备信息,由于用户态RTE设备文件与用户态驱动相关联,可以使得用户态驱动便捷的获取板载网卡的设备信息,为进一步驱动板载网卡提供可靠支持。
在一种可能的实施方式中,在根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息之前,所述方法还包括:
将驱动所述板载网卡所需的目标信息存储于所述预设文件系统中。
由于预设文件系统对用户态空间中的DPDK是可访问的,本申请将驱动板载网卡所需的目标信息存储于预设文件系统中,可以确保DPDK成功获取到驱动板载网卡所需的目标信息。
在一种可能的实施方式中,所述内核态空间配置有用于驱动所述板载网卡的内核态驱动;
将驱动所述板载网卡所需的目标信息存储于所述预设文件系统中,包括:
建立所述板载网卡与所述内核态驱动之间的绑定关系;
运行所述内核态驱动,以在所述预设文件系统中创建内核态UIO设备文件,所述内核态UIO设备文件记录有所述资源信息;
将所述板载网卡的设备信息存储于所述预设文件系统。
在本申请中,处理器将板载网卡的设备信息存储于预设文件系统中,并且,提供一种内核态驱动,通过内核态驱动在预设文件系统中创建用于记录板载网卡资源信息的内核态UIO设备文件,由于预设文件系统是用户态空间中DPDK可访问的,通过本方法DPDK便可获取驱动板载网卡所需目标信息。
在一种可能的实施方式中,所述目标信息在所述预设文件系统中的存储路径基于所述设备节点标识创建;
根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息,包括:
在所述预设文件系统中确定所述设备节点标识对应的目标存储路径;
提取存储于所述目标存储路径下的目标信息。
在本申请中,驱动板载网卡所需的目标信息在预设文件系统中的存储路径基于板载网卡的设备节点标识创建,DPDK可根据板载网卡的设备节点标识对应的目标存储路径在预设文件系统中提取目标信息,由于设备节点标识可以唯一的表示板载网卡,基于板载网卡的设备节点标识创建目标信息的存储路径,可以确保DPDK获取正确的目标信息,有助于提高DPDK探测板载网卡以及驱动板载网卡的成功率。
在一种可能的实施方式中,所述目标信息包括表征所述板载网卡提供给所述操作系统的可访问空间的资源信息以及所述板载网卡的设备信息;
所述提取存储于所述目标存储路径下的目标信息,包括:
通过所述DPDK中的虚拟设备总线探测函数调用预设探测函数,所述预设探测函数用于提取所述资源信息;
调用所述DPDK中的虚拟设备总线扫描函数,以提取所述设备信息。
在本申请中,结合DPDK现有的工具集成情况,提供预设探测函数,通过DPDK自身已有的虚拟设备总线探测函数调用该预设探测函数,进而提取板载网卡的资源信息,进一步的,通过DPDK自身的虚拟设备总线扫描函数提取板载网卡的设备信息,本方案充分应用DPDK现有的工具实现目标信息的获取,可以有效减少实现本方案的代码量,降低处理器执行本方案时的负载率,有助于提高处理器的运行性能。
第二方面,本申请提供一种片上系统,包括处理器以及与所述处理器通信连接的板载网卡,所述处理器搭载有操作系统,所述操作系统包括用户态空间和内核态空间,所述用户态空间配置有DPDK且所述DPDK包括用于驱动所述板载网卡的用户态驱动,所述内核态空间配置有所述DPDK可访问的预设文件系统;
所述处理器执行如本发明第一方面任一项所述的设备探测方法。
第三方面,本申请提供一种计算机设备,包括如本发明第二方面任一项所述的片上系统。
第四方面,本发明提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现本发明第一方面任一项所述的设备探测方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中一种计算机设备的结构示意图。
图2是本发明实施例提供的一种片上系统的结构框图。
图3是本发明实施例提供的一种设备探测方法的流程示意图。
图4是本发明实施例提供的一种信息存储方法的流程示意图。
图5是本发明实施例提供的一种设备探测方法的流程框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
DPDK(Data Plane Development Kit,数据平面开发套件)是一个开源的数据平面开发工具集,通常配置于片上系统(System on Chip,SoC)内部,片上系统通过DPDK能够与其连接的外部设备,比如PCI(Peripheral Component Interconnect,外部链接标准)网卡实现高性能的信息传输。结合图1所述,片上系统10内设置有处理器11、存储器12,处理器11通过片内总线13通信连接,当然,片上系统10内部还设置有其他构成部分,此处不再一一展开,具体可参照相关技术,进一步的,片上系统10通过PCI总线20与PCI网卡30通信连接。基于图1所示的计算机设备的构成,片上系统10通过DPDK与PCI网卡30进行高效通信的前提是DPDK能够有效探测到,即识别到PCI网卡30,进而驱动PCI网卡30。
然而,发明人研究发现,现有的设备探测方法主要针对图1所示的通过PCI总线与片上系统相连的PCI网卡,对于集成在片上系统内部的板载网卡则无法进行有效探测,因此,如何使得DPDK探测到片上系统内部的板载网卡,进而实现高性能的信息传输,成为本领域技术人员亟待解决的技术问题之一。
为解决上述技术问题,本发明提供一种片上系统,参见图2所示,本发明提供的片上系统包括处理器21、板载网卡22、片内总线23以及存储器24,处理器21通过片内总线23分别与板载网卡22以及存储器24通信连接,需要说明的是,在实际应用中,片上系统中还包括有其他构成部分,此处不再一一展开,具体可参照相关技术。进一步的,在本发明提供的片上系统中,处理器21搭载有操作系统,该操作系统包括用户态空间和内核态空间,更为重要的是,用户态空间配置有DPDK且DPDK包括用于驱动板载网卡22的用户态驱动,而内核态空间则配置有DPDK可访问的预设文件系统。
基于前述片上系统构成,处理器根据板载网卡的设备节点标识,在预设文件系统中提取驱动板载网卡所需的目标信息,并在DPDK中创建用于记录目标信息的用户态设备文件,并且该用户态设备文件与用户态驱动是相关联的,最后处理器调用用户态驱动并根据用户态设备文件与用户态驱动之间的关联关系驱动该板载网卡,由于设备节点标识用于唯一的表示板载网卡,可以确保DPDK探测到的正确的板载网卡,因此,通过本申请提供的设备探测方法,可以使得DPDK探测到片上系统内部的板载网卡,实现对板载网卡的驱动,进而实现高性能的信息传输。
本发明还提供一种设备探测方法,应用于图2所示的片上系统,具体应用于片上系统中的处理器,结合图3所示,本发明提供的设备探测方法的流程,可以包括如下步骤。
S300、根据板载网卡的设备节点标识,在预设文件系统中提取驱动板载网卡所需的目标信息。
在一种可能的实施方式中,预设文件系统中预存有驱动板载网卡所需的目标信息,对于此种情况,可以直接访问预设文件系统并获取前述目标信息。在另一种可能的实施方式中,预设文件系统中并未预存板载网卡的目标信息,此种情况下,需要提前将驱动板载网卡所需的目标信息存储于预设文件系统中,确保DPDK成功获取到该目标信息。
参见图4所示,本发明实施例提供一种消息存储方法,用于将驱动板载网卡所需的目标信息存储于预设文件系统中,本方法的流程可以包括如下步骤。
S301、建立板载网卡与内核态驱动之间的绑定关系。
图5所示为本发明实施例提供的设备探测方法的流程框图,结合图5所示,片上系统内部设置有处理器和板载网卡,处理器与板载网卡通过片内总线相连,处理器搭载的操作系统包括内核态空间和用户态空间,DPDK配置于用户态空间,预设文件系统配置于内核态空间,且用户态空间的DPDK可以直接访问预设文件系统。
如图5所述,本实施例提供一内核态驱动,将目标信息存储于预设文件系统首先要做的是建立板载网卡与内核态驱动之间的绑定关系。对于内核态驱动的主要作用将在后续内容中展开,此处暂不详述。
在一种可能的实施方式中,处理器通过DPDK中预设的加载命令加载内核态驱动,并将板载网卡的设备节点标识记录于内核态驱动的驱动目录的指定文件中,同时,将内核态驱动的名字记录于板载网卡对应的驱动文件中,即实现板载网卡与内核态驱动之间的绑定。对于板载网卡与内核态驱动之间绑定关系的具体建立过程,可参照相关技术实现,此处不再详述。
S302、运行内核态驱动,以在预设文件系统中创建内核态UIO设备文件。
在一种可能的实施方式中,驱动板载网卡的目标信息包括表征板载网卡提供给操作系统的可访问空间的资源信息以及板载网卡的设备信息,其中,资源信息主要指板载网卡中的设备基地址寄存器的相关信息,通过设备基地址寄存器处理器可以确定板载网卡提供该操作系统的可访问空间。设备信息可以包括前述设备基地址寄存器的信息,还可以包括设备节点标识、时钟频率以及运行模式等信息,在实际应用中可以根据控制需求以及板载网卡的自身性能选择,在未超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
基于上述内容,处理器运行内核态驱动,该内核态驱动的作用在于:在预设文件系统中创建内核态UIO(Userspace Input/Output,用户空间输入/输出)设备文件,通过该内核态UIO设备文件记录有前述资源信息。当然,该内核态UIO设备文件同样存储于预设文件系统中,方面后续步骤访问该内核态UIO设备以获取板载网卡的资源信息,只不过与设备信息对应的存储路径不同。
S303、将板载网卡的设备信息存储于预设文件系统。
进一步的,处理器将在预设文件系统中创建存储路径,在该存储路径下存储板载网卡的设备信息。
在图4所示实施例提供的方法中,处理器将板载网卡的设备信息存储于预设文件系统中,并且,提供一种内核态驱动,通过内核态驱动在预设文件系统中创建用于记录板载网卡资源信息的内核态UIO设备文件,由于预设文件系统是用户态空间中DPDK可访问的,通过本方法DPDK便可获取驱动板载网卡所需目标信息。
进一步的,如图1所示,PCI网卡通过PCI总线与片上系统相连,PCI总线地址可以唯一的表征PCI网卡,片上系统可以基于PCI总线地址识别相应的PCI网卡。但是,对于图2所示的片上系统,板载网卡通过片内总线连接处理器,并不存在PCI总线,处理器也就无法通过PCI总线地址区分板载网卡。
结合目前片上系统的基本架构可知,板载网卡的设备节点标识与板载网卡具有一一对应的关系,可通过板载网卡的设备节点标识唯一的表征板载网卡,基于此,前述资源信息以及设备信息在预设文件系统中的存储路径,均可基于板载网卡的设备节点标识设置,即存储路径中包含设备节点标识信息。
基于上述存储路径设置,本发明提供的设备探测方法根据板载网卡的设备节点标识获取驱动板载网卡所需的目标信息,处理器在预设文件系统中确定板载网卡的设备节点标识对应的目标存储路径,提取存储于该目标存储路径下的目标信息。驱动板载网卡所需的目标信息在预设文件系统中的存储路径基于板载网卡的设备节点标识创建,DPDK可根据板载网卡的设备节点标识对应的目标存储路径在预设文件系统中提取目标信息,由于设备节点标识可以唯一的表示板载网卡,基于板载网卡的设备节点标识创建目标信息的存储路径,可以确保DPDK获取正确的目标信息,有助于提高DPDK探测板载网卡以及驱动板载网卡的成功率。
在一种可能的实施方式中,本发明实施例进一步提供一种基于DPDK现有构成访问预设文件系统并获取目标信息的方法。
在DPDK的现有构成中,设备探测是基于总线实现的,DPDK已经定义的总线类型包括PCI总线、VDEV(Virtual Device,虚拟设备)总线等,本方法基于VDEV总线实现,进一步的,DPDK还提供一组虚拟设备总线函数,包括图5所示的虚拟设备总线探测函数和虚拟设备总线扫描函数,其中,虚拟设备总线探测函数是一个抽象的函数,它没有具体的行为,可以用来调用自定义的探测函数,虚拟设备总线扫描函数会根据DPDK传参来创建虚拟总线设备,而并不关心该设备是否对应真实的物理设备。
基于上述内容,本发明实施例提供一个预设探测函数,处理器通过虚拟设备总线探测函数调用该预设探测函数,进而访问预设文件系统,确定板载网卡的设备节点标识对应的目标存储路径下存储的内核态UIO设备文件,打开并获取该文件中记录的资源信息。同时,处理器调用DPDK提供的虚拟设备总线扫描函数,获取存储于预设文件系统中的设备信息。
至此,完成根据板载网卡的设备节点标识获取预设文件系统中驱动板载网卡所需的目标信息的全部过程。
S310、在DPDK中创建用于记录目标信息的用户态设备文件,且用户态设备文件与用户态驱动相关联。
结合图5所示,用户态设备文件包括两个,其一是用户态UIO设备文件,其二是用户态RTE(Runtime Environment,运行时环境)设备文件。
在一种可能的实施方式中,DPDK提供有用户态UIO设备结构体以及用户态RTE设备结构体,在经过前述步骤得到驱动板载网卡所需的资源信息以及设备信息之后,即可调用用户态UIO设备结构体以及用户态RTE设备结构体。
将所得设备信息记录于预先调用的用户态RTE设备结构体中,得到用户态RTE设备文件,即创建了一个用户态RTE设备。
进一步的,如前所述,资源信息表征板载网卡提供给操作系统的可访问空间,在得到资源信息之后,首先对所得资源信息对应的可访问空间进行地址重映射,得到重映射地址,然后将重映射地址记录于预先调用的用户态UIO设备结构体之中,得到用户态UIO设备文件,即创建一个用户态UIO设备。
在本申请中,创建用户态UIO设备文件以及用户态RTE设备文件,通过用户态UIO设备文件记录板载网卡的资源信息,通过用户态RTE设备文件记录板载网卡的设备信息,通过提供不同的用户态设备文件分别记录目标信息中的不同内容,满足DPDK关于用户态文件创建的相关规则,确保DPDK能够成功探测到板载网卡。
在得到用户态设备文件之后,需要建立用户态设备文件与用户态驱动之间的关联关系。在一种可能的实施方式中,可以通过指针的方式实现用户态设备文件与用户态驱动之间的关联关系。结合图5所示,通过指针建立用户态驱动与用户态RTE设备文件之间的关联关系,并通过指针建立用户态RTE设备文件与用户态UIO设备文件之间的关联关系。可以理解的是,本实施例提供的设备探测方法,通过用户态RTE设备文件建立了用户态驱动与用户态UIO设备文件之间的关联关系。至于基于指针建立关联关系的具体实现过程,可参照相关技术实现,此处不再详述。
S320、调用用户态驱动并根据用户态设备文件与用户态驱动之间的关联关系驱动板载网卡。
用户态驱动是运行于用户态空间中的应用程序可以调用的驱动程序,本申请提供的设备探测方法,目的在于实现通过用户态驱动驱动板载网卡,减少对于内核态空间的访问频次,提高处理器运行的安全性。在建立前述关联关系后,即可调用用户态驱动并根据用户态设备文件与用户态驱动之间的关联关系驱动板载网卡。
结合图5所述,用户态驱动可预定义网卡操作接口集,该接口集用于实现网卡硬件初始化、网卡收包、网卡发包等接口函数。在实际应用中,用户态驱动可基于具体的驱动需求以及板载网卡的性能参数并参照相关技术实现,本发明对于用户态驱动的具体实现方法不做限定。
综上所述,通过本实施例提供的设备探测方法,处理器根据板载网卡的设备节点标识,在预设文件系统中提取驱动板载网卡所需的目标信息,并在DPDK中创建用于记录目标信息的用户态设备文件,并且该用户态设备文件与用户态驱动是相关联的,最后处理器调用用户态驱动并根据用户态设备文件与用户态驱动之间的关联关系驱动该板载网卡,由于设备节点标识用于唯一的表示板载网卡,可以确保DPDK探测到的正确的板载网卡,因此,通过本申请提供的设备探测方法,可以使得DPDK探测到片上系统内部的板载网卡,实现对板载网卡的驱动,进而实现高性能的信息传输。
进一步的,本发明还提供一种计算机设备,包括前述任一实施例提供的片上系统。
在一些实施例中,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个指令,这一个或者多个指令被一个或者多个处理器执行时,使得所述处理器执行前文描述的设备探测方法。相关具体实现请参考前述描述,此处不过多赘述。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述内容中描述的根据本申请各种实施例的设备探测方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
Claims (12)
1.一种设备探测方法,其特征在于,应用于片上系统,所述片上系统包括处理器以及与所述处理器通信连接的板载网卡,所述处理器搭载有操作系统,所述操作系统包括用户态空间和内核态空间,所述用户态空间配置有数据平面开发套件DPDK且所述DPDK包括用于驱动所述板载网卡的用户态驱动,所述内核态空间配置有所述DPDK可访问的预设文件系统,所述方法包括如下由所述处理器执行的步骤:
根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息;
在所述DPDK中创建用于记录所述目标信息的用户态设备文件,且所述用户态设备文件与所述用户态驱动相关联;
调用所述用户态驱动并根据所述用户态设备文件与所述用户态驱动之间的关联关系驱动所述板载网卡。
2.根据权利要求1所述的方法,其特征在于,所述目标信息包括表征所述板载网卡提供给所述操作系统的可访问空间的资源信息以及所述板载网卡的设备信息;
在所述DPDK中创建用于记录所述目标信息的用户态设备文件,包括:
在所述DPDK中创建用户态用户空间输入/输出UIO设备文件以及用户态运行时环境RTE设备文件,其中,所述用户态UIO设备文件用于记录所述资源信息,所述用户态RTE设备文件用于记录所述设备信息。
3.根据权利要求2所述的方法,其特征在于,所述用户态设备文件与所述用户态驱动之间的关联关系,包括:
所述用户态驱动与所述用户态RTE设备文件关联,以及,所述用户态RTE设备文件与所述用户态UIO设备文件关联。
4.根据权利要求2所述的方法,其特征在于,在所述DPDK中创建用户态UIO设备文件,包括:
对所述资源信息对应的可访问空间进行地址重映射,得到重映射地址;
将所述重映射地址记录于预先调用的用户态UIO设备结构体,得到所述用户态UIO设备文件。
5.根据权利要求2所述的方法,其特征在于,在所述DPDK中创建所述用户态RTE设备文件,包括:
将所述设备信息记录于预先调用的用户态RTE设备结构体,得到所述用户态RTE设备文件。
6.根据权利要求2至5任一项所述的方法,其特征在于,在根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息之前,所述方法还包括:
将驱动所述板载网卡所需的目标信息存储于所述预设文件系统中。
7.根据权利要求6所述的方法,其特征在于,所述内核态空间配置有用于驱动所述板载网卡的内核态驱动;
将驱动所述板载网卡所需的目标信息存储于所述预设文件系统中,包括:
建立所述板载网卡与所述内核态驱动之间的绑定关系;
运行所述内核态驱动,以在所述预设文件系统中创建内核态UIO设备文件,所述内核态UIO设备文件记录有所述资源信息;
将所述板载网卡的设备信息存储于所述预设文件系统。
8.根据权利要求1所述的方法,其特征在于,所述目标信息在所述预设文件系统中的存储路径基于所述设备节点标识创建;
根据所述板载网卡的设备节点标识,在所述预设文件系统中提取驱动所述板载网卡所需的目标信息,包括:
在所述预设文件系统中确定所述设备节点标识对应的目标存储路径;
提取存储于所述目标存储路径下的目标信息。
9.根据权利要求8所述的方法,其特征在于,所述目标信息包括表征所述板载网卡提供给所述操作系统的可访问空间的资源信息以及所述板载网卡的设备信息;
所述提取存储于所述目标存储路径下的目标信息,包括:
通过所述DPDK中的虚拟设备总线探测函数调用预设探测函数,所述预设探测函数用于提取所述资源信息;
调用所述DPDK中的虚拟设备总线扫描函数,以提取所述设备信息。
10.一种片上系统,其特征在于,包括处理器以及与所述处理器通信连接的板载网卡,所述处理器搭载有操作系统,所述操作系统包括用户态空间和内核态空间,所述用户态空间配置有DPDK且所述DPDK包括用于驱动所述板载网卡的用户态驱动,所述内核态空间配置有所述DPDK可访问的预设文件系统;
所述处理器执行如权利要求1至9任一项所述的设备探测方法。
11.一种计算机设备,其特征在于,包括如权利要求10所述的片上系统。
12.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现权利要求1至9任一项所述的设备探测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262611.9A CN117421163A (zh) | 2023-09-27 | 2023-09-27 | 设备探测方法、片上系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262611.9A CN117421163A (zh) | 2023-09-27 | 2023-09-27 | 设备探测方法、片上系统、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421163A true CN117421163A (zh) | 2024-01-19 |
Family
ID=89527442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311262611.9A Pending CN117421163A (zh) | 2023-09-27 | 2023-09-27 | 设备探测方法、片上系统、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421163A (zh) |
-
2023
- 2023-09-27 CN CN202311262611.9A patent/CN117421163A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102422299B (zh) | 信息设备以及防止执行不正当程序代码的方法 | |
US9262283B2 (en) | Method for reading kernel log upon kernel panic in operating system | |
US10606677B2 (en) | Method of retrieving debugging data in UEFI and computer system thereof | |
US8146006B2 (en) | Method and apparatus for obtaining user interface information from executable program code | |
CN114153779B (zh) | 一种i2c通信方法、系统、设备、及存储介质 | |
CN112541166A (zh) | 一种方法、系统和计算机可读存储介质 | |
CN114327944A (zh) | 一种多系统共享内存的方法、装置、设备及存储介质 | |
CN113961419B (zh) | 存储器验证方法、装置、电子设备及存储介质 | |
CN114765051A (zh) | 内存测试方法及装置、可读存储介质、电子设备 | |
CN111782474A (zh) | 日志处理方法、装置、电子设备和介质 | |
CN110633190B (zh) | 一种应用程序内存监控方法、装置、设备及存储介质 | |
CN110955566B (zh) | 侦错方法 | |
CN117421163A (zh) | 设备探测方法、片上系统、计算机设备及存储介质 | |
KR20170079368A (ko) | 디버그 정보를 수집하기 위한 디버그 로직을 포함하는 cpu 시스템, 이를 포함하는 컴퓨팅 시스템 및 이의 디버깅 방법 | |
CN112363875B (zh) | 一种系统缺陷检测方法、设备、电子设备和存储介质 | |
CN107766385B (zh) | 一种转换虚拟磁盘文件格式的方法与设备 | |
CN114691223A (zh) | 一种通过网络传输bios日志的方法及装置 | |
CN110851332A (zh) | 一种日志文件的处理方法、装置、设备和介质 | |
CN114461479A (zh) | 调试多媒体处理芯片的方法、装置、存储介质和电子设备 | |
CN102421004B (zh) | 电视机软件系统的调试方法及装置 | |
US8756409B2 (en) | System, method and computer program product for retrieving data at boot time | |
JP2000339189A (ja) | 不正なメモリアクセスを検出する方法、デバッグ装置および記録媒体 | |
CN113139190A (zh) | 程序文件检测方法、装置、电子设备及存储介质 | |
JP7274069B2 (ja) | トレース制御装置、エミュレータ、トレース制御方法、および、トレース制御プログラム | |
JP4886188B2 (ja) | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |