kthread問題? - Linux

Table of Contents

新手po文 敬請見諒

最近練習在Linux上寫一個簡單的kernel module並建立kthread

目前已經有辦法建立kernel module並建立thread作簡單的for loop

可以遇到一些問題 以下為程式碼

int run(void *data)
{
int i;
for (i=0; i<10; i++)
printk("kthread\n");
return 0;
}

static int kthread_init(void)
{
threads = kthread_create(run, NULL, "kthread1");
wake_up_process(threads);
return 0;
}

我在insmod之後去/var/log/messages看log印出來的是

Jun 23 09:17:56 localhost kernel: kthread
Jun 23 09:17:56 localhost kernel: last message repeated 9 times

這邊沒有什麼問題

但是當我for loop增加到1000000之後
似乎就沒有辦法正確執行

Jun 23 13:57:16 localhost kernel: kthread
Jun 23 13:57:17 localhost kernel: last message repeated 921 times

會變成這個樣子 不是應該要repeat 999999 times才對?

請問有人可以提供一下想法嗎

我想做的是建立幾個thread 然後利用for loop觀察他們在FIFO下的變化

感謝各位囉

--

All Comments

Susan avatarSusan2013-12-24
純粹太多太快. klogd/syslogd 來不及收吧...
Dinah avatarDinah2013-12-27
請問有解決的方法嗎? 設timeout的話可能會跑太久
Faithe avatarFaithe2013-12-28
我覺得你先去搞清楚那個message是啥意思吧...