Как старшно жить

yroslavasako

На баше нашёл забавную историю. Интересно, настолько ли всё плохо, насколько описано.
---------------------------------
Я уже долго занимаюсь виртуализацией на десктопном железе, связанной с IOMMU напрямую. Конкретнее — «пробросом» видеокарты в виртуальную машину.
Позвольте мне привести некую выжимку из ситуации.
Лагерь зелёных производителей видеокарт:
«Энтузиасты занимаются этим, не купив наши профессиональные, ухудшенные и переоценённые видеокарты! Плохо, мы будем обнаруживать сигнатуру гипервизора в CPUID и выключать карту, если она проброшена в виртуальную машину».
«О ужас, они обошли это! Выпускаем новые драйверы, которые обнаруживают расширения Hyper-V и отключают карту. Пусть оно и будет работать без этих расширений, зато медленнее из-за процессора и памяти».
Конечно, в битве брони и снаряда победил энтузиазм: вместо покупки профессиональной карты народ подсовывает прошивку от неё подходящей десктопной карте и меняет её идентификаторы, иногда перепаивая резисторы, иногда программно, на стороне гипервизора. Вы думали, что времена переделки шестой серии зелёных видеокарт в их профессиональные аналоги ушли? Они вернулись.
А у кого-то видеокарта достаточно старая, чтобы использовать старые драйверы без этой замечательной функциональности.
Лагерь синих производителей процессоров и чипсетов:
«Ой, ваш процессор поддерживает данную технологию, а чипсет — нет. Ну и что, что контроллер PCI-E в процессоре и поддержка зависит от прошивки материнской платы, покупайте более дорогую материнскую плату с другим чипсетом». Самое забавное — некоторые производители материнских плат говорят, что всё будет работать: процессор же поддерживает!
«Ой, извините, так получилось: прошивка материнской платы (и производитель тут почти не важен) утверждает, что наши процессоры не изолируют PCI-E-устройства друг от друга, их не получится разделить на группы». Хотя на самом деле изолируют, и приходится прикручивать костыли на уровне ядра.
«Ой, вы купили наисовременнейшую материнскую плату на нашем новейшем чипсете с новейшей технологией памяти DDR4? Вы, несомненно, молодец, только вот наши процессоры разучились изолировать устройства, и костыли не помогут. Печалька».
«Вау, вы купили серверную материнскую плату и наш серверный процессор на базе десктопного! Мы можем порадовать вас улучшенной производительностью, надёжностью, поддержкой различных технологий, очень важных в энтерпрайзе. IOMMU? Ой, мы забыли. Ну, там так же, как на десктопах, разберётесь».
«Вы можете использовать встроенное в процессор видеоядро в качестве видеокарты для хост-системы, но, к сожалению, 2D-ускорение будет недоступно из-за того, что наши драйверы плохо работают с VGA».
И моё любимое: «Мы дружим с опенсорсом! Поэтому мы разработали супертехнологию, которая позволяет разделить наше видеоядро (производительность которого не уступает картам уровня затычки) на несколько виртуальных машин сразу! И планируем включить это в ядро Linux! Правда, у нас есть только прототип, который пока работает со скоростью бесколёсного велосипеда, но за этим будущее!» Действительно, это очень интересная технология, если бы не производительность, из-за которой эта технология никому не сдалась. Будто видеоядро само по себе не тормозит достаточно. Действительно, программной оптимизацией можно выжать из него поразительную мощность, но железо — это не панацея.
Лагерь красных производителей процессоров и видеоядер:
«Наши процессоры поддерживают IOMMU с давних времён, и на нашей производительной линейке десктопных процессоров всё работает как часы. Но наш отдел маркетинга решил прекратить разработку этой линейки процессоров, и основные силы сконцентрировать на…»
«Мы выпустили на их основе гибридные (или — модное маркетинговое слово — гетерогенные) процессоры со встроенным видеоядром! И это видеоядро даже сравнимо по производительности с нашими видеокартами среднего уровня! IOMMU? Ну… Так получилось, вы знаете, первый блин комом… Ну, в общем, вот вам список багов с пометкой „No Fix Planned“ на две страницы. Да, это баги в процессоре. Почему вы удивляетесь багу „Счётчик тактов может испытывать дрейф“? Зато у нас самые удобные видеокарты!»
«Кстати, о видеокартах… Мы рассказали производителям железок, как написать прошивку с поддержкой UEFI, но некоторые провалились. Энтузиасты склеят из двух одну, благо мы два года назад сказали, что блок поддержки UEFI универсальный, а всем остальным это не нужно». Зачем UEFI? Да потому, что если использовать традиционные технологии (VGA и BIOS), то начинаются такие пляски с памятью и прерываниями, что хост-система в панике выключается. И это её поведение прописано в документации. Пляски в том числе. Но если подобрать правильное железо, то всё работает.
«О, а ещё мы заботимся о энергопотреблении наших видеокарт, и их надо выключать особенным образом. Ну да, гипервизор об этом, как обычно, не знает, поэтому для повторного запуска карты надо перезапускать всю систему целиком».
«Хотите подробную документацию или хотя бы базовые спецификации вашего железа? Извините, вы должны подписать NDA. Да, температура перегрева процессора указана в документе под NDA. А зачем вам эти данные?» Но надо отдать должное, та документация, что есть — действительно крутая. Хотя и запутанная местами.
Особенно удивителен тот факт, что особенный способ трансляции памяти, разработанный и синими, и красными, в случае с пробросом видеокарт может ухудшать производительность, хотя вся теория его работы говорит об обратном.
Ещё можно понять и простить мелкомягких, которые ошиблись с реализацией видеодрайвера для UEFI в своей старой, но популярной ОС за седьмым номером. Тогда ещё были старые спецификации, и мир был немного другим. Благо, этот баг разработчики гипервизора научились обходить.
А так — да, всё работает, если грамотно подобрать железо. Можно запустить виртуальную машину с видеокартой и использовать там свои чудесные пакеты обработки изображений, 3D-редакторы и играть в игры сложнее «косынки».
И всё бы ничего, но ведь на основе этих же технологий работает энтерпрайз-ПО!
О да, можно работать в 3D-редакторе по сети с планшета, не беспокоясь о тормозах и безопасности. Только вот «под капотом» там тот же ужас, что и в пользовательском поле.

