Аппаратное ускорение сжатия в Linux
Компания Qualcomm опубликовала исходный код драйвера QPaCE (Qualcomm Page Compression Engine) для Linux. Это решение предназначено для новейших систем-на-кристалле (SoC), начиная с Snapdragon 8 Elite Gen 6 (кодовое имя "Hawi"). Главная цель внедрения — ускорение работы устройства ZRAM, которое используется для сжатого обмена данными (swap) в оперативной памяти.
Ранее сжатие данных в ZRAM выполнялось исключительно процессором (CPU), что создавало нагрузку на вычислительные ядра. QPaCE выносит эту задачу на специализированный аппаратный блок, обеспечивая низкую задержку и высокую пропускную способность.
Технические детали реализации
Первоначальная версия драйвера фокусируется на синхронном пути выполнения задач с высокой приоритетностью ("urgent" path). Это оптимизировано для операций с отдельными страницами памяти, где критична скорость отклика. Асинхронная работа на основе очередей (ring-based), предназначенная для высокой пропускной способности пакетных сжатий, в текущем релизе не реализована, но заявлена как возможное будущее расширение.
Драйвер интегрируется в подсистему сжатия Linux через новый бэкенд qpace-lz4, что позволяет использовать алгоритм LZ4 с аппаратным ускорением без изменения пользовательских приложений.
Сравнение подходов к сжатию
| Характеристика | Стандартный ZRAM (CPU) | ZRAM с QPaCE (Hardware) |
|---|---|---|
| Вычислительный ресурс | Основные ядра CPU | Специализированный блок QPaCE |
| Задержка (Latency) | Выше (зависит от нагрузки CPU) | Низкая (оптимизировано для single-page ops) |
| Алгоритм | LZ4 (программный)LZ4 (программный) | LZ4 (аппаратный бэкенд) |
| Режим работы (в текущем драйвере) | Синхронный/Асинхронный | Только синхронный ("urgent") |
Значение для экосистемы
Внедрение QPaCE знаменует собой важный шаг в оптимизации энергопотребления и производительности мобильных устройств на базе Linux. Использование выделенного железа для сжатия памяти позволяет освободить основные ядра процессора для других задач, что особенно важно для флагманских смартфонов и планшетов. Драйвер уже доступен для ознакомления в виде серии патчей, что открывает путь для интеграции в основные ветки ядра Linux.
Источник: Phoronix ↗
