KVM: регрессии производительности и обсуждение поддержки 32-разрядных систем

В состав ядра Linux 6.13-rc3 принято изменение, устраняющее регрессию производительности в гипервизоре KVM, связанную с медленной обработкой вызовов CPUID на новых CPU, например, на CPU Intel Emerald Rapids операции c CPUID выполняются в 3-4 раза медленнее, чем на CPU Intel Skylake. Подобная особенность привела к снижению производительности гипервизора KVM, который использует CPUID в процессе сохранения и восстановления состояния процессора при каждой передаче управления виртуальной машине, в случае использования вложенной виртуализации. Для решения проблемы в ветку ядра 6.13 принят сокращённый патч, позволивший до 40% сократить время операции даже CPU семейства SkyLake, благодаря кэшированию CPUID. В ядре 6.14 будет представлена полная версия патча, дополнительно улучшающая производительность.

Кроме того, можно отметить обсуждение в списке рассылки разработчиков ядра Linux прекращения поддержки 32-разрядных систем в гипервизоре KVM. Изначально для ядра был предложен патч, удаляющий поддержку виртуализации KVM на платформе x86-32. В ответ были высказаны опасения, что поддержка x86-32 может быть полезной для тестирования работы хост-режима в общем виде на 32-системах, так как в ядре помимо x86-32 остаётся ещё три 32-разрядные архитектуры, поддерживаемые в KVM. В ответ был представлен ещё один патч, на этот раз удаляющий из KVM поддержку всех 32-разрядных систем.

Желание избавиться от поддержки 32-разрядных систем объясняется тем, что даже на массовых 32-разрядных процессорах ARM, таких как ARM Cortex A7, виртуализация не получила развития и использование виртуальных машин на 32-разрядных системах ARM было настолько редкостью, что поддержка данных систем в KVM была удалена 2020 году и это не вызвало возражений. Отмечается, что для остальных 32-разрядных систем изменения затронут лишь экзотичные платформы, которые давно не используются на практике или никогда и не были популярны. В числе процессоров, которые затрагивает патч: Intel Core Duo/Silverthorne, PowerPC e300/e500/e600 и MIPS P5600. Патч опубликован как RFC, то есть выставлен на обсуждение.

Release. Ссылка here.