Просто подумал о том, чтобы отказаться от вопроса, поскольку эта проблема, похоже, существует уже довольно давно.
Только что я установил новый Ubuntu 18.04 на свой Macbook Pro и заметил, что kworker загружает много ресурсов процессора:
3411 root 20 0 0 0 0 R 84,4 0,0 6:12.23 kworker/0:0
Вот еще немного информации о моей настройке:
lsb_release -a
:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
uname -a
:
Linux MacbookPro 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Теперь я поискал в Google ответы на эту проблему и нашел действительно много. Ответ в этой ветке помог мне: Почему использование процессора kworker становится таким высоким?
Все, что мне нужно было сделать, это отключить gpe06
, и процесс kworker пропал. Сначала я поискал gpe, вызывающий высокую загрузку процессора:
grep . -r /sys/firmware/acpi/interrupts/
Затем, просматривая список, нашел gpe, который потребляет ресурсы и отключает его:
cp /sys/firmware/acpi/interrupts/gpe06 /root/gpe06.backup
echo "disable" > /sys/firmware/acpi/interrupts/gpe06
Моя проблема в том, что когда я загружаю машину, чертов kworker снова работает. Я знаю, что могу просто каждый раз отключать его вручную, но мне было интересно, есть ли для этого лучшее решение? Я попытался следовать инструкциям в ветке Ask Ubuntu, на которую я ссылался выше, но, похоже, это устаревшее руководство о том, как запустить его при запуске.
Итак, как мне сделать это постоянным решением, чтобы мне не приходилось отключать gpe06 каждый раз при запуске ноутбука?
Согласно этому: https://www.reddit.com/r/Ubuntu/comments/7uwz3r/1604_lts_vs_1710_on_2015_macbook_pro/dto1mtb/
это после "приемов" хорошо работает для меня (та же машина, та же проблема, тот же gpe):
sudo -s
crontab -e
и добавьте этот после строки в конце:
@reboot echo disable > /sys/firmware/acpi/interrupts/gpe06
У меня была такая же проблема с ядром Lubuntu 20.10, 5.8, на старом Macbook 2006 года. В моем случае решение состояло в том, чтобы замаскировать gpe17 с помощью загрузочного параметра
. Я добавил загрузочный параметр acpi_mask_gpe=0x17
в GRUB и перезагрузился.
Добавьте acpi_mask_gpe=0x17
в /etc/default/grub
строку GRUB_CMDLINE_LINUX_DEFAULT, затем запустите update-grub
и перезагрузитесь.
Это решило проблему высокой загрузки ЦП.
Я обнаружил проблему с этой командой:
грэп . -r /sys/firmware/acpi/interrupts/
Проблема:
/sys/firmware/acpi/interrupts/gpe17: 3491042 EN Enabled Unmasked