I installed Ubuntu 13.10 on a MacBook Pro 10,1. However, after installing, the kworker process consumes over 90% of CPU usage. I tried the following:
- (Suggested in this answer) Execute
grep . -r /sys/firmware/acpi/interrupts/to see if any GPEs have high values. - (Suggested in this answer) Under
sudo -s, executeecho l > /proc/sysrq-triggerand read the output indmesg. - (Suggested in this answer) Execute
sudo perf record -g -a sleep 10and read the output inperf report.
For 1, gpe16 had a high value and it kept climbing. I tried disabling gpe16 as suggested in the answer, and the kworker CPU usage went down to 0.0%.
For 2 (without disabling gpe16), dmesg showed no additional information than what was present at boot.
For 3 (without disabling gpe16), it reported the following in red:
- 50.76% kworker/0:5 [kernel.kallsyms] [k] native_read_tsc
- native_read_tsc
- 64.72% delay_tsc
__const_udelay
+ gmux_index_wait_ready.isra.6
- 35.28% __const_udelay
+ gmux_index_wait_ready.isra.6
- 35.14% kworker/0:5 [kernel.kallsyms] [k] delay_tsc
- delay_tsc
- __const_udelay
- gmux_index_wait_ready.isra.6
- 59.84% gmux_index_write8
gmux_notify_handler
acpi_ev_notify_dispatch
acpi_os_execute_deferred
process_one_work
worker_thread
kthread
ret_from_fork
- 40.16% gmux_index_read8
gmux_notify_handler
acpi_ev_notify_dispatch
acpi_os_execute_deferred
process_one_work
worker_thread
kthread
ret_from_fork
Questions:
- What is
gpe16? How do I know that disabling this interrupt for the sake of kworker will not have other consequences? - What information can be gleaned from
perf report? Is there something do to with the timestamp on the MacBook Pro?

