Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240754
  • 博文数量: 32
  • 博客积分: 557
  • 博客等级: 中士
  • 技术积分: 431
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-20 23:05
文章分类

全部博文(32)

文章存档

2015年(4)

2014年(2)

2012年(4)

2011年(22)

分类: LINUX

2011-07-06 23:03:23

RCU的代码极其复杂,主要文件包括:
include/linux/rcupdate.h
kernel/rcutree.h
kernel/rcutree.c等
主要数据结构:
rcu_state/rcu_data/rcu_head等

请看附件,使用请标明出处,谢谢!
阅读(5806) | 评论(12) | 转发(0) |
给主人留下些什么吧!~~

wangjianchangdx2011-07-06 23:13:06

__call_cpu函数结构:
前半部分,等宽限期(grace period)结束,并开启一个gp;
后面是强制静止时间的操作;

rcu要考虑到irq/nmi等(from lwn)

wangjianchangdx2011-07-06 23:10:54

在read, copy, update之后,就是要回收旧的数据了,
call_cpu(rcu_head, call_back_func)
跟踪call_back_func的注册,call_back_func被赋值进入rcu_head,rcu_head被加入rcu_data的nxttail链表
rcu_data是per-cpu variable, rcu_state.rda[]保存rcu_data指针