Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Excessive CPU usage of kworker thread on kernel 2.6.37

Hi

A few days ago, I looked at the kernel differences between 2.6.34 and 2.6.37 in ps. And i saw the kworker/u:1 using too much cpu time as a kernel thread in 2.6.37. I googled it to find a solution to reduce the cpu usage and I found only some infos about kworker: "it is a placeholder for kernel worker threads and anything (interrupts, timers, I/o waits...) in kernel space can cause it to run too much". This means everything can cause this issue and there is no obvious solutions and points for the problem. Is there any solution for this issue or any point in kernel ?

My kernel: http://arago-project.org/git/projects/?p=linux-davinci.git;a=shortlog;h=refs/heads/usb_pio_plus_dma

Thanks

  • Hi, again

    I tried to find the kernel module which triggers the kworker use the cpu too much, and I have finally found it "DaVinci MMC driver". If you remove this module, you can look at the ps out and the kworkers (especially kworker/0:1 and kworker/u:1) will be stopped to use cpu. If you need to use MMC module, you need to stop the MMC plug POLL in drivers/mmc/host/davinci_mmc.c file: mmc->caps |= MMC_CAP_NEEDS_POLL and also you need to add MMC_CAP_NONREMOVABLE ability to your mmc configuration in your board file. However, do not  forget that kworker is a placeholder for inner kernel actions and maybe your problem can be caused by different modules. You can search it activate/deactivating each module in your kernel config.

    Thanks :)