[[_suspendresume_improvement]]
=== Улучшение функций системы приостановки/возобновления работы (Suspend/Resume)

Ссылки: +
link:https://obiw.ac/s0ix/[Блог] URL: link:https://obiw.ac/s0ix/[] +
link:https://youtu.be/RCjPc4X2Edc[Доклад на BSDCan о s2idle/S0ix] URL: https://youtu.be/RCjPc4X2Edc[] +
link:https://people.freebsd.org/~obiwac/s0ix/[Образ для тестирования сна] URL: https://people.freebsd.org/~obiwac/s0ix/[] +
link:https://github.com/obiwac/freebsd-s0ix/pull/15[Рабочая ветка] URL: link:https://github.com/obiwac/freebsd-s0ix/pull/15[]

Контакт: obiwac <obiwac@FreeBSD.org>

Приостановка-до-бездействия (suspend-to-idle) и поддержка сна S0ix находятся в процессе добавления во FreeBSD.

Это позволит современным ноутбукам Intel и AMD, некоторые из которых не поддерживают сон ACPI S3, переходить в состояния с низким энергопотреблением для увеличения времени автономной работы.

На данный момент большинство ревизий уже зафиксированы, включая новый драйвер acpi_spmc и поддержку s2idle.
Единственное, что осталось добавить, — это поддержку приостановки USB4 и цикл s2idle (но это требует дополнительного обсуждения и исследования).
Смотрите ревизии link:https://reviews.freebsd.org/D52861[D52861] и link:https://reviews.freebsd.org/D54410[D54410] соответственно.

Многие ошибки были исправлены, но всё ещё есть проблема, когда система иногда зависает через несколько секунд после возобновления работы.
Было установлено, что проблема связана с тем, что NVMe-накопитель неправильно просыпается после приостановки — требуется дальнейшее расследование.

Начата работа над драйвером Intel PMC: link:https://reviews.freebsd.org/D54881[D54881]
Это уже позволяет считывать время пребывания в самом глубоком возможном состоянии S0ix на процессорах Intel.

Начата работа над новым общим интерфейсом управления питанием: link:https://reviews.freebsd.org/D55508[D55508]
Это необходимо, поскольку s2idle не является состоянием питания ACPI, и единственным (современным) механизмом для запросов перехода питания является интерфейс ioctl ACPI.
Он ещё не зафиксирован, потому что мы можем в итоге изменить или даже удалить различие между типами сна и переходами состояний сна.

Спонсор: Фонд FreeBSD

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (18.04.2026): 8a67c6b1fb6be7f30b6b0a1aa35af9902bc02849
//
