Разработчики ядра Linux работают над серией патчей, которые устранят избыточную программную очистку кэша (cache flushing) при работе с Intel Trust Domain Extensions (TDX). Эта оптимизация касается конфиденциальных вычислений (confidential computing) и виртуальных машин, использующих технологию MKTME (Multi-Key Total Memory Encryption) для шифрования памяти.
Суть проблемы и решения
На ранних этапах внедрения TDX архитектура предполагала, что аппаратное обеспечение нуждается в помощи со стороны гостевой ОС для очистки кэша при переключении памяти между различными KeyID (идентификаторами ключей AES). В результате в ядро Linux был добавлен код, реализующий эту логику. Однако последние тесты показали, что финальные версии процессоров Intel Xeon способны обрабатывать эти переходы самостоятельно, без вмешательства программного обеспечения.
Инженер Intel Рик Эджкомб (Rick Edgecombe) объяснил, что архитектура TDX была изменена, и теперь ядро может удалить код, отвечающий за ненужную очистку. Документация Intel также будет обновлена в ближайшем выпуске, чтобы отразить текущее поведение оборудования.
Технические детали и поддержка
Технология Intel TDX изначально появилась в процессорах Xeon Sapphire Rapids, но с тех пор стала поддерживаться всеми моделями линейки Xeon, включая Emerald Rapids. Устранение программного контроля за кэшем упрощает код ядра и снижает накладные расходы на переключение контекста.
| Параметр | Значение / Описание |
|---|---|
| Технология | Intel Trust Domain Extensions (TDX) |
| Механизм шифрования | MKTME (Multi-Key Total Memory Encryption) |
| Устраняемая операция | Программная очистка кэша при смене KeyID |
| Поддерживаемые CPU | Xeon Sapphire Rapids и новее (включая Emerald Rapids) |
| Статус патчей | В процессе рассмотрения в mailing list Linux Kernel |
Влияние на производительность
Хотя в сообщениях о патчах прямо не указаны цифры прироста производительности, устранение лишних операций ввода-вывода и синхронизации кэша между ядром и процессором должно положительно сказаться на эффективности работы защищенных виртуальных машин. Это особенно важно для сред с высокой плотностью размещения VM, где каждый такт процессора на счету.
Источник: Phoronix ↗
