LINUX.ORG.RU
ФорумAdmin

GPU passthrough proxmox

 , ,


0

1

Всем привет. Пытаюсь пробросить GPU в виртуалку, что бы запускать софт, который требует наличие совместимой видеокарты, но что то не плучается, при попытке запустить VM с pci-портом GPU отваливаются диски на хосте, перечитал много форумов, такой проблемы нигде не встретил, другие устройства, например, сетевая карта, пробрасываются на ура. Что можно сделать в таком случае? Очень нужно пробросить GPU.

при запуске VM на хосте:

[Птн Авг 17 12:37:22 2018] sd 0:1:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[Птн Авг 17 12:37:22 2018] sd 0:1:0:0: [sda] tag#0 CDB: Write(10) 2a 00 00 d9 ce 68 00 00 10 00
[Птн Авг 17 12:37:22 2018] print_req_error: I/O error, dev sda, sector 14274152
[Птн Авг 17 12:37:22 2018] EXT4-fs warning (device sda1): ext4_end_bio:323: I/O error 10 writing to inode 5115878 (offset 0 size 0 starting block 1784270)
[Птн Авг 17 12:37:22 2018] Buffer I/O error on device sda1, logical block 1784013
[Птн Авг 17 12:37:22 2018] EXT4-fs warning (device sda1): ext4_end_bio:323: I/O error 10 writing to inode 5115878 (offset 712704 size 4096 starting block 1784271)
[Птн Авг 17 12:37:22 2018] Buffer I/O error on device sda1, logical block 1784014
[Птн Авг 17 12:37:22 2018] JBD2: Detected IO errors while flushing file data on sda1-8
[Птн Авг 17 12:37:22 2018] sd 0:1:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[Птн Авг 17 12:37:22 2018] sd 0:1:0:0: [sda] tag#0 CDB: Write(10) 2a 00 05 45 7c 60 00 00 b0 00
[Птн Авг 17 12:37:22 2018] print_req_error: I/O error, dev sda, sector 88439904
[Птн Авг 17 12:37:22 2018] Aborting journal on device sda1-8.

lspci -nnk

00:00.0 Host bridge [0600]: Intel Corporation Skylake Host Bridge/DRAM Registers [8086:1918] (rev 07)
	Subsystem: Super Micro Computer Inc Skylake Host Bridge/DRAM Registers [15d9:0885]
	Kernel driver in use: ie31200_edac
	Kernel modules: ie31200_edac
00:01.0 PCI bridge [0604]: Intel Corporation Skylake PCIe Controller (x16) [8086:1901] (rev 07)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:01.1 PCI bridge [0604]: Intel Corporation Skylake PCIe Controller (x8) [8086:1905] (rev 07)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:13.0 Non-VGA unclassified device [0000]: Intel Corporation Sunrise Point-H Integrated Sensor Hub [8086:a135] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H Integrated Sensor Hub [15d9:0885]
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H USB 3.0 xHCI Controller [15d9:0885]
	Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H Thermal subsystem [15d9:0885]
	Kernel driver in use: intel_pch_thermal
	Kernel modules: intel_pch_thermal
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H CSME HECI [15d9:0885]
	Kernel modules: mei_me
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #5 [8086:a114] (rev f1)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #6 [8086:a115] (rev f1)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1c.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #7 [8086:a116] (rev f1)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14a] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H LPC Controller [15d9:0885]
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H PMC [15d9:0885]
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)
	Subsystem: Super Micro Computer Inc Sunrise Point-H SMBus [15d9:0885]
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] [10de:1380] (rev a2)
	Subsystem: ASUSTeK Computer Inc. GM107 [GeForce GTX 750 Ti] [1043:84be]
	Kernel driver in use: vfio-pci
	Kernel modules: nvidiafb, nouveau
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fbc] (rev a1)
	Subsystem: ASUSTeK Computer Inc. Device [1043:84be]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel
02:00.0 Serial Attached SCSI controller [0107]: LSI Logic / Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3 [1000:0097] (rev 02)
	Subsystem: Super Micro Computer Inc SAS3008 PCI-Express Fusion-MPT SAS-3 [15d9:0808]
	Kernel driver in use: mpt3sas
	Kernel modules: mpt3sas
03:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
	Subsystem: Super Micro Computer Inc I210 Gigabit Network Connection [15d9:1533]
	Kernel driver in use: igb
	Kernel modules: igb
04:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
	Subsystem: Super Micro Computer Inc I210 Gigabit Network Connection [15d9:1533]
	Kernel driver in use: igb
	Kernel modules: igb
05:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 03)
	Kernel modules: shpchp
06:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 30)
	Subsystem: Super Micro Computer Inc ASPEED Graphics Family [15d9:0885]
	Kernel driver in use: ast
	Kernel modules: ast
07:00.0 Ethernet controller [0200]: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] [15b3:6750] (rev b0)
	Subsystem: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] [15b3:0015]
	Kernel driver in use: mlx4_core
	Kernel modules: mlx4_core

lspci -s 01:00 -n

01:00.0 0300: 10de:1380 (rev a2)
01:00.1 0403: 10de:0fbc (rev a1)

cat /etc/modprobe.d/vfio.conf

options vfio-pci ids=10de:1380,10de:0fbc

cat /etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on quiet"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=true

cat /etc/pve/qemu-server/100.conf 
bios: ovmf
boot: dc
bootdisk: sata0
cores: 8
cpu: host,hidden=1
efidisk0: local:100/vm-100-disk-3.raw,size=128K
hostpci0: 01:00,x-vga=on,pcie=1
ide2: local:iso/Win10_1803_Russian_x64.iso,media=cdrom
machine: q35
memory: 4096
name: Windows10-GPU
net0: e1000=2A:3F:A7:E1:13:83,bridge=vmbr1
numa: 1
onboot: 0
ostype: win10
sata0: local:100/vm-100-disk-4.raw,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=796f3dfb-c2ab-4c10-b803-04d6b62c32f4
sockets: 1
vga: qxl

cat /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

lsmod | grep vfio

vfio_pci               45056  0
vfio_virqfd            16384  1 vfio_pci
irqbypass              16384  2 kvm,vfio_pci
vfio_iommu_type1       24576  0
vfio                   28672  2 vfio_iommu_type1,vfio_pci

dmesg -T | grep -i vfio

[Птн Авг 17 13:03:26 2018] VFIO - User Level meta-driver version: 0.3
[Птн Авг 17 13:03:26 2018] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=none
[Птн Авг 17 13:03:26 2018] vfio_pci: add [10de:1380[ffff:ffff]] class 0x000000/00000000
[Птн Авг 17 13:03:26 2018] vfio_pci: add [10de:0fbc[ffff:ffff]] class 0x000000/00000000


machine: q35

Попробуй поменять на i440FX. Q35 - зло.

anonymous
()

Кстати, я хотел поинтересоваться по-поводу следующего:

другие устройства, например, сетевая карта, пробрасываются на ура

Из каких PCI-e портов они пробрасываются? Если ты их в порт, в который сейчас подключена видеокарта, воткнешь - работать они будут?

отваливаются диски на хосте

Вообще все? Диски подключены к SATA/SAS-портам материнской платы?

anonymous
()

Судя по первому логу в том, что отваливаются диски, нет ничего удивительного. smartctl -a /dev/sda покажите.

keir ★★
()
Ответ на: комментарий от anonymous

Если ты их в порт, в который сейчас подключена видеокарта, воткнешь - работать они будут?

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

Вообще все? Диски подключены к SATA/SAS-портам материнской платы?

Их всего 2, собраны они в raid 1 на LSI Fusion-MPT SAS3008. еще, кстати, при включении VM в dmesg появляется следующее:

[Птн Авг 17 11:55:16 2018] mpt3sas_cm0: IR shutdown (sending)
[Птн Авг 17 11:55:16 2018] mpt3sas_cm0: IR shutdown (complete): ioc_status(0x0000), loginfo(0x00000000)
[Птн Авг 17 11:55:16 2018] sd 0:1:0:0: RAID REMOVE
[Птн Авг 17 11:55:16 2018] sd 0:1:0:0: RAID REMOVE DONE
Sherman
() автор топика
Ответ на: комментарий от dimon555

dmesg | grep iommu

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.18-1-pve root=UUID=588465b7-70b1-4ba7-852b-b363f7b969f8 ro intel_iommu=on quiet
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.18-1-pve root=UUID=588465b7-70b1-4ba7-852b-b363f7b969f8 ro intel_iommu=on quiet
[    0.563056] iommu: Adding device 0000:00:00.0 to group 0
[    0.563070] iommu: Adding device 0000:00:01.0 to group 1
[    0.563076] iommu: Adding device 0000:00:01.1 to group 1
[    0.563081] iommu: Adding device 0000:00:13.0 to group 2
[    0.563089] iommu: Adding device 0000:00:14.0 to group 3
[    0.563093] iommu: Adding device 0000:00:14.2 to group 3
[    0.563103] iommu: Adding device 0000:00:16.0 to group 4
[    0.563120] iommu: Adding device 0000:00:1c.0 to group 5
[    0.563131] iommu: Adding device 0000:00:1c.5 to group 6
[    0.563141] iommu: Adding device 0000:00:1c.6 to group 7
[    0.563152] iommu: Adding device 0000:00:1d.0 to group 8
[    0.563162] iommu: Adding device 0000:00:1f.0 to group 9
[    0.563166] iommu: Adding device 0000:00:1f.2 to group 9
[    0.563171] iommu: Adding device 0000:00:1f.4 to group 9
[    0.563175] iommu: Adding device 0000:01:00.0 to group 1
[    0.563178] iommu: Adding device 0000:01:00.1 to group 1
[    0.563182] iommu: Adding device 0000:02:00.0 to group 1
[    0.563200] iommu: Adding device 0000:03:00.0 to group 10
[    0.563210] iommu: Adding device 0000:04:00.0 to group 11
[    0.563221] iommu: Adding device 0000:05:00.0 to group 12
[    0.563223] iommu: Adding device 0000:06:00.0 to group 12
[    0.563233] iommu: Adding device 0000:07:00.0 to group 13

Sherman
() автор топика
Ответ на: комментарий от dimon555

если я правильно понял, то вывод команды выше означает, что карточка и raid-контроллер подключены к одному порту через какой нибудь pci-e extender?

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

[ 0.563175] iommu: Adding device 0000:01:00.0 to group 1
[ 0.563178] iommu: Adding device 0000:01:00.1 to group 1
[ 0.563182] iommu: Adding device 0000:02:00.0 to group 1

вот они в одной группе, под управление vfio-pci передаётся группа польностью.

https://heiko-sieger.info/iommu-groups-what-you-need-to-consider/

Вот это попробуй.
Ключевое слово для поиска будет pcie_acs_override

No matter what you tried, your system doesn’t have good device isolation. As a last resort, apply the ACS override patch (see instructions here), or – much more convenient – use the latest kernel builds with the ACS override patch provided by Max Ehrlich. The builds are supplied as .deb files based on Ubuntu and can be installed via the packet manager.
After you installed the patched kernel, you must activate the ACS override by inserting “pcie_acs_override=downstream” after the …iommu=on option in /etc/default/grub, then run update-grub.

dimon555 ★★★★★
()
Ответ на: комментарий от Sherman

Нет, тут скорее всего особенности реализации групп IOMMU на самой материнке. Не лечится ничем, кроме смены порта для PCI-e устройств или самой материнки. (В редких случаях еще BIOS-ом вендора)

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

если я правильно понял, то вывод команды выше означает, что карточка и raid-контроллер подключены к одному порту через какой нибудь pci-e extender?

они попали в одну группу, потому что висят на одном pci express свитче, который не умеет ACS.

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

dimon555 ★★★★★
()
Ответ на: комментарий от anonymous

ACS-патч — это говно. Не используйте ACS-патч.

девайсы, вставляемые в слоты, не используют p2p транзакции.

девайсы внутри чипсета, тоже не используют pci express p2p транзакции, они по другой шине общаются, которая iommu никак не контролируется.

dimon555 ★★★★★
()

Безопасность мне ни к чему, это тестовый стенд, помогло добавление параметра pcie_acs_override=downstream,multifunction и options vfio_iommu_type1 allow_unsafe_interrupts=1 в /etc/modprobe.d/iommu_unsafe_interrupts.conf Всем спасибо

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