c - local_irq_disable 无法按预期工作
问题描述
local_irq_disable() 用于禁用当前处理器上的所有中断
我写了一个基本代码来测试local_irq_disable()。
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/irqflags.h>
static int __init my_init(void)
{
pr_info("module is loaded on processor:%d\n", smp_processor_id());
local_irq_disable();
ssleep(10);
local_irq_enable();
return 0;
}
static void __exit my_exit(void)
{
}
MODULE_LICENSE("GPL");
module_init(my_init);
module_exit(my_exit);
当我在我的系统上加载它时,它会打印以下消息:
[10478.930188] 模块已加载到处理器:5
当我运行“watch -d -n 0.2 'cat /proc/interrupts'”时,它仍然在那些处理器上显示中断,我在这里缺少什么?
解决方案
推荐阅读
- javascript - 无法读取 ReactJS 中未定义的属性“id”
- clojure - 没有构建工具无法启动 clojure.jar
- yadcf - YADCF 初始选择最新值
- django - 为什么 @property 模型定义在 list_display 中可见,但在 Django Admin 的 field_sets 中不可见?
- bootstrap-4 - 如何在 Bootstrap v4 中使一个 div 可滚动?
- javascript - 基本的 Javascript 帮助 *非常需要*
- java - 将 Blob 保存/读取到 Oracle DB JAVA
- java - 如何从资产文件夹共享 htm 文本文件?
- c# - 未填充身份自定义属性(保存到数据库作品)
- vb.net - 如何为每一行分配不同的图像?