[发明专利]一种用户态无锁转发的实现方法及装置有效
| 申请号: | 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)对应的结构属性,该红区用于记录线程对数据的全部访问过程,该红区包括当前使用红区以及过期待处理红区,该当前使用红区存储待释放数据;
根据更新后的结构属性,判断过期待处理红区中是否存在访问的线程;
如果过期待处理红区中未存在访问的线程,则将当前使用红区存储的待释放数据进行释放处理。
结合第一方面,在第一种可能的实现方式中,当线程对数据进行访问或访问结束时,根据线程的类别,更新已创建的红区对应的结构属性之前,该方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司合肥分公司,未经新华三技术有限公司合肥分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010131073.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于牛顿共轭梯度法的深度学习网络架构
- 下一篇:一种防攻击方法及装置





