Linux 6.16 добавляет возможность для Power Code замораживать файловую систему для приостановки и перехода в спящий режим

Среди множества запросов на вытягивание VFS, объединённых сегодня Линусом Торвальдсом в рамках открытого окна слияния Linux 6.16, есть поддержка подсистемой питания возможности инициировать события замораживания/размораживания файловой системы в рамках цикла приостановки и возобновления работы системы.

Инженер-программист Linux Кристиан Браунер из Microsoft представил обновления «заморозки VFS» для Linux 6.16. В основном он работал над тем, чтобы подсистема питания поддерживала заморозку файловой системы для приостановки и гибернации системы. Браунер объяснил в запросе на вытягивание:

Разрешить подсистеме питания поддерживать замораживание файловой системы для приостановки и спящего режима.

Теперь все готово для того, чтобы подсистема питания могла замораживать/размораживать файловые системы во время приостановки/возобновления работы. Файловые системы замораживаются и размораживаются только в том случае, если подсистема питания действительно отвечает за замораживание.

Если файловая система уже заморожена к тому моменту, когда мы замораживаем все процессы пользовательского пространства, мы не будем замораживать её снова. Это задача пользовательского пространства после возобновления процесса. Мы замораживаем файловые системы только в случае крайней необходимости и игнорируем другие сбои при замораживании.

Мы могли бы выявлять ошибки и завершать работу с ошибкой приостановки/возобновления, если это не ошибка EBUSY (то есть если она уже заморожена), но я не думаю, что это того стоит. Заморозка файловой системы во время приостановки/возобновления — это максимум усилий. Если у пользователя подключено 500 файловых систем ext4 и 4 из них по какой-то причине не замораживаются, мы просто пропускаем их.

То, что у нас есть сейчас, — это уже большое улучшение, и давайте посмотрим, как мы с этим справимся, прежде чем делать нашу жизнь ещё сложнее (и хуже), чем она есть.

В рамках этой работы также добавляется /sys/power/freeze_filesystems, чтобы пользовательское пространство могло замораживать файловые системы во время приостановки и гибернации. Запрос на замораживание VFS также добавляет поддержку замораживания/размораживания в код переменных EFI (efivars).

Более подробная информация для тех, кому интересно, в этом слиянии Git.


🔄 Автоматический перевод источника: www.phoronix.com.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *