亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教個kworker的問題 [打印本頁]

作者: fire_vr    時間: 2015-03-05 17:30
標(biāo)題: 請教個kworker的問題
我的板子是單核的A5,自己寫了個模塊,如果用create_singlethread_workqueue新建的隊(duì)列,發(fā)work到這個隊(duì)列中,再通過top命令式看到在kworker/u:0上的。
但如果用create_workqueue建立隊(duì)列,再發(fā)work到這個隊(duì)列中,通過top命令看占用率時,發(fā)現(xiàn)是在kworker/0:1上的。這么說,create_workqueue不就是相當(dāng)于沒有新建隊(duì)列了嗎?

還有,大家在debug時,如何能從kworker/u:0或者kworker/0:1快讀定位到是代碼哪里啟動的隊(duì)列呢?

多謝!
作者: 鎮(zhèn)水鐵牛    時間: 2015-03-05 19:53
create_workqueue是在每個cpu上創(chuàng)建一個workqueue,create_singlethread_workqueue只創(chuàng)建一個內(nèi)核線程。
kworker是3.x內(nèi)核引入的,你是如何確定你的任務(wù)是在kworker/0:1上執(zhí)行的呢?
作者: fire_vr    時間: 2015-03-06 10:35
回復(fù) 2# 鎮(zhèn)水鐵牛

create_workqueue是在每個cpu上創(chuàng)建一個workqueue,create_singlethread_workqueue只創(chuàng)建一個內(nèi)核線程。
這么說create_workqueue也應(yīng)該創(chuàng)建了workqueue啊,怎么看不到呢。

我在work的處理函數(shù)里面加了個mdelay,看cpu占用率大概就看出是哪個kworker了。
   
作者: 鎮(zhèn)水鐵牛    時間: 2015-03-08 21:51
    if (pool->cpu >= 0)
        snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
             pool->attrs->nice < 0 ? "H" : "");
    else
        snprintf(id_buf, sizeof(id_buf), "u%d:%d", pool->id, id);

    worker->task = kthread_create_on_node(worker_thread, worker, pool->node,
                     "kworker/%s", id_buf);

    其中kworker/0:1中的0:1就來自這里,0表示cpu0,1表示pool worker的ID,單核環(huán)境中這個ID不清楚,有可能復(fù)用系統(tǒng)默認(rèn)的worker了。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2