carusya

«О, а ещё мы заботимся о энергопотреблении наших видеокарт, и их надо выключать особенным образом. Ну да, гипервизор об этом, как обычно, не знает, поэтому для повторного запуска карты надо перезапускать всю систему целиком».
Пробрасывал в гостевую ОС красненькую видеокарту, с этой проблемой действительно столкнулся.
Еще пришлось сменить синенький 3770k на "без k", для того, чтобы заиметь поддержку vt-d.
С матерью, видимо, повезло.

Elen13

а что за тема с "апгредом" видяхи путём перепрошивки?

val412

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

yroslavasako

говорят, игровые нвидевые карты от профессиональных отличаются только названием и драйверами. Внутри стоит тот же чип. Не бракованный, а вообще точно такой же, только в нём прописан другой id-шник. Многие фичи (например количество экранов вывода) дрова начинают поддерживать, только если считают правильный идшник.
В общем, концепция точно такая же, как и у некоторого софта под винду. Если его купили ради "профессиональных" нужд, то он стоит дороже. Я видал, как совершенно одинаковый софт начинает стоит в разы дороже, если он запускается на серверной версии венды. В том смысле, что требует купить более дорогую лицензию, не предоставляя ровным счётом никаких дополнительных фич. Маркетинг.

svetaslav212

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

yroslavasako

Как раз это меня и смущало больше всего. Чтобы не мучиться с проблемами сетевых соединений в XP я перешёл на 2k3, благо студентам всё это раздавали даром для некоммерческих нужд. Было очень обидно обнаружить что некоторые программы, работавшие под XP, перестали работать под 2k3. Из чего я делаю вывод, что назначение использования не при чём.
Но, если подумать, я готов отказаться от "студенческих" версий, если не будет и "профессиональных". Я имею в виду именно идентичную функциональность, а не доплату за дополнительный набор фич.
Оставить комментарий
Имя или ник:
Комментарий: