Как правильно создавать и останавливать kthreads?

Хорошим началом будет загрузка.deb отсюда Деб TeanViewer

и прочитайте файл справки здесь помощь

0
07.10.2019, 22:11
1 ответ

Вам нужно добавить новую строку в конец printk(). Кажется, что printk()без новой строки не будет сброшено в dmesgдо тех пор, пока не появится другой printk()без KERN_CONT.

printk(KERN_INFO "Current value in t1 is %d\n",7);
printk(KERN_INFO "Current value in t2 is %d\n",8);

Что касается того, как правильно создавать и останавливать kthreads, вот пример кода, который я написал. Надеюсь, это поможет.https://gist.github.com/seekstar/4bdef2a775383d417e265317832e44ed

Причина использованияstruct completion entered:https://stackoverflow.com/questions/65987208/kthread-stopped-without-running

Вы можете отменить цепочку таким образом:

t1 = kthread_create(func, &para1, "t1");
// Oops, something went wrong(such as failing to create another kthread)
ret = kthread_stop(t1);

Таким образом,funcне будет выполнено, а ktheard_stopвернет -EINTR.

3
01.02.2021, 02:10

Теги

Похожие вопросы