LINUX.ORG.RU

виртуализация и cpuflags

 , , , ,


0

2

Добрый день, лор,

Я не сильно силен в виртуализации, поэтому есть такой вопрос.

Есть сервак с кучей виртуалок, на виртуалках через cat /proc/cpuinfo видно имя(поколение, имя проца, модель) в точности такое же как у хостовой машины. Но не видны все флаги. В частности на хостовой видны: avx512f, avx512cd, avx512vl, avx512dq, avx512bw. А на госте только avx512f, avx512cd.

Насколько мне известно виртуальная машина настроена так, чтобы она предоставляла модель процессора хоста. Раньше все было настроено несколько иначе и даже avx512f в флагах отсутствовал, а простейшие avx512f инструкции вызывали крэши(теперь нет).

Пробовал запускать на госте бинарники(простые самописные тесты), которые содержат инструкции и cpu_flags хоста. Они работают, но полной уверенности нет.

Поискав в интернете мы нашли такой патч

https://lore.kernel.org/patchwork/patch/702644/

Который по идее должен решать эту проблему. НО 1) у нас ядро сильно(сильно-сильно) старее этого 2) обновить и пропатчить будет затруднительно с точки зрения организационной, бизнес задач и принципа «работает - не трожь».

Правильно ли я понимаю, что этот патч просто позволяет пробросить эти флаги в cpu_flags гостя и напрямую на поддерживаемый набор инструкций в виртуалке не влияет? (Возможно только на приложения которые в реалтайме проверяют cpuf_flags). Или все же влияет?

UDP: Раньше в виртуальной машине явно задавалась модель проца, да не хостовая. Флагов видно не было, любой avx512 код падал. Теперь видны avx512f и cd, а все выглядит словно работает ВСЕ тоже что и на хосте.

★★★★★

Последнее исправление: Dudraug (всего исправлений: 6)

На сколько я могу судить, у Вас kvm-qemu? Если да, то с каким параметром "-cpu" запускаются виртуалки? Для полного проброса хостового CPU в геста, нужно запускать с параметром "-cpu host".

funky
()
Ответ на: комментарий от funky

У нас своя доработаная система на основе опен-стека. И вся настройка виртуалок там организована через свои конфиги и гуевые веб-тулы, я так понимаю, что там все работает через libvirt. Единственное что я точно знаю, что там выставлена «Passthrough» в модели cpu, раньше был выставлен или host или модель проца из списка.

Dudraug ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.