免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ogmw

请教:printk过多会宕机的原因 [复制链接]

论坛徽章:
0
发表于 2008-04-24 12:40 |显示全部楼层
争来争去也不错,顺便多学点东西。
不过我认为楼主自己的prink函数的参数可能出问题了,比如打印地址,有时候这个地址可能为空了,会造成panic.关于TLB的问题,在intel的cpu上会出现问题,可以在BIOS里面disable TLB就好了。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2008-04-24 12:41 |显示全部楼层
原帖由 albcamus 于 2008-4-24 12:04 发表
争些名字有意思吗?  你们都是高手,又不是不懂对方什么意思。


al* 什么时候变得这种行事风格?有不同观点就讲,没有就shut up
"名字"只不过是限定谈论的范围,无限扩大范围"有意思吗"?否则,我不明白为何你在置顶的地方要弄一个“[Eric S. Raymond]提问的智慧--在技术社区学习者必读”。做版主的就可以说一套做一套?
。。。。要不,我们不如来讨论"Linux"吧,这个名字大家都知道。

论坛徽章:
0
发表于 2008-04-24 12:42 |显示全部楼层
原帖由 gvim 于 2008-4-24 12:41 发表


al* 什么时候变得这种行事风格?有不同观点就讲,没有就shut up
"名字"只不过是限定谈论的范围,无限扩大范围"有意思吗"?否则,我不明白为何你在置顶的地方要弄一个“[Eric S. Raymond]提问的智慧--在技术 ...

我比较同意你前面的分析,zx_xing的分析也很专业,但是貌似不是楼主所问的

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2008-04-24 12:47 |显示全部楼层
原帖由 zx_wing 于 2008-4-24 12:37 发表

呵呵,先赞一个版主找资料的精神。
这个话题我不想再纠缠了,从这个话题中我学不到东西的,还浪费时间。不过我愿意介绍一点IA64的背景知识说明这个问题。
在IA64上,TLB分为ITLB和DTLB,前者放代码段相关的 ...


恩,就此打住吧,我不了解IA64,呵呵。没办法继续讨论。

论坛徽章:
0
发表于 2008-04-24 19:30 |显示全部楼层
原帖由 zx_wing 于 2008-4-23 13:24 发表
你写个用户态程序用死循环调用printf不是一样终端没响应。(当然,你可以ctrl-c它)
内核态情况一样,更严重些。

首先,printk工作在内核态,此时没有任务调度,故不会系统不会执行其它任务。
其次,即使内 ...

个人认为这种说法欠妥当,printk不一定会引发I/O吧,争论的半天不如自己看一下printk()的代码。

论坛徽章:
0
发表于 2008-04-24 20:55 |显示全部楼层
原帖由 crspo 于 2008-4-24 19:30 发表

个人认为这种说法欠妥当,printk不一定会引发I/O吧,争论的半天不如自己看一下printk()的代码。

多谢指正,打印到demsg buffer的时候是没有I/O。
看到LZ提当机,我自然想到打到终端或日志里去了。
虽然小弟向来说话不严谨,但通常来说原理还是想的清楚的

论坛徽章:
0
发表于 2008-04-24 21:11 |显示全部楼层
凑个热闹。
虽然内核所知很浅,但我也觉得 printk 可能不进行 I/O 操作。可能进行的是映射操作。

论坛徽章:
0
发表于 2008-04-24 21:42 |显示全部楼层
原帖由 mik 于 2008-4-24 21:11 发表
凑个热闹。
虽然内核所知很浅,但我也觉得 printk 可能不进行 I/O 操作。可能进行的是映射操作。

printk打印到屏幕上就是个VGA I/O,打印到dmesg buffer同步到硬盘时就是个disk I/O
除此之外就是内存操作了。

其实我们用printf打印的时候也是个IO,就是上面说的VGA I/O哈。
嘿嘿,其实还是我自己不严谨,居然还跑去发个牢骚贴。crspo同学,见笑了见笑了

论坛徽章:
0
发表于 2008-04-24 21:51 |显示全部楼层
原帖由 zx_wing 于 2008-4-24 21:42 发表

printk打印到屏幕上就是个VGA I/O,打印到dmesg buffer同步到硬盘时就是个disk I/O
除此之外就是内存操作了。

其实我们用printf打印的时候也是个IO,就是上面说的VGA I/O哈。
嘿嘿,其实还是我自己不严谨 ...


计算机世界里最终莫么就是输出,莫么就是输入,从这方面来讲,I/O确实没说错。
只是说:I/O这个动作由谁来做的问题。由程序自己做的话,是典型的I/O操作,
由机器硬件来做,如映射到物理器件上。这点来看,不是I/O也行吧

论坛徽章:
0
发表于 2008-04-24 21:52 |显示全部楼层
原帖由 zx_wing 于 2008-4-24 21:42 发表

printk打印到屏幕上就是个VGA I/O,打印到dmesg buffer同步到硬盘时就是个disk I/O
除此之外就是内存操作了。

其实我们用printf打印的时候也是个IO,就是上面说的VGA I/O哈。
嘿嘿,其实还是我自己不严谨 ...

客气了,你的很多帖子解释的都很详尽,说的多自然可能会有疏忽,很正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP