Почему systemd игнорирует мою кнопку питания?

Это будет ответ, ориентированный на -Intel.

Обратите внимание, что на уровне ядра средства защиты от Spectre/Meltdown не являются единым монолитным блоком, а каждый вариант Spectre/Meltdown имеет свой собственный набор средств защиты.

Расплав

Снижение уровня -уровня ядра для Meltdown называется изоляцией таблицы страниц. Ядро может сделать это самостоятельно, что значительно повлияет на производительность.

Это помогает, если процессор+микрокод предлагает идентификаторы контекста процесса (PCID ), и даже больше, если инструкция INVPCID доступна в процессоре :Meltdown -исправление обновлений микрокода добавило одно или оба из эти возможности, в соответствии с тем, что микрокод может делать на каждой конкретной модели процессора. Linux, безусловно, может использовать их, если они доступны, и они могут значительно снизить влияние смягчения последствий Meltdown на производительность.

Конечно, лучше всего, если изоляция таблицы страниц вообще не нужна, и, по-видимому, это то, что означает «аппаратное» исправление для Meltdown.

И если вы считаете, что ваша система достаточно безопасна и для вас важнее производительность, есть возможность отключить исправление Meltdown.

Призрак Вариант 1

Это устраняется путем исправления компилятора для более тщательной обработки указателей в определенных ситуациях, а затем пересоздания ядра (и гипервизора, если таковые имеются )и любых важных для безопасности -двоичных файлов с использованием пропатченный компилятор. Это было сделано. Он добавляет некоторые дополнительные инструкции в ключевые места в скомпилированном коде, что делает программы немного больше и медленнее для выполнения, но, к счастью, разница обычно крошечная.

Насколько я понимаю, микрокод и конструкция процессора здесь мало что могут сделать :даже Cascade Lake указывает только исправления на уровне OS/VMM -для этого.

Призрак Вариант 2

Это сложная проблема, которую, вероятно, труднее всего исправить, поскольку настоящее исправление требует некоторых инноваций на уровне теории проектирования ЦП .

Даже без какой-либо помощи со стороны аппаратного обеспечения+микрокода ЦП, ядро ​​может реализовать retpoline , т.е. RETurn батут инструкции . Это техника программирования на уровне ассемблера -. Как и в случае с мерой Meltdown, поскольку реализация этого -существенно снижает производительность системы, у вас есть возможность отключить эту меру, если производительность вам нужна больше, чем безопасность.

ЦП+микрокод снова может предоставлять некоторые новые функции, упрощающие устранение последствий Spectre V2 для ядра:

  • Indirect Branch Restricted Speculation (IBRS ), в основном переключаемый режим в предсказателе ветвлений ЦП, который предотвращает влияние пользовательского -кода пробела на предсказание ветвлений в пространстве ядра -для пользователя ->переход в режим ядра.
  • Барьер косвенного предсказания ветвления (IBPB ):в основном новая инструкция ЦП, которая останавливает любой код до того, как он повлияет на предсказание ветвления в коде после инструкции IBPB.
  • Однопоточные косвенные предикторы переходов (STIBP ):способ запретить гипер-потокам на одном ядре совместно использовать информацию предсказания переходов.

Ядро Linux может использовать эти функции там, где это уместно, чтобы свести к минимуму потери производительности, вызванные методом retpoline.

Дополнительные сведения см. в этом документе Intel PDF.

2
14.07.2020, 12:24
1 ответ

Служба systemd systemd-logindотвечает за обработку сигналов ACPI. Сначала убедитесь, что служба запущена

systemctl status systemd-logind

Если эта служба неактивна из-за неудачной «проверки состояния», убедитесь, что dbus установлен и работает, а затем попробуйте запустить службу вручную:systemctl start systemd-logind

Если служба запущена и вы видите несколько сообщений «Наблюдение за системными кнопками..» в журналах systemd-logind, тогда systemd должен отслеживать вашу кнопку питания. Вы должны убедиться, что /etc/systemd/logind.confне меняет то, как systemd обрабатывает сигналы кнопки питания.

Если systemd по-прежнему не реагирует на кнопку питания, убедитесь, что acpidне установлен и не мешает событиям ACPI вашей системы.

2
18.03.2021, 23:19

Теги

Похожие вопросы