一种共享内存管理方法及共享内存管理设备[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201710268053.5
(22)申请日 2017.04.22
(71)申请人 华为技术有限公司
地址 518129 广东省深圳市龙岗区坂田华
为总部办公楼
(72)发明人 张伟 李清清 
(74)专利代理机构 广州三环专利商标代理有限
公司 44202
代理人 郝传鑫 熊永强
(51)Int.Cl.
G06F  9/54(2006.01)
(54)发明名称
一种共享内存管理方法及共享内存管理设
(57)摘要
本发明实施例公开了一种共享内存管理方
法及共享内存管理设备,该方法应用于报文零拷
贝系统中,该报文零拷贝系统运行于操作系统,
该报文零拷贝系统包括至少两个应用程序APPs,
APPs共享第一包缓存pbuf内存,该方法包括:
APPs中的任一应用程序APP设置所述APP对所述
第一pbuf内存的读写操作保护属性在当前时刻
为只读;若所述APP接收到所述操作系统发送的
pbuf内存误操作通知消息,则获取所述pbuf内存
误操作通知消息中的pbuf内存误操作现场信息;
基于所述pbuf内存误操作现场信息确定内存误
操作现场。从而在APP对共享pbuf内存进行误操
作时,准确定位产生误操作的问题现场,保障系
统可靠性。权利要求书3页  说明书16页  附图9页CN 107145399 A 2017.09.08
C N  107145399
A
1.一种共享内存管理方法,其特征在于,所述方法应用于报文零拷贝系统中,所述报文零拷贝系统运行
于操作系统上,所述报文零拷贝系统包括至少两个应用程序APPs,所述APPs的共享内存包括第一包缓存pbuf内存,所述方法包括:
所述APPs中的任一应用程序APP设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读;
在所述APP接收到所述操作系统发送的pbuf内存误操作通知消息的情况下,获取所述pbuf内存误操作通知消息中的pbuf内存误操作现场信息,所述pbuf内存误操作通知消息用于提醒所述APP对所述第一pbuf内存进行写操作以及所述写操作的具体位置;
基于所述pbuf内存误操作现场信息确定所述APP对所述第一pbuf内存进行写操作的内存误操作现场。
2.根据权利要求1所述的方法,其特征在于,所述操作系统包括Linux操作系统,所述Linux操作系统包括mprotect内存管理接口,所述mprotect内存管理接口用于被调用以设置所述第一pbuf内存的读写操作属性;
所述APPs中的任一应用程序APP设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读,包括:
所述APP通过调用所述mprotect内存管理接口设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读。
3.根据权利要求2所述的方法,其特征在于,所述mprotect内存管理接口用于被所述APP调用以基于一个或多个页表设置所述APP对所述第一pbuf内存的读写操作属性。
4.根据权利要求3所述的方法,其特征在于,所述报文零拷贝系统还包括第二pbuf内存,所述APPs的共享内存包括所述第二pbuf内存,在所述APPs中的任一应用程序APP设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读之前,所述方法还包括:所述APP在预设时刻确定所述第一pbuf内存为所述APPs的所述共享内存,所述APP在预设时刻之外确定所述第二pbuf内存为所述APPs的共享内存,所述第一pbuf内存为小页内存,所述第二pbuf内存为大页内存,所述第一pbuf内存与所述一个或多个页表存在唯一对应关系。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一pbuf内存还用于缓存轨迹标识,所述方法还包括:
所述APP通过所述轨迹标识记录所述第一pbuf内存的轨迹点信息,所述轨迹点信息包括所述应用程序标识、所述应用程序当前进程标识以及所述当前时刻。
6.一种共享内存管理方法,其特征在于,所述方法应用于操作系统,所述操作系统上运行有报文零拷贝系统,所述报文零拷贝系统包括至少两个应用程序APPs,所述APPs的共享内存包括第一包缓存pbuf内存,所述方法包括:
所述操作系统根据所述APPs中的任一应用程序APP对所述第一pbuf内存的读写操作属性设置指示记录所述APP对所述第一pbuf内存的读写操作属性为只读;
在所述操作系统监控到所述APP对所述第一pbuf内存进行写操作的情况下,所述操作系统向所述APP发送pbuf内存误操作通知消息,所述pbuf内存误操作通知消息用于提醒所述APP对所述第一pbuf内存进行写操作以及所述写操作的具体位置。
7.根据权利要求6所述的方法,其特征在于,所述操作系统包括Linux操作系统,所述
Linux操作系统包括mprotect内存管理接口,所述mprotect内存管理接口用于被所述APP调用以设置所述APP对所述第一pbuf内存的读写操作属性。
8.根据权利要求7所述的方法,其特征在于,所述mprotect内存管理接口用于被所述APP调用以基于一个或多个页表设置所述APP对所述第一pbuf内存的读写操作属性。
9.根据权利要求8所述的方法,其特征在于,所述页表包括读写操作属性标识,所述操作系统记录所述APP对所述第一pbuf内存的读写操作属性为只读包括:
所述操作系统通过所述读写操作属性标识记录所述APP对所述第一pbuf内存的读写操作属性为只读。
10.一种共享内存管理装置,其特征在于,所述设备包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器上运行有应用程序APP与操作系统,所述操作系统上运行有报文零拷贝系统,所述报文零拷贝系统包括至少两个应用程序APPs,所述APPs共享第一包缓存pbuf内存,所述APP为所述APPs中的任一APP,所述APP用于:
设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读;
在所述APP接收到所述操作系统发送的pbuf内存误操作通知消息的情况下,获取所述pbuf内存误操作通知消息中的pbuf内存误操作现场信息,所述pbuf内存误操作通知消息用于提醒所述APP对所述第一pbuf内存进行写操作以及所述写操作的具体位置;
基于所述pbuf内存误操作现场信息确定所述APP对所述第一pbuf内存进行写操作的内存误操作现场。
11.根据权利要求10所述的共享内存管理设备,其特征在于,所述操作系统包括Linux 操作系统,所述Linux操作系统包括mprotect内存管理接口,所述mprotect内存管理接口用于被调用以设置所述第一pbuf内存的读写操作属性;
所述设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读,包括:
通过调用所述mprotect内存管理接口设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读。
12.根据权利要求11所述的共享内存管理设备,其特征在于,所述mprotect内存管理接口用于被所述APP调用以基于一个或多个页表设置所述APP对所述第一pbuf内存的读写操作属性。
13.根据权利要求12所述的共享内存管理设备,其特征在于,在所述设置所述APP对所述第一pbuf内存的读写操作属性在当前时刻为只读之前,所述APP还用于:在预设时刻确定所述第一pbuf内存为所述APPs的所述共享内存,在预设时刻之外确定所述第二pbuf内存为所述APPs的共享内存,所述第一pbuf内存为小页内存,所述第二pbuf 内存为大页内存,所述第一pbuf内存与所述一个或多个页表存在唯一对应关系。
14.根据权利要求10至13任一项所述的共享内存管理设备,其特征在于,所述第一pbuf 内存还用于缓存轨迹标识,所述APP还用于:
通过所述轨迹标识记录所述第一pbuf内存的轨迹点信息,所述轨迹点信息包括所述应用程序标识、所述应用程序当前进程标识以及所述当前时刻。
15.一种共享内存管理装置,其特征在于,所述设备包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器上运行有应用程序APP和操作系统,所述操作系统上运行有报文零拷贝系统,所述报文零拷贝系统包括至少两个应用程序APPs,所述APPs共享第一报文缓存pbuf内存,所述APP为所述APPs中的任一APP,所述操作系统用于:
根据所述APPs中的任一应用程序APP对所述第一pbuf内存的读写操作属性设置指示记录所述APP对所述第一pbuf内存的读写操作属性为只读;
在所述操作系统监控到所述APP对所述第一pbuf内存进行写操作的情况下,向所述APP 发送pbuf内存误操作通知消息,所述pbuf内存误操作通知消息用于提醒所述APP对所述第一pbuf内存进行写操作以及所述写操作的具体位置。
16.根据权利要求15所述的共享内存管理设备,其特征在于,所述操作系统包括Linux 操作系统,所述Linux操作系统包括mprotect内存管理接口,所述mprotect内存管理接口用于被所述APP调用以设置所述APP对所述第一pbuf内存的读写操作属性。
17.根据权利要求16所述的共享内存管理设备,其特征在于,所述mprotect内存管理接口用于被所述APP
调用以基于一个或多个页表设置所述第一pbuf内存的读写操作属性。
18.根据权利要求17所述的共享内存管理设备,其特征在于,所述页表包括读写操作属性标识,所述记录模块记录所述APP对所述第一pbuf内存的读写操作属性为只读包括:通过所述读写操作属性标识记录所述APP对所述第一pbuf内存的读写操作属性为只读。
19.一种共享内存管理设备,其特征在于,所述共享内存管理设备包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器上运行有应用程序APP和操作系统,所述操作系统上运行有报文零拷贝系统,所述报文零拷贝系统包括至少两个应用程序APPs,所述APPs共享第一报文缓存pbuf内存,所述APP为所述APPs中的任一APP;
所述APP用于执行权利要求1至5任一项所述共享内存管理方法;
所述操作系统用于执行权利要求6至9任一项所述的共享内存管理方法。
一种共享内存管理方法及共享内存管理设备技术领域
[0001]本发明涉及通信领域,具体涉及一种共享内存管理方法及共享内存管理设备。背景技术
[0002]网络功能虚拟化(英文:Network  Function  Virtualization ,NFV)系统通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署。NFV技术的基础包含云计算技术和虚拟化技术,通用的计算、存储、网络等硬件设备通过虚拟化技术可以分解为多种虚拟资源,以供上层各种应用程序使用。
[0003]当在NFV系统上运行多个应用程序(英文:Application,APP)时,为了实现在不同的应用进程之间进行报文转发,可以采用共享内存机制的零拷贝技术,也即不同的应用程序共享同一包缓存(英文:packet  buffer,pbuf)内存,从而可以避免在不同应用程序之间进行拷贝操作,提升系统的性能。但同时使用共享内存机制时,由于各应用程序共享同一pbuf内存,所以破坏了应用程序间的隔离性,导致当出现pbuf内存误操作问题时,无法准确定位内存问题现场。
发明内容
[0004]本发明实施例提供了一种共享内存管理方法及共享内存管理设备,以在APP对共享pbuf内存进行误操作时,准确定位产生误操作的问题现场。
[0005]第一方面,本发明实施例提供一种共享内存管理方法,该方法应用于报文零拷贝系统中,该报文
零拷贝系统运行于操作系统上,该报文零拷贝系统包括至少两个应用程序APPs,该APPs的共享内存第一pbuf内存,该方法通过以下步骤进行共享内存管理。首先APPs 中的任一应用程序APP设置该APP对第一pbuf内存的读写操作保护属性在当前时刻为只读;然后在APP接收到操作系统发送的pbuf内存误操作通知消息时,获取pbuf内存误操作通知消息中的pbuf内存误操作现场信息,该pbuf内存误操作通知消息用于提醒APP对第一pbuf 内存进行写操作以及该写操作的具体位置;最后APP基于pbuf内存误操作现场信息确定APP 对第一pbuf内存进行写操作的内存误操作现场。从而实现在多个APP共享同一pbuf内存的情况下,当该共享pbuf内存出现内存误操作时,能快速并准确地定位产生该pbuf内存误操作的APP以及具体位置,即确定pbuf内存误操作现场,保障系统可靠性。
[0006]在一个可能的设计中,该操作系统包括Linux操作系统,该Linux操作系统包括mprotect内存管理接口,该mprotect内存管理接口用于被调用以设置第一pbuf内存的读写操作属性;从而APP通过调用该mprotect内存管理接口设置APP对第一pbuf内存的读写操作属性在当前时刻为只读。从而通过调用Linux操作系统的mprotect内存管理接口可以方便地在Linux操作系统下对第一pbuf内存的读写操作属性进行设置。
[0007]在一个可能的设计中,mprotect内存管理接口用于被APP调用以基于一个或多个页表设置APP对第一pbuf内存的读写操作属性。从而使得基于页表管理的mprotect内存读写操作管理机制可独立对该第一pbuf内存进行控制。
说 明 书
1/16页CN 107145399 A

本文发布于:2024-09-21 20:37:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/459659.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议