免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3511 | 回复: 8
打印 上一主题 下一主题

[进程管理] 内核版本2.6.32中,tasklist_lock没有做导出怎么办 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-02 09:56 |只看该作者 |倒序浏览
小弟在一个项目中需要针对版本为2.6.32的内核写一个模块,其中要遍历系统所有的进程树,期间需要用到tasklist_lock进行加锁,但是这个版本的内核没有对tasklist_lock做导出,请问各位有没有替代方案?

涉及的代码如下:

[code=C/C++]
    read_lock_irq(&tasklist_lock);  //undefine tasklist_lock 2.6.32
    for_each_process(p){
        if((p->pid)>0){
            。。。。
        }
    }
    read_unlock_irq(&tasklist_lock);
[/code]

论坛徽章:
0
2 [报告]
发表于 2012-07-03 10:55 |只看该作者
没人能帮忙解决吗??

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2012-07-03 13:04 |只看该作者
回复 1# magician000

锁没倒出也没关系,看一下内核是否提供的遍历的函数,如果函数内部加锁,那你调用应该也是没关系的。

   

论坛徽章:
0
4 [报告]
发表于 2012-07-03 17:30 |只看该作者
回复 3# Godbach

如果不加锁的话,我的模块在载入之后会导致系统停机,从日志来看,出错的地方就在遍历部分
   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2012-07-03 22:17 |只看该作者
回复 4# magician000

我的意思就是你看一下有没导出带加锁功能的函数

   

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
6 [报告]
发表于 2012-07-04 20:22 |只看该作者
没导出来,那就没法用了,找找替代方法吧

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
7 [报告]
发表于 2012-07-05 08:32 |只看该作者
回复 1# magician000
小弟在一个项目中需要针对版本为2.6.32的内核写一个模块,其中要遍历系统所有的进程树,期间需要用到tasklist_lock进行加锁,但是这个版本的内核没有对tasklist_lock做导出,请问各位有没有替代方案?

从2.6.18内核开始就不在export这个锁了,如果遍历进程数的话,使用rcu_read_lock和rcu_read_unlock就可以了。

   

论坛徽章:
8
羊年新春福章
日期:2015-03-19 02:03:312015亚冠之北京国安
日期:2015-06-16 22:04:45程序设计版块每日发帖之星
日期:2015-06-23 22:20:00每日论坛发贴之星
日期:2015-06-23 22:20:002015亚冠之首尔
日期:2015-06-24 19:18:072015亚冠之广州恒大
日期:2015-08-06 10:29:442015亚冠之柏太阳神
日期:2015-11-02 11:21:0515-16赛季CBA联赛之辽宁
日期:2015-12-09 15:05:02
8 [报告]
发表于 2013-08-02 19:35 |只看该作者
版主,能解释下,内核为什么做这种替换吗?

回复 7# 瀚海书香


   

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
9 [报告]
发表于 2013-08-03 23:22 |只看该作者
firocu 发表于 2013-08-02 19:35
版主,能解释下,内核为什么做这种替换吗?

回复 7# 瀚海书香


查查 rcu 比一般的锁好在哪儿不就清楚了。:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP