CN112667318A - 逻辑核的绑定方法、装置、设备及存储介质 - Google Patents
逻辑核的绑定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112667318A CN112667318A CN202011623746.XA CN202011623746A CN112667318A CN 112667318 A CN112667318 A CN 112667318A CN 202011623746 A CN202011623746 A CN 202011623746A CN 112667318 A CN112667318 A CN 112667318A
- Authority
- CN
- China
- Prior art keywords
- logic
- board card
- configuration information
- thread
- core
- 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
- 230000027455 binding Effects 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012545 processing Methods 0.000 claims abstract description 123
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000002955 isolation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009870 specific binding Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种逻辑核的绑定方法、装置、设备及存储介质,通过在检测到板卡接入之后,基于板卡的唯一性标识,确定板卡接入到的处理单元,通过获取该处理单元中各逻辑核的配置信息和板卡的配置信息,根据处理单元中各逻辑核的配置信息和板卡的配置信息,从处理单元的逻辑核中确定出用于与板卡的线程进行绑定的目标逻辑核,通过将目标逻辑核与板卡的线程进行绑定,使得目标逻辑核能够固定处理自身绑定的线程的任务,本发明提供的方案实现了板卡线程与逻辑核之间的自动绑定,简化了逻辑核的绑定操作,节约了人工成本,降低了数据传输的时延。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种逻辑核的绑定方法、装置、设备及存储介质。
背景技术
在当前的通信系统中,通常采用服务器单元与板卡相结合的形式作为网络数据包的传输中转枢纽。其中,服务器单元的处理器一般采用非一致性架构,该架构的逻辑核众多且分布分散,基于板卡在不同的逻辑核上进行数据业务传输时会带来较大的时延差异性,因此需要通过固定的逻辑核来处理相应线程上的业务,以降低线程间的切换频率,减小通信业务链的传输时延。
但是相关技术一般是通过安装相应工具来查看服务器单元上各设备的信息,并根据各设备的信息,通过人工手动的方式来绑定逻辑核和线程之间的关系的。这种方式的配置流程较为繁琐,每一步都需要使用相应工具,效率较低,且常常存在数据包丢失的问题,并且也无法满足实时性通信业务链对传输时延的要求。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种逻辑核的绑定方法、装置、设备及存储介质。
第一方面,提供了一种逻辑核的绑定方法,该方法包括:在检测到板卡接入之后,基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,其中,所述处理单元包括多个逻辑核;获取所述多个逻辑核的配置信息和所述板卡的配置信息;根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核;将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
第二方面,提供了一种逻辑核绑定装置,该装置包括:
第一确定模块,用于在检测到板卡接入之后,基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,其中,所述处理单元包括多个逻辑核。
获取模块,用于获取所述多个逻辑核的配置信息和所述板卡的配置信息。
第二确定模块,用于根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核;
绑定模块,用于将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
第三方面,提供了一种数据处理设备,该数据处理设备包括:处理单元和驱动单元,当板卡接入所述处理单元时,所述驱动单元执行上述第一方面的方法。
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当所述计算机程序被数据处理设备的驱动单元执行时,实现上述第一方面的方法。
上述技术方案与现有技术相比具有如下优点:
本发明在检测到板卡接入之后,基于板卡的唯一性标识,确定板卡接入到的处理单元,通过获取处理单元中各逻辑核的配置信息和板卡的配置信息,根据各逻辑核的配置信息和板卡的配置信息,确定用于与板卡线程绑定的目标逻辑核,通过将目标逻辑核与板卡的线程进行绑定,使得目标逻辑核固定处理自身绑定的线程的任务。本发明提供的方案能够实现板卡线程与逻辑核之间的自动绑定,简化了绑定操作,节约了人工成本,提高了逻辑核的绑定效率,并且通过将板卡上的线程与相应的逻辑核进行绑定,使得被绑定的逻辑核固定处理对应线程上的任务,能够减小线程调度频率,减少因为线程调度对数据传输所造成的时延,使得板卡网口对数据包的处理和收发时延有效降低,降低了因线程调度带来的丢包率,保证了板卡实际传输数据时的性能,改善了整体通信链路的质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术提供的一种逻辑核绑定方法的示意图;
图2是本发明提供的一种逻辑核的绑定方法的流程图;
图3A是相关技术提供的一种线程调度方法的示意图;
图3B是本发明提供的一种线程调度方法的示意图;
图4是本发明提供的一种确定目标逻辑核的方法流程图;
图5是本发明提供的一种逻辑核的绑定方法的流程图;
图6是本发明提供的一种逻辑核绑定装置的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1是相关技术提供的一种逻辑核绑定方法的示意图,如图1所示,相关技术在板卡接入到数据处理设备(比如,基带处理设备等,具有数据处理和数据收发功能的设备)中的某个中央处理器(central processing unit,简称CPU)后,一般通过相应的工具查看CPU的架构信息和逻辑核的信息,并通过手动的方式将板卡的线程绑定到相应的逻辑核上,其具体的绑定方法如下:
步骤1001、板卡接入。
步骤1002、用户通过数据处理设备中安装的工具,查看数据处理设备系统所承载的CPU架构。
步骤1003、当CPU架构为非统一内存访问架构(Non Uniform Memory AccessArchitecture,简称NUMA)架构时,通过相应工具查看NUMA节点中逻辑核的配置信息和逻辑核的映射方式,并对查看到的信息进行记录。
步骤1004、通过相应的工具获取板卡所在的NUMA节点(或者在其他实施例中也可以称作socket节点)的信息。
步骤1005、根据实际的业务需求手动从板卡所在的NUMA节点中选择用于绑定的逻辑核,实现对NUMA节点中逻辑核的隔离。
步骤1006、设置板卡主程序的线程亲和性,并获取主程序的线程的进程标识符(process identifier,简称PID)。
步骤1007、应用工具查看逻辑核对应的位掩码,并进行预设的进制转换计算。
步骤1008、利用逻辑核TASKSET等工具进行主从逻辑核的绑定,并对主从逻辑核进行业务隔离,使得各逻辑核固定处理自身绑定的线程上的任务。
步骤1009、查询并确认隔离成功。
步骤1010、完成配置。
由上述绑定流程可知,相关技术提供的绑定流程较繁琐,每一步都需要使用相应的工具,逻辑核绑定效率低,存在较大的传输时延,无法达到通信系统的业务需求。
针对相关技术存在的上述技术缺陷,本发明提供了一种逻辑核的绑定方案,该方案通过在驱动侧加入相应的驱动程序,在检测到板卡接入到数据处理设备之后,通过驱动程序自动确定板卡所在的NUMA节点,并获取板卡所在的NUMA节点中的逻辑核的配置信息和板卡的配置信息,根据板卡所在NUMA节点中逻辑核的配置信息和板卡的配置信息确定出可用于绑定的逻辑核,通过将确定出的逻辑核与板卡的线程进行绑定,并进行业务隔离处理,使得被绑定的逻辑核固定处理与其绑定的线程上的任务。该方案不需要借助特定的工具,也不需要人工手动操作即可实现逻辑核的自动绑定,节约了人工成本,简化了逻辑核的绑定流程,提高了逻辑核的绑定效率,并且通过将板卡上的线程与相应的逻辑核进行绑定,使得被绑定的逻辑核固定处理对应线程上的任务,减小了线程的调度频率,减少了因为线程调度对数据传输所造成的时延,使得板卡网口对数据包的处理和收发时延有效降低,降低了因线程调度带来的丢包率,保证了板卡实际传输数据时的性能,改善了整体通信链路的质量。
下面结合示例性的实施例对本发明的技术方案进行阐述。
图2是本发明提供的一种逻辑核的绑定方法的流程图,该方法可以由一种数据处理设备的驱动程序来执行。该数据处理设备可以示例性的理解为搭载有Linux系统(在其他实施例中也可以不局限于Linux系统),同时具有数据处理和数据收发功能的设备,该设备比如可以是基带处理设备,但不局限于基带处理设备。本实施例所称的数据处理设备中至少搭载有一个NUMA节点,每个NUMA节点中包括多个逻辑核,各逻辑核在运行不同的业务时,可以产生不同的性能。如图2所示,该方法包括如下步骤:
步骤201、在检测到板卡接入之后,基于板卡的唯一性标识,确定板卡接入到的处理单元,处理单元包括多个逻辑核。
板卡是一种印制电路板,可用于控制计算机设备上硬件的运行,板卡包括:网卡、声卡和显卡。为了便于理解,本实施例所称的板卡可以示例性的理解为网卡。
示例的,板卡通过数据处理设备上的接口接入到数据处理设备中的处理单元。板卡在接入到处理单元之后,被分配得到其在数据处理设备中的唯一性标识。其中,板卡接入的接口比如可以是采用外设部件互联标准(Peripheral Component Interconnect,简称PCI)的接口。板卡的唯一性标识比如可以是板卡在数据处理设备上的PCI设备结构描述符(pacc)。
本实施例中所称的处理单元,可以示例性的理解为具有NUMA架构的NUMA节点。处理单元中包括多个逻辑核,各逻辑核在运行不同的业务时,可以产生不同的性能。
实际应用中,不同的板卡需要不同的驱动程序来进行驱动,不同板卡与驱动程序之间的对应关系将被存储在数据处理设备的系统中。板卡在接入处理单元之后,数据处理设备搭载的Linux系统会通过Sysfs文件系统自动记录接入的板卡或其他PCI设备的信息,由于板卡是连接在数据处理设备的总线上,由总线上的网络设备控制器驱动实现数据收发的,通过轮询数据处理设备的总线所引领的设备链表即可读取到板卡的信息。此时被板卡接入的处理单元安装用于驱动该板卡的驱动程序,并为板卡分配PCI设备结构描述符(pacc)和初始化。
在确定板卡所在的处理单元的操作中,通过扫描总线设备链表,根据各总线设备的pacc即可轮询获得各设备的信息,然后根据各设备的信息填充各设备属性结构体dev,即可应用各设备的dev信息去Sysfs文件系统中读取各设备上安装的驱动程序的属性字符串,通过将总线上各处理单元安装的驱动程序的属性字符串与板卡的驱动程序的属性字符串进行匹配,当某个处理单元安装的驱动程序的属性字符串与板卡的驱动程序的属性字符串一致(即处理单元安装了该板卡的而驱动程序)时,即可以确定该处理单元为板卡接入的处理单元。也就是说,本实施例可以基于板卡的唯一性标识获取板卡的驱动信息,然后基于板卡的驱动信息,轮询并查找总线上的设备,确定安装有与该驱动信息相匹配的驱动程序的处理单元为板卡接入的处理单元。
步骤202、获取多个逻辑核的配置信息和板卡的配置信息。
其中,逻辑核的配置信息示例性的可以包括如下信息:逻辑核可处理的业务类型、支持的数据传输方式、支持的板卡类型、标识信息,所属的NUMA节点的信息,以及逻辑核与所属NUMA节点之间的映射方式等。板卡的配置信息示例性的可以包括如下信息:板卡的类型(比如,声卡、网卡或显卡)、支持的数据类型、板卡的型号等。
步骤203、根据处理单元中的多个逻辑核的配置信息和板卡的配置信息,从该些逻辑核中确定出用于与板卡的线程进行绑定的目标逻辑核。
在实际应用中,不同的逻辑核可能适用于不同的板卡。在选择用于与板卡的线程进行绑定的逻辑核时,示例性的,可以先根据板卡的配置信息和各逻辑核的配置信息,确定出与板卡匹配的逻辑核,再从确定出的逻辑核中选择出与板卡的线程进行绑定的逻辑核,其中,在选择与线程绑定的逻辑核时,可以随机选择,也可以根据预设规则选择。比如,在一种实施方式中,可以预先设定逻辑核与线程类型之间的对应关系,在选择逻辑核时,可以根据该对应关系选择与待绑定的线程的类型相匹配的逻辑核作为目标逻辑核。当然这里仅是对预设规则的示例说明而不是对本公开预设规则的唯一限定。
步骤204、将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
举例来说,假如目标逻辑核是根据板卡中的线程的类型确定得到的,那么在执行绑定操作时,需要将目标逻辑核和相应类型的线程进行绑定。比如与上行数据收取线程对应的逻辑核需要与板卡中的上行数据收取线程进行绑定,与下行数据发送线程对应的逻辑核需要与板卡中的上行数据收取线程进行绑定。或者在目标逻辑核与线程的类型之间不存在特定的约束关系时,也可以随机的在目标逻辑核与线程之间进行配对和绑定。当然上述仅为示例说明而不是对本发明的唯一限定。
实际中,如果目标逻辑核的数量如果小于板卡中的线程数,那么,可以根据需要采用部分目标逻辑核与板卡中的部分线程进行绑定,使得这些绑定线程的目标逻辑核可以固定处理其自身对应的线程上的任务。而其他未被绑定的线程则通过复用剩余未绑定目标逻辑核来处理相应的任务。比如,在一些示例中,可以按照线程上任务的重要程度或者任务对时延的要求为板卡中的线程设定优先级,当目标逻辑核的数量小于板卡中线程的总数量时,可以优先对重要程度高或者对时延要求高的线程进行绑定,而其他线程则继续采用相关技术提供的方法复用一个或多个逻辑核。
示例的,图3A是相关技术提供的一种线程调度方法的示意图,图3B是本发明提供的一种线程调度方法的示意图。在图3A和图3B中,socket0和socket1是两个NUMA节点,T1、T2、T3为板卡的三个线程,图3A和图3B中的每个小方框表示一个逻辑核,位于socket0括号下的逻辑核表示在socket0中的逻辑核,位于socket1括号下的逻辑核表示在socket1中的逻辑核,图3A和图3B中带箭头的曲线表示线程的调度。如图3A和图3B所示,在图3A中由于各线程没有绑定固定的逻辑核,因此,在数据传输时需要通过调度从众多的逻辑核中调配相应的逻辑核来处理线程上的任务,调配过程需要消耗一定的时间,造成数据的传输时延较长,而在图3B中,通过将线程与相应的逻辑核进行绑定,使得逻辑核只处理各自绑定的线程上的任务,在数据传输时,直接使用与线程绑定的逻辑核来处理线程上的任务即可,从而减少了线程调度所需要的时间,缩短了输出传输的时延,提高了效率。当然上述仅是以图3A和图3B进行的示例说明,并不是对本发明的唯一限定。
本实施例在检测到板卡接入之后,基于板卡的唯一性标识,确定板卡接入到的处理单元,通过获取处理单元中各逻辑核的配置信息和板卡的配置信息,根据各逻辑核的配置信息和板卡的配置信息,确定用于与板卡线程绑定的目标逻辑核,通过将目标逻辑核与板卡的线程进行绑定,使得目标逻辑核固定处理自身绑定的线程的任务。本实施例提供的方案能够实现板卡线程与逻辑核之间的自动绑定,简化了绑定操作,节约了人工成本,提高了逻辑核的绑定效率,并且通过将板卡上的线程与相应的逻辑核进行绑定,使得被绑定的逻辑核固定处理对应线程上的任务,能够减小线程调度频率,减少因为线程调度对数据传输所造成的时延,使得板卡网口对数据包的处理和收发时延有效降低,降低了因线程调度带来的丢包率,保证了板卡实际传输数据时的性能,改善了整体通信链路的质量。
图4是本发明提供的一种确定目标逻辑核的方法流程图,本实施例所称的板卡可以被示例性的具体为网卡,该网卡具备数据包传输功能,该网卡的线程中包括上行数据收取线程和下行数据发送线程。如图4所示,在本发明的一个实施例中,上述步骤203的方法可以包括:
步骤401、根据处理单元中的多个逻辑核的配置信息和板卡的配置信息,从多个逻辑核中确定出与板卡的配置信息相匹配的逻辑核。
其中,逻辑核的配置信息示例性的可以包括如下信息:逻辑核可处理的业务类型、支持的数据传输方式、支持的板卡类型、标识信息,所属的NUMA节点的信息,以及逻辑核与所属NUMA节点之间的映射方式等。板卡的配置信息示例性的可以包括如下信息:板卡的类型(比如,声卡、网卡或显卡)、支持的数据类型、板卡的型号等。
以网卡为例,假设处理单元中某些逻辑核支持的板卡类型包括网卡,且该网卡的型号、数据类型等也是该些逻辑核支持的网卡型号和数据类型,那么这些逻辑核即为与该网卡匹配的逻辑核。当然这里仅为示例说明,而不是判断逻辑核与板卡是否匹配的唯一标准。实际上只要能够识别板卡并处理板卡上的任务的逻辑核均可被认为是与板卡匹配的逻辑核。
步骤402、在与板卡的配置信息相匹配的逻辑核的数量大于2时,从与板卡的配置信息相匹配的逻辑核中确定出用于与上行数据收取线程进行绑定的第一逻辑核和用于与下行数据发送线程进行绑定的第二逻辑核。
本实施例中,假设与板卡的配置信息型匹配的逻辑核的数量大于两个。在数据传输的场景中一般要求数据传输的时延要尽可能的小,为了保证数据传输低时延的要求,本实施例的一种实施方式是优先确定出两个逻辑核(即第一逻辑核和第二逻辑核),使得这两个逻辑核分别与上行数据收取线程和下行数据发送线程绑定,通过这两个逻辑核单独来处理上行数据收取线程和下行数据发送线程上的任务。
本实施例通过确定出两个逻辑核,并使得这两个逻辑核分别与板卡中的上行数据收取线程和下行数据发送线程绑定,能够保证数据上行传输和下行传输的低时延要求,提高数据传输的实时性。
进一步的,在本发明的一个实施例中从与板卡的配置信息相匹配的逻辑核中确定出用于与上行数据收取线程进行绑定的第一逻辑核和用于与下行数据发送线程进行绑定的第二逻辑核的步骤可以包括如下子步骤:
S1、从与板卡的配置信息相匹配的逻辑核中确定出使得处理单元的单核性能最大化的第一逻辑核和第二逻辑核。
S2、将第一逻辑核作为与上行数据收取线程绑定的逻辑核。
S3、将第二逻辑核作为与下行数据发送线程绑定的逻辑核。
举例来说,假设与板卡信息相匹配的逻辑核有3个分别为第一逻辑核、第二逻辑核和第三逻辑核,其中,第一逻辑核和第二逻辑核被采用时处理单元的性能能够达到80%,第二逻辑核和第三逻辑核被采用时处理单元的性能能够达到60%,第一逻辑核和第三逻辑核被采用时处理单元的性能能够达到50%,那么第一逻辑核和第二逻辑核即为与板卡信息匹配的逻辑核中使得处理单元性能最大化的逻辑核,从而可以将这两个逻辑核分别与上行数据收取线程和下行数据发送线程绑定。
当然这里仅为示例说明并不是对本公开的唯一限定。
本实施例通过选择能够使得处理单元的单核性能最大化的逻辑核进行绑定,能够充分发挥处理单元的性能,提高数据的处理效率,缩短数据的传输时延,降低丢包率,提高通信链路的质量。
在本发明的又一个实施例中在上述图4实施例的步骤401之后,还可以包括:
步骤403、在与板卡的配置信息相匹配的逻辑核的数量大于3时,从与板卡的配置信息相匹配的逻辑核中确定出用于板卡的主程序线程进行绑定的第三逻辑核。
实际中,主程序线程可以与逻辑核绑定也可以不与逻辑核绑定,具体可以根据业务需求进行设定。比如,在对实时性要求较高的业务中,可以将主程序线程与相应的逻辑核进行绑定,以减少线程调度所需的时间,减少时延。
其中,在确定第三逻辑核时,可以从与板卡信息相匹配的逻辑核中随机选择一个作为第三逻辑核,也可以采用与上述确定第一逻辑核和第二逻辑核相似的原则,使得处理单元在采用第一逻辑核、第二逻辑核和第三逻辑核处理板卡的任务时性能得到最大化。
本实施例通过将主程序线程与相应的逻辑核进行绑定,能够保证主程序线程上的任务的实时性。
图5是本发明提供的一种逻辑核的绑定方法的流程图。在本实施例中上述实施例中的数据处理设备被示例性的具体为基带处理设备,该基带处理设备应用于一种基站系统,该基站系统包括信号接收设备,基带处理设备、调制解调器和信号发送设备,其中,信号接收设备用于接收数据,并将接收到的数据发送给基带处理设备。基带处理设备示例性的可以理解为基于x86平台的基带处理单元(简称,BBU),用于执行本实施例的方法将板卡(以下示例性的具体为网卡)的线程与自身NUMA节点中的逻辑核进行绑定,并通过被绑定的逻辑核对接收到的数据进行处理。基带处理设备处理后的信号将被下发到接口适配单元,由接口适配单元将数据发送给调制解调器,通过调制解调器对信号进行解调等处理,以确认接收到的数据是否满足预设的指标精度,然后通过信号发送设备将调制解调器处理后的信号发送给相应的设备。具体的,本实施例中的基带处理设备采用承载Linux逻辑核的非一致性架构的多核处理器,基带处理设备示例性的包括两个NUMA节点分别为:Socket0和Socket1。基带处理设备的网卡基于高速串行计算机扩展总线标准(简称,PCIe)随机接入到某一个Socket上以实现数据收发。网卡的线程包括上行数据收取线程和下行数据发送线程,信号接收设备发送给基带处理设备的数据包采取自组包的形式,数据包采用虚拟局域网(简称VLAN)的通用公共无线接口协议的演进协议(简称eCPRI)的包类型。网卡的上行数据收取线程通过网口接收信号接收设备发送的数据包,与上行数据收取线程绑定的逻辑核用于解析数据包中的某些字段并判断数据包的类型,并由VLAN分流最终到达应用层,网卡的下行数据发送线程对应用层的数据进行组包并由队列发送出去,本实施例所称的网卡的速率示例性的可以配置为10Gbps,但不局限于10Gbps。本实施例所称的网卡的内部支持多队列发送,不同VLAN队列间不区分优先级。
参见图5,基带处理设备绑定逻辑核的方法如下:
步骤501、网卡通过PCI插槽接入到基带处理设备中的某个Socket节点,并在该Socket节点上实现数据的中转。基带处理设备通过预设的Linux指令扫描获得网卡的配置信息,并基于网卡的配置信息验证网卡的兼容性,确保逻辑核的驱动程序可以正常识别该网卡。其中,本实施例中所称的网卡示例性的可以被具体为如下型号的网卡X520(10Gbps)或I350(1000Mbps),但不局限于这些信号的网卡。
步骤502、基带处理设备通过Sysfs文件系统自动记录接入的网卡或其他PCI设备的属性信息,由于网卡是连接在基带处理设备的总线上,由总线上的网络设备控制器驱动实现数据收发的,通过轮询基带处理设备的总线所引领的设备链表即可读取到网卡的信息。此时被网卡接入的Socket节点安装该网卡的驱动程序,并为网卡分配PCI设备结构描述符(pacc)并进行初始化。进一步的,基带处理设备可以通过扫描总线设备链表,基于连接在总线上的各设备的pacc轮询获得各设备的信息,然后根据各设备的信息填充各设备属性结构体dev,通过dev结构体的设备类和供应商ID进行设备适配,防止读取到的设备信息错乱,然后应用各设备的dev结构体的信息去Sysfs文件系统中读取各设备的驱动程序对应的属性字符串,并将读取到的属性字符串与网卡的驱动程序对应的属性字符串进行匹配,若存在某个Socket节点的驱动程序对应的属性字符串与该网卡的驱动程序对应的属性字符串匹配(即处理单元安装了该板卡的而驱动程序),则确定该Socket节点即为该网卡所在的处理单元。
步骤503、基带处理设备通过预设的算法统计网卡所在的Socket节点上的所有逻辑核的配置信息,同时对如下信息中的至少一种进行存储:逻辑核的属性信息、标识信息、所在的Socket节点的信息,以及与Socket节点之间的映射方式。
步骤504、本实施例中,网卡的资源预先被分配,分配后网卡中包括用于上行数据收取的线程和用于下行数据发送的线程。网卡的资源分配情况可以从网卡的配置信息中获得。基带处理设备在获取到网卡接入的Socket节点中的所有逻辑核的配置信息后,轮询该Socket节点中各逻辑核的配置信息,从该Socket节点中确定出与网卡的配置相匹配的逻辑核。本实施例中,网卡用于数据收发的线程配置为两个,分别为上行数据收取线程和下行数据发送线程,那么在获得与网卡的配置相匹配的逻辑核后,可以从该些逻辑核中确定出两个逻辑核,使得这两个逻辑核分别与网卡的上行数据收取线程和下行数据发送线程绑定,并且这两个被选择的逻辑核,应能使得被接入的Socket节点的单核性能最大化。
步骤505、网卡的主程序线程执行后,基带处理设备对网卡的上行数据收取线程、下行数据发送线程以及主程序线程的亲和性进行配置,使得上行数据收取线程只执行上行数据收取任务,下行数据发送线程只执行下行数据发送任务,主程序线程只处理主程序的任务。
步骤506、基于上述对网卡线程的亲和性配置,对各线程对应的逻辑核进行业务隔离处理,使得各逻辑核固定处理各自对应的线程上的任务。
步骤507、分别将上行数据收取线程和下行数据发送线程与相应的逻辑核进行绑定,其中,本实施例中将主程序线程、上行数据收取线程以及下行数据发送线程对应的逻辑核称为主逻辑核,由于主程序线程并非对实时性要求较高的线程,只要完成其对应的业务即可,因此,主程序线程可以与逻辑核绑定也可以不与逻辑核绑定,具体可以根据业务需求进行设定。比如,在对实时性要求较高的业务中,可以将主程序线程与相应的逻辑核进行绑定,以减少线程调度所需的时间,减少时延。进一步的,在绑定主逻辑核的同时,主程序线程对应的逻辑核通过预设接口检测网卡上除上行数据收取线程、下行数据发送线程以及主程序线程以外的其他线程调用的逻辑核(以下简称从逻辑核),同时将从逻辑核与相应线程之间的对应关系添加到预设的绑定关系列表中,以完成从逻辑核的绑定,其中,本实施例所称的绑定关系列表用于存储逻辑核与线程之间的绑定关系。
步骤508、完成配置。
需要说明的是,本实施例的上述方法可以被编译成相应的功能模块,该功能模块可以被基带处理设备的驱动程序加载、安装和运行,当基带处理设备的驱动程序运行该功能模块时,可以自动实现本实施例上述的逻辑核绑定过程。
本实施例提供的方案能够简化传统绑定方式中出现的大部分冗余操作,使得板卡上不同的线程固定在相应的逻辑核上,减小了线程之间调度的频率,保证了板卡实际传输数据包时的性能。并且通过下行解调的方式对数据的传输时延进行分析可知,采用传统方法绑定逻辑核后,数据的传输时延是毫秒级的,而采用本实施例的方法绑定逻辑核,数据的传输时延可降低到微秒级,丢包率可降低到10-5的级别,从而改善了整体通信链路的质量。
综上所述,本实施例提供的逻辑核的绑定方法能够极大简化传统绑定方法的流程,并使得板卡的数据处理和收发时延有效降低,能够被广泛应用在各种通信链路中,尤其是在对实时性要求较高的通信业务中具有很广泛的应用前景。
图6是本发明提供的一种逻辑核绑定装置的结构示意图,该装置可以被具体为上述实施例中的数据处理设备或者该数据处理设备中的部分功能模块。如图6所示,逻辑核绑定装置60包括:
第一确定模块61,用于在检测到板卡接入之后,基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,所述处理单元包括多个逻辑核。
获取模块62,用于获取所述多个逻辑核的配置信息和所述板卡的配置信息。
第二确定模块63,用于根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核。
绑定模块64,用于将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
在一种实施方式中,所述第一确定模块61,用于:
基于所述板卡的唯一性标识,获取所述板卡的驱动信息;以及基于所述驱动信息,轮询并查找总线上的设备,确定安装有与所述驱动信息相匹配的驱动程序的处理单元为所述板卡接入的处理单元。
在一种实施方式中,所述第二确定模块63,包括:
第一确定单元,用于根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出与所述板卡的配置信息相匹配的逻辑核。
第二确定单元,用于在与板卡的配置信息相匹配的逻辑核的数量大于2时,从与所述板卡的配置信息相匹配的逻辑核中确定出用于与所述上行数据收取线程进行绑定的第一逻辑核和用于与所述下行数据发送线程进行绑定的第二逻辑核。
在一种实施方式中,第二确定单元,用于:从与所述板卡的配置信息相匹配的逻辑核中确定出使得所述处理单元的单核性能最大化的第一逻辑核和第二逻辑核;
将所述第一逻辑核作为与所述上行数据收取线程绑定的逻辑核;
将所述第二逻辑核作为与所述下行数据发送线程绑定的逻辑核。
在一种实施方式中,第二确定模块63,还包括:
第三确定单元,用于在与板卡的配置信息相匹配的逻辑核的数量大于3时,从与所述板卡的配置信息相匹配的逻辑核中确定出用于所述板卡的主程序线程进行绑定的第三逻辑核。
本实施例提供的装置能够执行图2-图5中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
本发明还提供一种数据处理设备,该设备包括处理单元和驱动单元,当板卡接入所述处理单元时,所述驱动单元可以执行图2-图5中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。其中,该数据处理设备包括基带处理设备。
本发明还提供一种计算机可读存储介质,该存储介质中存储有计算机程序,当所述计算机程序被驱动单元执行时,可以实现图2-图5中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种逻辑核的绑定方法,其特征在于,包括:
在检测到板卡接入之后,基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,所述处理单元包括多个逻辑核;
获取所述多个逻辑核的配置信息和所述板卡的配置信息;
根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核;
将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
2.根据权利要求1所述的逻辑核的绑定方法,其特征在于,所述基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,包括:
基于所述板卡的唯一性标识,获取所述板卡的驱动信息;
基于所述驱动信息,轮询并查找总线上的设备,确定安装有与所述驱动信息相匹配的驱动程序的处理单元为所述板卡接入的处理单元。
3.根据权利要求1或2所述的逻辑核的绑定方法,其特征在于,所述板卡的线程包括上行数据收取线程、下行数据发送线程;
所述根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核,包括:
根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出与所述板卡的配置信息相匹配的逻辑核;
在所述与所述板卡的配置信息相匹配的逻辑核的数量大于2时,从与所述板卡的配置信息相匹配的逻辑核中确定出用于与所述上行数据收取线程进行绑定的第一逻辑核和用于与所述下行数据发送线程进行绑定的第二逻辑核。
4.根据权利要求3所述的逻辑核的绑定方法,其特征在于,所述从与所述板卡的配置信息相匹配的逻辑核中确定出用于与所述上行数据收取线程进行绑定的第一逻辑核和用于与所述下行数据发送线程进行绑定的第二逻辑核,包括:
从与所述板卡的配置信息相匹配的逻辑核中确定出使得所述处理单元的单核性能最大化的第一逻辑核和第二逻辑核;
将所述第一逻辑核作为与所述上行数据收取线程绑定的逻辑核;
将所述第二逻辑核作为与所述下行数据发送线程绑定的逻辑核。
5.根据权利要求3所述的逻辑核的绑定方法,其特征在于,所述根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出与所述板卡的配置信息相匹配的逻辑核之后,所述方法还包括:
在所述与所述板卡的配置信息相匹配的逻辑核的数量大于3时,从与所述板卡的配置信息相匹配的逻辑核中确定出用于所述板卡的主程序线程进行绑定的第三逻辑核。
6.一种逻辑核绑定装置,其特征在于,包括:
第一确定模块,用于在检测到板卡接入之后,基于所述板卡的唯一性标识,确定所述板卡接入到的处理单元,所述处理单元包括多个逻辑核;
获取模块,用于获取所述多个逻辑核的配置信息和所述板卡的配置信息;
第二确定模块,用于根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出用于与所述板卡的线程进行绑定的目标逻辑核;
绑定模块,用于将所述目标逻辑核与所述线程绑定,以使所述目标逻辑核固定处理自身绑定的线程上的业务。
7.根据权利要求6所述的逻辑核绑定装置,其特征在于,所述板卡的线程包括上行数据收取线程、下行数据发送线程;
所述第二确定模块,包括:
第一确定单元,用于根据所述多个逻辑核的配置信息和所述板卡的配置信息,从所述多个逻辑核中确定出与所述板卡的配置信息相匹配的逻辑核;
第二确定单元,用于在所述与所述板卡的配置信息相匹配的逻辑核的数量大于2时,从与所述板卡的配置信息相匹配的逻辑核中确定出用于与所述上行数据收取线程进行绑定的第一逻辑核和用于与所述下行数据发送线程进行绑定的第二逻辑核。
8.一种数据处理设备,其特征在于,包括:处理单元和驱动单元,当板卡接入所述处理单元时,所述驱动单元执行如权利要求1-5中任一项所述的逻辑核的绑定方法。
9.根据权利要求8所述的数据处理设备,其特征在于,所述数据处理设备包括基带处理设备。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序被驱动单元执行时,实现如权利要求1-5中任一项所述的逻辑核的绑定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011623746.XA CN112667318A (zh) | 2020-12-31 | 2020-12-31 | 逻辑核的绑定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011623746.XA CN112667318A (zh) | 2020-12-31 | 2020-12-31 | 逻辑核的绑定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667318A true CN112667318A (zh) | 2021-04-16 |
Family
ID=75412206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011623746.XA Pending CN112667318A (zh) | 2020-12-31 | 2020-12-31 | 逻辑核的绑定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667318A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579303A (zh) * | 2022-02-25 | 2022-06-03 | 山东浪潮工业互联网产业股份有限公司 | 一种工业互联网的业务数据处理方法、设备及介质 |
WO2023169289A1 (zh) * | 2022-03-11 | 2023-09-14 | 华为技术有限公司 | 一种进程的执行状态切换方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906581A (zh) * | 2004-09-29 | 2007-01-31 | 索尼株式会社 | 信息处理设备、处理控制方法、以及计算机程序 |
US20090157359A1 (en) * | 2007-12-18 | 2009-06-18 | Anton Chernoff | Mechanism for profiling program software running on a processor |
CN104750543A (zh) * | 2013-12-26 | 2015-07-01 | 杭州华为数字技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
US20170083316A1 (en) * | 2015-09-19 | 2017-03-23 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
CN107368178A (zh) * | 2017-08-21 | 2017-11-21 | 湖南大学 | 基于dpdk数据包处理平台的功耗优化方法 |
CN107624181A (zh) * | 2015-06-17 | 2018-01-23 | 英特尔公司 | 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备 |
US20180097713A1 (en) * | 2016-09-30 | 2018-04-05 | At & T Intellectual Property I, L.P. | Packet processing framework |
CN109547233A (zh) * | 2018-10-10 | 2019-03-29 | 华为技术有限公司 | 一种服务器网口配置的方法、装置及服务器 |
CN110737530A (zh) * | 2019-09-25 | 2020-01-31 | 网络通信与安全紫金山实验室 | 一种提升handle标识解析系统收包能力的方法 |
-
2020
- 2020-12-31 CN CN202011623746.XA patent/CN112667318A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906581A (zh) * | 2004-09-29 | 2007-01-31 | 索尼株式会社 | 信息处理设备、处理控制方法、以及计算机程序 |
US20090157359A1 (en) * | 2007-12-18 | 2009-06-18 | Anton Chernoff | Mechanism for profiling program software running on a processor |
CN104750543A (zh) * | 2013-12-26 | 2015-07-01 | 杭州华为数字技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN107624181A (zh) * | 2015-06-17 | 2018-01-23 | 英特尔公司 | 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备 |
US20170083316A1 (en) * | 2015-09-19 | 2017-03-23 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
US20180097713A1 (en) * | 2016-09-30 | 2018-04-05 | At & T Intellectual Property I, L.P. | Packet processing framework |
CN107368178A (zh) * | 2017-08-21 | 2017-11-21 | 湖南大学 | 基于dpdk数据包处理平台的功耗优化方法 |
CN109547233A (zh) * | 2018-10-10 | 2019-03-29 | 华为技术有限公司 | 一种服务器网口配置的方法、装置及服务器 |
CN110737530A (zh) * | 2019-09-25 | 2020-01-31 | 网络通信与安全紫金山实验室 | 一种提升handle标识解析系统收包能力的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579303A (zh) * | 2022-02-25 | 2022-06-03 | 山东浪潮工业互联网产业股份有限公司 | 一种工业互联网的业务数据处理方法、设备及介质 |
WO2023169289A1 (zh) * | 2022-03-11 | 2023-09-14 | 华为技术有限公司 | 一种进程的执行状态切换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240264871A1 (en) | Storage transactions with predictable latency | |
US10873521B2 (en) | Methods and apparatus for SDI support for fast startup | |
US8279878B2 (en) | Method for configuring virtual network and network system | |
US8468276B2 (en) | Configuring an input/output adapter | |
CN112667318A (zh) | 逻辑核的绑定方法、装置、设备及存储介质 | |
US7302699B2 (en) | Logged-in device and log-in device | |
CN112769905B (zh) | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 | |
KR920009449B1 (ko) | 공통 버스제어방법 및 시스템 | |
CN112486888A (zh) | 一种行情数据传输方法、装置、设备及介质 | |
CN113535319A (zh) | 一种实现多rdma网卡虚拟化的方法、设备及存储介质 | |
CN117369734B (zh) | 一种存储资源管理系统、方法及存储虚拟化系统 | |
CN113835888B (zh) | CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质 | |
CN112597080B (zh) | 读请求控制装置及方法以及存储器控制器 | |
WO2021022947A1 (zh) | 一种部署虚拟机的方法及相关装置 | |
CN113535370A (zh) | 一种实现负载均衡的多rdma网卡虚拟化的方法、设备 | |
CN111865794B (zh) | 一种逻辑端口的关联方法、系统、设备及数据传输系统 | |
CN113900791A (zh) | 一种作业处理方法以及相关设备 | |
CN117076409B (zh) | 文件共享方法、装置、系统、电子设备及存储介质 | |
US20230319531A1 (en) | Network system and network slice generation method | |
CN112596893B (zh) | 用于多节点边缘计算设备的监控方法和系统 | |
CN103812893A (zh) | 虚拟桌面外部设备传输方法及系统 | |
CN110855468B (zh) | 报文发送方法及装置 | |
US20240289171A1 (en) | Method and optical network unit router for memory access control | |
CN115994015A (zh) | 一种部署虚拟化网络功能的方法及装置 | |
CN118631766A (zh) | 一种交换机高效多端口并行共享缓存管理系统 |
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 |