我编写了简单的代码来测试tasklet的功能。
当我不做tasklet_kill时,在insmod命令使用后内核将被挂起。由于没有日志,我不知道会发生什么。
以下是我的代码。
void work_fcn(unsigned long a)
{
printk("this is tasklet work function\n");
}
void tasklet_test(void)
{
struct tasklet_struct task;
tasklet_init(&task, work_fcn, 0);
tasklet_schedule(&task);
//if I don't do the following line, then kernel hang
tasklet_kill(&task);
}
static int __init hello_init(void)
{
tasklet_test();
return 0;
}
module_init(hello_init);
谢谢。