[发明专利]一种用户态无锁转发的实现方法及装置有效

专利信息
申请号: 202010131073.X 申请日: 2020-02-28
公开(公告)号: CN111475264B 公开(公告)日: 2023-05-12
发明(设计)人: 李昊 申请(专利权)人: 新华三技术有限公司合肥分公司
主分类号: G06F9/48 分类号: G06F9/48;G06F9/52
代理公司: 暂无信息 代理人: 暂无信息
地址: 230001 安徽省合肥市高新区创*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 用户 态无锁 转发 实现 方法 装置
【说明书】:

本申请提供一种用户态无锁转发的实现方法及装置,该方法包括:当线程对数据进行访问或访问结束时,根据线程的类别,更新已创建的红区对应的结构属性,其中,该红区用于记录线程对数据的全部访问过程,该红区包括当前使用红区以及过期待处理红区,该当前使用红区存储待释放数据;根据更新后的结构属性,判断过期待处理红区中是否存在访问的线程;如果过期待处理红区中未存在访问的线程,则将当前使用红区存储的待释放数据进行释放处理。

技术领域

本申请涉及通信技术领域,尤其涉及一种用户态无锁转发的实现方法及装置。

背景技术

随着互联网、4G、5G网络的普及推广,对于网络操作系统(英文:networkoperating system,简称:Nos)的转发性能要求越来越高。无论是运行在服务器或是路由器中,Nos充分利用多核中央处理器(英文:Central Processing Unit,简称:CPU)的能力。在多核CPU并发的情况下,会出现对关键数据的冲突访问,因此,提供一种多核无锁的转发方式,对于转发性能是至关重要的。

读-拷贝更新(英文:Read-Copy Update,简称:RCU),是在Linux内核态下提供的一种无锁并发访问方式,当多个上下文(例如,内核线程、软中断等)等并发访问数据时,对于读者无需加锁进行互斥处理,是一种非常高效的互斥方式。

RCU机制主要包括两部分:1)拷贝修改。如图1所示,以图1中的链表为例,在对链表中的某个节点更新时,先拷贝一个副本(new-one),对副本进行修改。然后,将副本挂在链表上旧节点(old-one)所在的位置。这个过程中,对旧节点的内容不做修改,包括旧节点的下一级节点的地址。因此,上述过程中,正在访问该链表的读者,依然可以通过旧节点安全的访问该链表,同时无需在修改的过程中加锁对读者进行屏蔽。2)延迟释放。在如图1修改过副本后,旧节点不会被立即释放,而是继续挂在链表上。在特定的时间,调用旧节点的释放回调函数,将旧节点释放。

由于并不知道当前有哪些上下文在访问某一个待释放的节点,因此,RCU机制通过优雅期(grace period)来确定释放的时机。即以优雅期为界,对关键数据的修改或删除操作在当前优雅期完成,那么在当前优雅期内,处于其他CPU上的读者可能访问到旧数据(在修改或删除完成前就查找并使用旧节点),也可能访问新数据(在修改或删除操作完成后才查找到新节点)。因此,在全部CPU都完成了一次上下文切换后,即可保证后续读者访问的是新节点,可将旧节点安全释放。

当前,主流的Nos在采用了用户态的系统后,则失去了高效安全的RCU机制。尽管用户态也有类似RCU的用户态RCU(英文:user-space read-copy update,简称:URCU)机制,但是,由于URCU无法获取CPU上的上下文切换,不能感知优雅期。因此,URCU对于编码的要求非常高,并且URCU需要暴露出很多实现细节,尤其是将Nos移植到用户态的时,适配URCU过程困难。

发明内容

有鉴于此,本申请提供了一种用户态无锁转发的实现方法及装置,解决用户态转发的无锁要求,提供了一种接近内核RCU的解决方案。

第一方面,本申请提供了一种用户态无锁转发的实现方法,该方法包括:

当线程对数据进行访问或访问结束时,根据线程的类别,更新已创建的红区(redzone)对应的结构属性,该红区用于记录线程对数据的全部访问过程,该红区包括当前使用红区以及过期待处理红区,该当前使用红区存储待释放数据;

根据更新后的结构属性,判断过期待处理红区中是否存在访问的线程;

如果过期待处理红区中未存在访问的线程,则将当前使用红区存储的待释放数据进行释放处理。

结合第一方面,在第一种可能的实现方式中,当线程对数据进行访问或访问结束时,根据线程的类别,更新已创建的红区对应的结构属性之前,该方法还包括:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司合肥分公司,未经新华三技术有限公司合肥分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010131073.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top