spin_lock_irqsave()是否会阻止IPI调用?

时间:2019-11-27 17:21:57

标签: kernel spinlock

我正在使用kdump功能来生成内核崩溃核心文件。 我创建了一个小的内核模块,该模块会导致内核监视程序崩溃

static int watchdog_crash(void *unused)
{
    unsigned long flags;

    spin_lock_irqsave(&wdt_lock, flags);
    udelay(1000);
    while(1);

    return 0;
}

static void kernel_thread()
{

    struct task_struct *t1;
    t1 = kthread_create_on_cpu(watchdog_crash, NULL, 0, "mythread1");

    if(t1) {
        printk(KERN_EMERG "MANALI: Thread 1 Created Sucessfully\n");
        wake_up_process(t1);
    } else {
        printk(KERN_EMERG "MANALI: Thread 1 Creation Failed\n");
    }
}

当我插入模块时,它正在创建一个看门狗异常,但问题是它无法将ipi(处理器间中断)发送到生成内核文件时该内核线程被阻塞的CPU。我只想知道会发生这种情况,因为spin_lock_irqsave()会禁用所有中断。它也禁用IPI中断吗?

0 个答案:

没有答案