免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sky__sea
打印 上一主题 下一主题

[内核模块] 进程挂住问题 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-29 06:20:00
11 [报告]
发表于 2016-03-09 08:56 |只看该作者
用strace跟踪,一直在调用write,刷屏。回复 10# nswcfd


   

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-29 06:20:00
12 [报告]
发表于 2016-03-09 08:57 |只看该作者
用strace跟踪,一直在调用write,刷屏。回复 10# nswcfd


   

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-29 06:20:00
13 [报告]
发表于 2016-03-09 09:00 |只看该作者
斑竹大人在吗,能否指点一二。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-29 06:20:00
14 [报告]
发表于 2016-03-09 15:53 |只看该作者
我发现似乎与定义的那个全局变量有关,只要有涉及到它的相关操作,就会有问题,如果函数里没有使用它,就不会有问题。全局变量的定义和使用有什么注意的地方吗?

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
15 [报告]
发表于 2016-03-09 15:55 |只看该作者
ptrace的话,估计跟PTRACE_SYTSCALL的实现有关系。

论坛徽章:
11
2015年迎新春徽章
日期:2015-03-04 09:55:282017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之辽宁
日期:2016-12-15 10:24:1715-16赛季CBA联赛之佛山
日期:2016-11-30 09:04:2015-16赛季CBA联赛之江苏
日期:2016-04-29 15:56:1215-16赛季CBA联赛之同曦
日期:2016-04-12 13:21:182016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之山东
日期:2016-02-16 11:37:52每日论坛发贴之星
日期:2016-02-07 06:20:00程序设计版块每日发帖之星
日期:2016-02-07 06:20:0015-16赛季CBA联赛之新疆
日期:2018-01-09 16:25:37
16 [报告]
发表于 2016-03-09 16:00 |只看该作者
本帖最后由 bskay 于 2016-03-09 16:03 编辑

没有什么实质意义?!
不同的内存引用,可能会导致swap切换,可能和IO发生冲突
表面没有什么实质意义的东西,后面可能是完全相关的,既然发生了
排除了不可能的,剩下的看起来再不可能,也是是的

另外在内核里面好像有个最基本的原则.不能用某些函数
比如printf不能用要用printk之类...看起来也是没有什么实质意义的

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-29 06:20:00
17 [报告]
发表于 2016-03-09 16:02 |只看该作者
那怎么排查呢,我的代码已经简单的不能在简单了,可我还是没办法知道是哪里的问题。
bskay 发表于 2016-03-09 16:00
没有什么实质意义?!
不同的内存引用,可能会导致swap切换,可能和IO发生冲突
表面没有什么实质意义的东西,后 ...

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
18 [报告]
发表于 2016-03-09 16:35 |只看该作者
本帖最后由 nswcfd 于 2016-03-09 16:50 编辑

--------------- 先忽略这条回复吧 ------------------


参考arch/x86/kernel/entry_64.S

或者
http://lxr.free-electrons.com/source/arch/x86/entry/entry_64.S
174 testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
175 jnz tracesys <=================== trace-syscall发生在call sys_call_table之前
176 entry_SYSCALL_64_fastpath:
177 #if __SYSCALL_MASK == ~0
178 cmpq $__NR_syscall_max, %rax
179 #else
180 andl $__SYSCALL_MASK, %eax
181 cmpl $__NR_syscall_max, %eax
182 #endif
183 ja 1f /* return -ENOSYS (already in pt_regs->ax) */
184 movq %r10, %rcx
185 call *sys_call_table(, %rax,   <=================== 系统调用在这里
186 movq %rax, RAX(%rsp)

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
19 [报告]
发表于 2016-03-09 16:45 |只看该作者
这个现象只在strace的场景下发生么?

去掉全局变量访问,在strace下也不会再出现了?

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
20 [报告]
发表于 2016-03-09 16:54 |只看该作者
刷屏的时候,strace显示的write的参数,也就是打印的内容,是反复同样的内容,还是不同的内容?
贴个局部的截屏吧。

本来想说,strace的write调用,导致了额外的输出,不过仔细想想不对,strace本身又没被trace。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP