Виртуализация ввода-вывода Vt-d и IMMOMU (от Интел и AMD)

Модератор: Модераторы разделов

Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение Ism »

AMD IMMOMU
http://developer.amd.com/documentation/art.../892006101.aspx
Inter Vt-d
http://www.intel.com/cd/corporate/europe/e...date/360260.htm

Собственно вопрос, кто нибудь использовал данные технологии на практике ? Дают ли они что нибудь ?
Про эти фишки написано много , но практических примеров и преимуществ использования в гугле мне не попадалось
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение vr13 »

практически пробовалось отдать pci-устройство (ethernet и scsi-контроллер) hvm-domU - винде в моем случае. работает без проблем. по крайней мере, сеть, даже при "большой" нагрузке, работала нормально (в кавычках, т.к я не знаю как создать большую нагрузку на сеть в windows). точно также scsi (у меня через это подключена лента) - узналось и работало

в "боевых условиях", тем не менее, не использовалось по причине практической ненужности названного типа операционных систем

наиболее сейчас модная игра с vt-d (в xen) - отдать hvm-domU видеоадаптер. в текущих версиях xen (4.1.x) вроде бы работает. не пробовал
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение Ism »

наиболее сейчас модная игра с vt-d (в xen) - отдать hvm-domU видеоадаптер. в текущих версиях xen (4.1.x) вроде бы работает. не пробовал

Не совсем понял, получается, что видеокарта может использоваться больше, чем одной виртуалкой или нет ?

То есть при включении гостя с vt-d видеокартой на хост системе экран гаснет (так как с видеокартой работает гость)
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение Bluetooth »

Ism писал(а):
17.10.2011 13:53
наиболее сейчас модная игра с vt-d (в xen) - отдать hvm-domU видеоадаптер. в текущих версиях xen (4.1.x) вроде бы работает. не пробовал

Не совсем понял, получается, что видеокарта может использоваться больше, чем одной виртуалкой или нет ?

То есть при включении гостя с vt-d видеокартой на хост системе экран гаснет (так как с видеокартой работает гость)

Ну, в теории, можно и чтобы гас. Но, вообще, нужно иметь две видеокарты.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение vr13 »

Bluetooth писал(а):
17.10.2011 16:12
Ism писал(а):
17.10.2011 13:53
наиболее сейчас модная игра с vt-d (в xen) - отдать hvm-domU видеоадаптер. в текущих версиях xen (4.1.x) вроде бы работает. не пробовал

Не совсем понял, получается, что видеокарта может использоваться больше, чем одной виртуалкой или нет ?

нет, не может: вы отдаете реальное устройство domU в безраздельное использование

То есть при включении гостя с vt-d видеокартой на хост системе экран гаснет (так как с видеокартой работает гость)

Ну, в теории, можно и чтобы гас. Но, вообще, нужно иметь две видеокарты.

практически - гаснет. собсно только что попробовал. особо не думая, просто как написано тут и тут:

в машине стоит старинный radeon (в графике не используется, только как безмышовая vesa-консоль)

Код: Выделить всё

# lspci|grep ATI
03:00.0 VGA compatible controller: ATI Technologies Inc RV620 LE [Radeon HD 3450]
03:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon HD 34xx Series]
# lspci -ns 03:00.0
03:00.0 0300: 1002:95c5
# lspci -ns 03:00.1
03:00.1 0403: 1002:aa28

отбираем его у dom0:

Код: Выделить всё

# echo "1002 aa28" > /sys/bus/pci/drivers/pci-stub/new_id
# echo "0000:03:00.1" > /sys/bus/pci/devices/0000:03:00.1/driver/unbind
# echo "0000:03:00.1" > /sys/bus/pci/drivers/pci-stub/bind
# echo "1002 95c5" > /sys/bus/pci/drivers/pci-stub/new_id
# echo "0000:03:00.0" > /sys/bus/pci/devices/0000:03:00.0/driver/unbind
# echo "0000:03:00.0" > /sys/bus/pci/drivers/pci-stub/bind

убеждаемся, что доступен:

Код: Выделить всё

# xm pci-list-assignable-devices
0000:03:00.0
0000:03:00.1

правим конфиг hvm:

Код: Выделить всё

# cat /etc/xen/winxp
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
...
gfx_passthru=1
pci=['03:00.0','03:00.1']

запускаем:

Код: Выделить всё

# xm create winxp

экран консоли действительно гаснет. в двух случаях (из трех) повисло сразу, в третьем - на несколько секунд экран засветился виндовым цветом, но потом все равно повисло до ресета

в логах hvm builder все слова вроде бы верные:

Код: Выделить всё

...
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 03:00.0 ...
register_real_device: Enable MSI translation via per device option
register_real_device: Disable power management
pt_iomul_init: Error: pt_iomul_init: No such device: setup io multiplexing failed! 0x3:0x0.0x0
pt_register_regions: IO region registered (size=0x10000000 base_addr=0xe000000c)
pt_register_regions: IO region registered (size=0x00010000 base_addr=0xd0300004)
pt_register_regions: IO region registered (size=0x00000100 base_addr=0x00004001)
pt_register_regions: Expansion ROM registered (size=0x00020000 base_addr=0xd0320002)
pt_msi_setup: msi mapped with pirq 37
pci_intx: intx=1
register_real_device: Real physical device 03:00.0 registered successfuly!
IRQ type = MSI-INTx
...

справедливости ради, надо сказать, что нигде не обещается что ati-железки точно будут работать (см ссылки выше)
на всякий случай повторю, что mainboard в смысле iommu - кошерный (3com и adaptec отдавались hvm-domU без проблем):

Код: Выделить всё

# xm dmesg|grep -i -e vt-d -e i/o
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) Intel VT-d Snoop Control enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Shared EPT tables not enabled.
(XEN) I/O virtualisation enabled

Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Виртуализация ввода-вывода Vt-d и IMMOMU

Сообщение Ism »

Спасибо ! Теперь понятно зачем это :)
Спасибо сказали: