> Гипервизор все равно должен выполнять трансляцию адресов памяти так или иначеГипервизор должен настроить EPT/NPT, чтобы трансляция адресов выполнялась в железе. Это делается один раз при старте ячейки.
> все равно должен пропускать черезз себя io
Да, если он его эмулирует. Нет, если просто сегрегирует и пробрасывает - опять же, достаточно настроить I/O bitmap и таблицы VTD/AMD-Vi. И это опять же делается один раз.
В общем, если коротко: и Intel (в несколько большей степени), и AMD (в чуть меньшей) за последние пару-тройку лет худо-бедно продвинулись в направлении "Zero VM exits" - в смысле, выполнения гостя с минимальными (желательно, нулевыми) выходами в гипервизор.
Хотя в одном Вы правы - именно по этим причинам KVM не подходит для всех RT-задач. Кое для каких - подходит, и успешно работает. Собственно, если послушать первые презентации Jailhouse, там прямо говорится, что проект запустили после того, как не удалось решить на KVM все имеющиеся задачи.