问大家个 easy 问题?

发布于 2022-09-19 16:03:34 字数 90 浏览 8 评论 4

在 spin_lock 执行 [lock] 到 [unlock] 期间,是不是不能执行 printk 啊?

我以前貌似在哪看过这样的论点,特来此确认一下.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

可可 2022-09-19 16:12:24

我说得不一定对哈

1.原则上,spinlock保护的临界区代码都是短小的,比如操作一个链表,不过这是站在设计的角度来说
2.printk或许会引起睡眠.printk是把要打印的东西写到一个缓冲区中,然后看console_sem空不空闲,如果不空闲倒是直接返回了事,如果空闲的话就会调console driver去真正的'print',但是console是多种多样的,比如framebuffer console, serial console, network console等,不保证这些console driver不会有导致blocking call的地方.一旦blocking sleep,那么问题就来了,因为新调度起来的process或许又要去拿这把spinlock,肯定会死锁.

一世旳自豪 2022-09-19 16:10:18

大家说话啊.

丶视觉 2022-09-19 16:08:41

楼上能够说说原因么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文