CN102055671B - 一种多应用发包的优先级管理方法 - Google Patents

一种多应用发包的优先级管理方法 Download PDF

Info

Publication number
CN102055671B
CN102055671B CN201010597757.5A CN201010597757A CN102055671B CN 102055671 B CN102055671 B CN 102055671B CN 201010597757 A CN201010597757 A CN 201010597757A CN 102055671 B CN102055671 B CN 102055671B
Authority
CN
China
Prior art keywords
application
message
software
hardware
read
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.)
Active
Application number
CN201010597757.5A
Other languages
English (en)
Other versions
CN102055671A (zh
Inventor
刘朝辉
刘灿
李锋伟
万伟
刘兴彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Network Technology Co ltd
Original Assignee
Dawning Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Co Ltd filed Critical Dawning Information Industry Co Ltd
Priority to CN201010597757.5A priority Critical patent/CN102055671B/zh
Publication of CN102055671A publication Critical patent/CN102055671A/zh
Application granted granted Critical
Publication of CN102055671B publication Critical patent/CN102055671B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种多应用发包的优先级管理方法。硬件网卡的PCI控制器向主机注册PCI空间,驱动软件申请报文缓冲区,构造驱动信息结构,驱动软件定时计算CPU负载,并记录到驱动信息结构中,接口库把报文缓冲区、PCI空间寄存器、驱动信息数据结构映射到每个应用的进程空间,并配置应用优先级,应用软件发包时,把自己的应用优先级和当前cpu负载比较,如果超过负载阈值,则主动丢包,否则由硬件把报文发送出去。本发明根据当前CPU负载情况,动态丢弃报文,实现多应用发包的优先级管理。

Description

一种多应用发包的优先级管理方法
技术领域
本发明涉及网络数据处理领域,具体涉及一种多应用发包的优先级管理方法。
背景技术
在网络数据分析系统中,往往在一个硬件平台上运行多个应用,也就是说需要多个应用软件从同一个网卡向外发送报文。然而,在有些系统中,多个应用是有优先级的,当系统CPU计算资源紧张时,低优先级的应用需要主动丢弃一部分报文,把CPU计算资源让给高优先级的应用。
目前经常采用的技术方案是当系统资源紧张时,一般多应用发包采取随机丢包的方式,每个应用都可能随机丢弃一些报文。
但随机丢包的方式,不能支持应用的优先级,不能保证在CPU负载高时,低优先级的应用把计算资源让给高优先级应用。
发明内容
本发明的目的是提供一种多应用发包的优先级管理方法,根据优先级和当前CPU负载情况,让应用动态主动丢包,实现多应用发包的优先级管理。
一种多应用发包的优先级管理方法,采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0;
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后把驱动信息结构映射出来,查看当前的CPU负载情况;
E、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
F、每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包;如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针;
G、硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
本发明的一种优选技术方案在于:A步骤中所述PCI空间包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
本发明根据当前CPU负载情况,动态丢弃报文,实现多应用发包的优先级管理。
附图说明
图1是本发明的结构图
具体实施方式
本发明是一个软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件。
驱动软件负责分配发送报文使用的缓冲区,需要为每一个应用,在内核中申请一整片物理地址连续的内存,作为该应用发送报文的缓冲区。
驱动软件还申请一块内存区域,保存驱动信息数据结构,其中包括当前的CPU负载。并使用定时器函数,每隔一个时间片(比如1秒)计算一下当前CPU的负载情况,写入驱动信息的数据结构中。
硬件为每一个应用,申请一套PCI空间寄存器,主要有:报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针。硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息,查看是否有新的报文需要发送,如果有,则从主机内存的报文缓冲区中读出报文,向网络发送出去。
接口库软件在每个应用调用发送报文的API接口时,把报文缓冲区和PCI空间映射到该应用的用户空间,并设置每个应用的优先级信息。
应用软件调用接口库API发送报文时,接口库根据该应用的优先级和当前CPU负载情况,决定是否丢弃报文,如果可以发送,就把报文写入发送缓冲区,通过写PCI空间的寄存器通知硬件。
实现方法和过程如下:
(1)硬件网卡的PCI控制器向主机注册PCI空间,其中定义发送报文相关的寄存器地址,包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
(2)驱动软件申请报文缓冲区
驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0。
(3)驱动软件定时计算CPU负载
驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU专用情况,写入驱动信息数据结构中。
(4)接口库映射报文缓冲区、PCI空间寄存器、驱动信息数据结构
接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,还把驱动信息结构映射处理,从中可以看到当前的CPU负载情况。
(5)接口库配置应用优先级
应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值,比如高优先级设置为80%,表示CPU负载超过80%丢包,低优先级设置为20%,表示CPU负载超过20%丢包。
(6)应用软件发包
每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,比如应用优先级的阈值是50%,当前驱动信息中显示的CPU负载是60%,则主动丢包。如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针。
(7)硬件发包
硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针。如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。

Claims (2)

1.一种多应用发包的优先级管理方法,其特征在于:采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0;
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后把驱动信息结构映射出来,查看当前的CPU负载情况;
E、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
F、每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包;如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针;
G、硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
2.如权利要求1所述一种多应用发包的优先级管理方法,其特征在于:A步骤中所述PCI空间包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
CN201010597757.5A 2010-12-17 2010-12-17 一种多应用发包的优先级管理方法 Active CN102055671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010597757.5A CN102055671B (zh) 2010-12-17 2010-12-17 一种多应用发包的优先级管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010597757.5A CN102055671B (zh) 2010-12-17 2010-12-17 一种多应用发包的优先级管理方法

Publications (2)

Publication Number Publication Date
CN102055671A CN102055671A (zh) 2011-05-11
CN102055671B true CN102055671B (zh) 2014-05-21

Family

ID=43959618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010597757.5A Active CN102055671B (zh) 2010-12-17 2010-12-17 一种多应用发包的优先级管理方法

Country Status (1)

Country Link
CN (1) CN102055671B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436400A (zh) * 2011-12-06 2012-05-02 曙光信息产业股份有限公司 零拷贝驱动的实现方法和装置
WO2017147851A1 (zh) * 2016-03-03 2017-09-08 华为技术有限公司 一种配置装置及方法
CN105744504A (zh) * 2016-03-31 2016-07-06 中国联合网络通信集团有限公司 终端与卡应用的通信方法和终端
CN114095427A (zh) * 2017-12-29 2022-02-25 西安华为技术有限公司 一种处理数据报文的方法和网卡
CN115982090B (zh) * 2023-03-17 2023-06-23 珠海星云智联科技有限公司 软硬件协同实现远端内存访问的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791092A (zh) * 2004-12-16 2006-06-21 国际商业机器公司 多层数据处理系统网络中用于连接容量再指派的系统和方法
CN101437015A (zh) * 2007-11-15 2009-05-20 中兴通讯股份有限公司 用于ip多媒体子系统的消息分级控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791092A (zh) * 2004-12-16 2006-06-21 国际商业机器公司 多层数据处理系统网络中用于连接容量再指派的系统和方法
CN101437015A (zh) * 2007-11-15 2009-05-20 中兴通讯股份有限公司 用于ip多媒体子系统的消息分级控制方法

Also Published As

Publication number Publication date
CN102055671A (zh) 2011-05-11

Similar Documents

Publication Publication Date Title
CN102006241B (zh) 一种多个应用共享一个缓冲区的报文接收方法
US10305813B2 (en) Socket management with reduced latency packet processing
EP2647163B1 (en) A method and system for improved multi-cell support on a single modem board
US10572309B2 (en) Computer system, and method for processing multiple application programs
CN102055671B (zh) 一种多应用发包的优先级管理方法
JP2017514209A (ja) マルチプロセス・アプリケーションのための動的リソース管理
US20140047065A1 (en) System, device and method for providing push service using feedback message
US8615624B2 (en) Methods, apparatuses, and computer program products for enhancing memory erase functionality
CN102098215B (zh) 一种多应用收包的优先级管理方法
EP3465450B1 (en) Improving throughput in openfabrics environments
CN114706531A (zh) 数据处理方法、装置、芯片、设备及介质
US10116773B2 (en) Packet processing method and related device that are applied to network device
US10102135B2 (en) Dynamically-adjusted host memory buffer
CN102170401B (zh) 一种数据的处理方法和设备
CN105988871B (zh) 一种远端内存分配方法、装置和系统
US20220321492A1 (en) Packet buffering method, integrated circuit system, and storage medium
JP6480082B2 (ja) 加入者識別モジュール(sim)アクセスプロファイル(sap)の改善
CN104539450A (zh) 网站运营活动处理系统、方法和装置
US10877552B1 (en) Dynamic power reduction through data transfer request limiting
US10749913B2 (en) Techniques for multiply-connected messaging endpoints
CN109101188B (zh) 一种数据处理方法和装置
CN109189492A (zh) 功能组件加载方法、装置、计算机设备及可读存储介质
CN109474543B (zh) 一种队列资源管理方法、装置及存储介质
US10264013B2 (en) Preventing a memory attack to a wireless access point
CN113992591A (zh) 网络请求处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221214

Address after: 430040 NO.666, Wuhuan Avenue, linkonggang economic and Technological Development Zone, Wuhan City, Hubei Province (10)

Patentee after: Dawning Network Technology Co.,Ltd.

Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street.

Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd.