CN108989107A - 一种基于申威架构的网卡收发报文的统计调试方法及装置 - Google Patents
一种基于申威架构的网卡收发报文的统计调试方法及装置 Download PDFInfo
- Publication number
- CN108989107A CN108989107A CN201810785789.4A CN201810785789A CN108989107A CN 108989107 A CN108989107 A CN 108989107A CN 201810785789 A CN201810785789 A CN 201810785789A CN 108989107 A CN108989107 A CN 108989107A
- Authority
- CN
- China
- Prior art keywords
- hardware
- network interface
- interface card
- software
- receiving
- 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
Classifications
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开一种基于申威架构的网卡收发报文的统计调试方法及装置,方法包括:根据用户输入的指令,在网卡收发包函数中增加报文统计信息作为软统计,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,新增命令行对比打印显示软硬件收发头尾指针值,新增命令行调用网卡硬件寄存器的读写函数。可直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可快速定位网卡收发报文是否正常及大致判断问题原因。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种基于申威架构的网卡收发报文的统计调试方法及装置。
背景技术
目前,申威处理器设备(如防火墙、服务器等)转发离不开网卡,该申威处理器设备转发是否正常可通过查看网卡硬件寄存器来判断,但是硬件寄存器统计信息有限,有时需要软件的相关统计信息进行对比查看才能定位问题。而且软件的相关统计信息需要人工自己添加,对比信息也需要人工自己添加,命令行也需要人工自己添加。
鉴于此,如何对网卡收发报文进行统计调试成为目前需要解决的技术问题。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种基于申威架构的网卡收发报文的统计调试方法及装置。
第一方面,本发明实施例提出一种基于申威架构的网卡收发报文的统计调试方法,包括:
根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;
根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;
根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;
根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;
根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;
根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
可选地,所述报文统计信息,包括:按网卡队列的收发包个数、字节数统计,按CPUCoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计;
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
可选地,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值;
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态;
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
可选地,所述网卡中的寄存器,包括:控制寄存器及状态寄存器。
可选地,硬件网卡的收包状态,包括:丢包、错包和好包。
第二方面,本发明实施例还提出一种基于申威架构的网卡收发报文的统计调试装置,包括:
增加模块,用于根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;
封装模块,用于根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;
第一新增模块,用于根据用户输入的第三指令,新增命令行按网卡队列或按CPUCoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;
第二新增模块,用于根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;
第三新增模块,用于根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;
第四新增模块,用于根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
可选地,所述报文统计信息,包括:按网卡队列的收发包个数、字节数统计,按CPUCoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计;
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
可选地,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值;
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态;
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
第三方面,本发明实施例还提出一种基于申威架构的电子设备,包括:申威处理器、存储器、总线及存储在存储器上并可在申威处理器上运行的计算机程序;
其中,所述申威处理器,存储器通过所述总线完成相互间的通信;
所述申威处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被申威处理器执行时实现上述方法。
由上述技术方案可知,本发明实施例提供的一种基于申威架构的网卡收发报文的统计调试方法及装置,通过根据用户输入的指令,在网卡收发包函数中增加报文统计信息作为软统计,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数,新增命令行按网卡队列或按CPUCoreID打印显示收发包个数,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,新增命令行对比打印显示软硬件收发头尾指针值,新增命令行调用网卡硬件寄存器的读写函数,由此,实现了对网卡收发报文的统计调试,可以直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可以快速定位网卡收发报文是否正常及大致判断问题原因。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种基于申威架构的网卡收发报文的统计调试方法的流程示意图;
图2为本发明一实施例提供的一种基于申威架构的网卡收发报文的统计调试装置的结构示意图;
图3为本发明一实施例提供的一种基于申威架构的电子设备的实体结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种基于申威架构的网卡收发报文的统计调试方法的流程示意图,如图1所示,本实施例的一种基于申威架构的网卡收发报文的统计调试方法,包括:
S1、根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计。
S2、根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA(直接存储器访问)寄存器的读取函数和软件收发头尾指针的读取函数。
在具体应用中,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值(所述网卡中的寄存器,可以包括:控制寄存器及状态寄存器等);
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态(其中,硬件网卡的收包状态,可以包括:丢包、错包和好包等);
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
S3、根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID(中央处理器核心标识)打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU(中央处理器)收发是否均衡问题。
S4、根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题。
S5、根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题。
具体地,头尾指针相等说明收发包停止,正常头尾指针应该不停变化。
S6、根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
可以理解的是,申威设备(如防火墙、服务器等)的报文收发离不开网卡,本实施例所述网卡为申威设备进行报文收发时所利用的网卡。
本发明实施例提供的一种基于申威架构的网卡收发报文的统计调试方法,通过根据用户输入的指令,在网卡收发包函数中增加报文统计信息作为软统计,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,新增命令行对比打印显示软硬件收发头尾指针值,新增命令行调用网卡硬件寄存器的读写函数,由此,实现了对网卡收发报文的统计调试,可以直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可以快速定位网卡收发报文是否正常及大致判断问题原因。
进一步地,在具体应用中,所述报文统计信息,可以包括:按网卡队列的收发包个数、字节数统计,按CPU CoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计(skb_alloc_fail)等。
可以理解的是,alloc_skb()用于分配缓冲区的函数。由于"数据缓冲区"和"缓冲区的描述结构"(sk_buff结构)是两种不同的实体,这就意味着,在分配一个缓冲区时,需要分配两块内存(一个是缓冲区,一个是缓冲区的描述结构sk_buff)。
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
本发明实施例提供的一种基于申威架构的网卡收发报文的统计调试方法,实现了对网卡收发报文的统计调试,可以直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可以快速定位网卡收发报文是否正常及大致判断问题原因。
图2示出了本发明一实施例提供的一种基于申威架构的网卡收发报文的统计调试装置的结构示意图,如图2所示,本实施例的一种基于申威架构的网卡收发报文的统计调试装置,包括:增加模块21、封装模块22、第一新增模块23、第二新增模块24、第三新增模块25和第四新增模块26;其中:
所述增加模块21,用于根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;
所述封装模块22,用于根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;
所述第一新增模块23,用于根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;
所述第二新增模块24,用于根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;
所述第三新增模块25,用于根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常(头尾指针相等说明收发包停止,正常头尾指针应该不停变化),是硬件还是软件不收包问题;
所述第四新增模块26,用于根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
具体地,所述增加模块21根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;所述封装模块22根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;所述第一新增模块23根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;所述第二新增模块24根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;所述第三新增模块25根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;所述第四新增模块26根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
在具体应用中,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值(所述网卡中的寄存器,可以包括:控制寄存器及状态寄存器等);
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态(其中,硬件网卡的收包状态,可以包括:丢包、错包和好包等);
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
可以理解的是,申威设备(如防火墙、服务器等)的报文收发离不开网卡,本实施例所述网卡为申威设备进行报文收发时所利用的网卡。
本发明实施例提供的一种基于申威架构的网卡收发报文的统计调试装置,通过根据用户输入的指令,在网卡收发包函数中增加报文统计信息作为软统计,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,新增命令行对比打印显示软硬件收发头尾指针值,新增命令行调用网卡硬件寄存器的读写函数,由此,实现了对网卡收发报文的统计调试,可以直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可以快速定位网卡收发报文是否正常及大致判断问题原因。
进一步地,在具体应用中,所述报文统计信息,可以包括:按网卡队列的收发包个数、字节数统计,按CPU CoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计(skb_alloc_fail)等;
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
本发明实施例提供的一种基于申威架构的网卡收发报文的统计调试装置,实现了对网卡收发报文的统计调试,可以直观查看网卡软硬件统计值及状态,软硬件读取值自动进行比对查看,可以快速定位网卡收发报文是否正常及大致判断问题原因。
本实施例的网卡收发报文的统计调试装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图3示出了本发明实施例提供的一种基于申威架构的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:申威处理器31、存储器32、总线33及存储在存储器32上并可在申威处理器31上运行的计算机程序;
其中,所述申威处理器31,存储器32通过所述总线33完成相互间的通信;
所述申威处理器31执行所述计算机程序时实现上述各方法实施例所提供的方法,例如包括:根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被申威处理器执行时实现上述各方法实施例所提供的方法,例如包括:根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;根据用户输入的第三指令,新增命令行按网卡队列或按CPU CoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的申威处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的申威处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种基于申威架构的网卡收发报文的统计调试方法,其特征在于,包括:
根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;
根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;
根据用户输入的第三指令,新增命令行按网卡队列或按CPUCoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;
根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;
根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;
根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
2.根据权利要求1所述的方法,其特征在于,所述报文统计信息,包括:按网卡队列的收发包个数、字节数统计,按CPU CoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计;
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
3.根据权利要求1所述的方法,其特征在于,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值;
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态;
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
4.根据权利要求3所述的方法,其特征在于,所述网卡中的寄存器,包括:控制寄存器及状态寄存器。
5.根据权利要求3所述的方法,其特征在于,硬件网卡的收包状态,包括:丢包、错包和好包。
6.一种基于申威架构的网卡收发报文的统计调试装置,其特征在于,包括:
增加模块,用于根据用户输入的第一指令,在网卡收发包函数中增加报文统计信息作为软统计;
封装模块,用于根据用户输入的第二指令,封装网卡硬件寄存器的读写函数、硬件状态统计寄存器的读取函数、硬件收发DMA寄存器的读取函数和软件收发头尾指针的读取函数;
第一新增模块,用于根据用户输入的第三指令,新增命令行按网卡队列或按CPUCoreID打印显示收发包个数,用于定位网卡多队列哈希是否均匀问题及多核CPU收发是否均衡问题;
第二新增模块,用于根据用户输入的第四指令,新增命令行对比打印显示硬件统计寄存器非零值、软硬件收发统计值、硬件收发与软件收发的差值,用于判断硬件收发是否有丢包、错包,若丢包是硬件丢包还是软件丢包问题;
第三新增模块,用于根据用户输入的第五指令,新增命令行对比打印显示软硬件收发头尾指针值,用于判断软件或硬件环形队列运转是否正常,是硬件还是软件不收包问题;
第四新增模块,用于根据用户输入的第六指令,新增命令行调用网卡硬件寄存器的读写函数,用于单独查看或设置任一控制寄存器的值。
7.根据权利要求6所述的装置,其特征在于,所述报文统计信息,包括:按网卡队列的收发包个数、字节数统计,按CPU CoreID的收发包个数、字节数统计,发送丢包个数统计,skb分配失败个数统计;
其中,所述按网卡队列的收发包个数、字节数统计,用于判断网卡收发包是否均匀;
所述按CPU CoreID的收发包个数、字节数统计,用于判断CPU负载是否均衡;
所述发送丢包个数统计,用于判断网卡是否达到发送性能瓶颈;
所述skb分配失败个数统计,用于判断skb是否已经耗尽。
8.根据权利要求6所述的装置,其特征在于,所述网卡硬件寄存器的读写函数,用于单独读或写网卡中的寄存器的值;
所述硬件状态统计寄存器的读取函数,用于读取所有统计寄存器的值并对非零值的统计寄存器进行打印显示,以确认硬件网卡的收包状态;
所述硬件收发DMA寄存器的读取函数,用于读取硬件头尾指针值,以根据读取的硬件头尾指针值,判断硬件收发环形队列运转是否正常;
所述软件收发头尾指针的读取函数,用于读取软件头尾指针值,以根据读取的软件头尾指针值,判断软件收发环形队列运转是否正常。
9.一种基于申威架构的电子设备,其特征在于,包括:申威处理器、存储器、总线及存储在存储器上并可在申威处理器上运行的计算机程序;
其中,所述申威处理器,存储器通过所述总线完成相互间的通信;
所述申威处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被申威处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810785789.4A CN108989107A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的网卡收发报文的统计调试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810785789.4A CN108989107A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的网卡收发报文的统计调试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108989107A true CN108989107A (zh) | 2018-12-11 |
Family
ID=64548963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810785789.4A Pending CN108989107A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的网卡收发报文的统计调试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989107A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277514A (zh) * | 2020-01-21 | 2020-06-12 | 新华三技术有限公司合肥分公司 | 一种报文队列分配方法、报文转发方法及相关装置 |
CN114553602A (zh) * | 2022-04-25 | 2022-05-27 | 深圳星云智联科技有限公司 | 一种软硬生命老化控制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404151A (zh) * | 2011-11-28 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 支持复杂流量统计的网卡设备和相关复杂流量统计方法 |
CN103269284A (zh) * | 2013-05-17 | 2013-08-28 | 汉柏科技有限公司 | 实时网络数据的捕获方法 |
CN104754000A (zh) * | 2013-12-30 | 2015-07-01 | 国家电网公司 | 一种负载均衡方法及系统 |
CN105721241A (zh) * | 2016-01-25 | 2016-06-29 | 汉柏科技有限公司 | 一种网卡收发报文的统计调试方法及系统 |
CN107579925A (zh) * | 2017-09-29 | 2018-01-12 | 迈普通信技术股份有限公司 | 报文转发方法及装置 |
-
2018
- 2018-07-17 CN CN201810785789.4A patent/CN108989107A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404151A (zh) * | 2011-11-28 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 支持复杂流量统计的网卡设备和相关复杂流量统计方法 |
CN103269284A (zh) * | 2013-05-17 | 2013-08-28 | 汉柏科技有限公司 | 实时网络数据的捕获方法 |
CN104754000A (zh) * | 2013-12-30 | 2015-07-01 | 国家电网公司 | 一种负载均衡方法及系统 |
CN105721241A (zh) * | 2016-01-25 | 2016-06-29 | 汉柏科技有限公司 | 一种网卡收发报文的统计调试方法及系统 |
CN107579925A (zh) * | 2017-09-29 | 2018-01-12 | 迈普通信技术股份有限公司 | 报文转发方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277514A (zh) * | 2020-01-21 | 2020-06-12 | 新华三技术有限公司合肥分公司 | 一种报文队列分配方法、报文转发方法及相关装置 |
CN114553602A (zh) * | 2022-04-25 | 2022-05-27 | 深圳星云智联科技有限公司 | 一种软硬生命老化控制方法及装置 |
CN115150179A (zh) * | 2022-04-25 | 2022-10-04 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
CN115150179B (zh) * | 2022-04-25 | 2024-01-02 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8635388B2 (en) | Method and system for an OS virtualization-aware network interface card | |
CN101873339B (zh) | 灵活地将终端逻辑集成到各种平台 | |
CN104951357B (zh) | 并行用户态协议栈的管理方法和协议栈系统 | |
CN109688058B (zh) | 报文处理方法、装置及网络设备 | |
US20160191392A1 (en) | Data packet processing | |
CN102811112B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
CN101311915A (zh) | 用于动态重分派虚拟通道资源的方法和系统 | |
CN105656708A (zh) | 单板测试方法及装置 | |
US9298660B2 (en) | Super speed USB hub and traffic management method thereof | |
CN104579905A (zh) | 消息传递方法和系统及mom服务器、接收端 | |
CN103562895B (zh) | 通过选择性聚合相邻数据单元来便于路由 | |
CN106844108A (zh) | 一种数据存储方法、服务器以及存储系统 | |
CN108989107A (zh) | 一种基于申威架构的网卡收发报文的统计调试方法及装置 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN110505112A (zh) | 一种网络性能监测方法、装置和存储介质 | |
CN111858413B (zh) | Pcie交换芯片端口的数据调度方法及装置 | |
US10372413B2 (en) | First-in-first-out buffer | |
US20140304450A1 (en) | Switching device, packet control method, and data communication system | |
CN108985556B (zh) | 流量调度的方法、装置、设备和计算机存储介质 | |
CN109446130A (zh) | 一种i/o设备状态信息的获取方法及系统 | |
CN108881060A (zh) | 一种处理通信报文的方法及装置 | |
US8433952B2 (en) | Memory access control device, memory access control method and memory access control program | |
US8914550B2 (en) | System and method for transferring data between components of a data processor | |
US9338219B2 (en) | Direct push operations and gather operations | |
CN109347760A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |
|
RJ01 | Rejection of invention patent application after publication |