我已CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC
在内核配置中启用,现在我想测试这种行为,即内核在软锁定的情况下应该恐慌,
为了尝试这个,我创建了一个模块,
int thread_function(void *data)
{
int var;
var = 10;
printk(KERN_INFO "Inside %s %s\n",STR_MOD,__func__);
//while(!kthread_should_stop()){
while(1) {
printk(KERN_INFO "Mutiplying...\n");
var = var*var*var; //test
}
//}
return var;
}
static int kernel_init(void)
{
data = 20;
printk(KERN_INFO"insmod %s\n",STR_MOD);
/*task = kthread_create(&thread_function,(void *)data,"SD");*/
task = kthread_run(&thread_function,(void *)data,"SD");
set_cpus_allowed(task, *cpumask_of(0));
printk(KERN_INFO"Kernel Thread : %s\n",task->comm);
return 0;
}
使用此 CPU 0 正忙于处理任务并报告 ~99.9% 的使用率top
但它不会产生软锁定。
所以,我的问题是我怎样才能做到这一点?