ucli perf software irq

This commit is contained in:
zy
2023-12-14 02:22:17 -05:00
parent 5d9fd19ddb
commit a7e4c1e4fa
12 changed files with 207 additions and 84 deletions

View File

@@ -10,6 +10,19 @@
#define DEVICE_NAME "variable_monitor"
#include <linux/interrupt.h>
enum {
MY_SOFTIRQ = 11, // 这个值是示例,确保它没有被其他软中断使用
};
static void my_softirq_handler(struct softirq_action *action)
{
// 这是软中断处理函数,它不能睡眠,必须快速执行
// 在这里调用 get_raw_stack
diag_task_all();
}
// for character device
static dev_t dev_num;
static struct cdev *watch_cdev;
@@ -177,6 +190,8 @@ int init_module(void) {
// orig_X | buffer
monitor_init();
orig_open_softirq(MY_SOFTIRQ, my_softirq_handler);
return 0;
}