You are not logged in.

#3601 2014-12-17 05:41:23

anthonym52
Member
Registered: 2014-12-07
Posts: 10

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

anthonym52 wrote:
thearcherblog wrote:

This is the command I use to start the qemu:

qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp 4,sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -cdrom /home/jgomez/Downloads/virtio.iso -device vfio-pci,host=01:00.0,multifunction=on,x-vga=on -device vfio-pci,host=01:00.1 -device vfio-pci,host=00:19.0 -usb -usbdevice host:046d:c52e -net none -vga none -nographic

Regards,


TheArcher


I can't seem to get the PCI stub ID claimed, both interfaces have the same ID, do your IDs match as well?

05:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]
06:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]


[anthony:/home/anthony] 7s $ dmesg |grep -i claim
[    0.332788] pci 0000:00:1f.0: quirk: [io  0x0500-0x053f] claimed by ICH6 GPIO
[    4.332685] pci-stub 0000:03:00.0: claimed by stub
[    4.332702] pci-stub 0000:03:00.1: claimed by stub


I got this working by using: echo 1 > /sys/module/kvm/parameters/allow_unsafe_assigned_interrupts and using pci-assign (the NICs are in the same IOMMU group but I have disabled eth1 as much as possible on the host -- is this safe?)

Also, I'm trying OVMF to see if I can improve reliability with boots -- what is 'OVMF_VARS-pure-efi.fd ' and why do I need it? Also how do I get my HDD booted -- I end up at the UEFI interactive shell each time:

QEMU_PA_SAMPLES=8192 QEMU_AUDIO_DRV=pa \
$QEMU \
-boot menu=on \
-drive if=pflash,format=raw,readonly,file=/home/anthony/ovmf-x64/OVMF-pure-efi.fd \
-enable-kvm -cpu host,kvm=off -rtc base=localtime \
-m $MEM $HUGE -smp 8,sockets=1,cores=4,threads=4 \
-vga std \
-device intel-hda -device hda-output \
-device vfio-pci,host=$GPU,addr=04.0,multifunction=on,x-vga=on \
-device vfio-pci,host=$AUDIO,addr=04.1 \
-device pci-assign,host=06:00.0 \
-drive file=$DISK,cache=none,if=none,id=drive0,aio=threads \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 \
-net none \
-vnc :0 -k en-us

Offline

#3602 2014-12-17 06:00:34

Krobar
Member
Registered: 2014-04-12
Posts: 17

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

anthonym52 wrote:
thearcherblog wrote:

This is the command I use to start the qemu:

qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp 4,sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -cdrom /home/jgomez/Downloads/virtio.iso -device vfio-pci,host=01:00.0,multifunction=on,x-vga=on -device vfio-pci,host=01:00.1 -device vfio-pci,host=00:19.0 -usb -usbdevice host:046d:c52e -net none -vga none -nographic

Regards,


TheArcher


I can't seem to get the PCI stub ID claimed, both interfaces have the same ID, do your IDs match as well?

05:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]
06:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]


[anthony:/home/anthony] 7s $ dmesg |grep -i claim
[    0.332788] pci 0000:00:1f.0: quirk: [io  0x0500-0x053f] claimed by ICH6 GPIO
[    4.332685] pci-stub 0000:03:00.0: claimed by stub
[    4.332702] pci-stub 0000:03:00.1: claimed by stub

Yes its normal for them to match, I use 82574Ls and they are independent controllers so it should work. I'm a virsh user but this is all I do to bind an 82574L on 04:00.0 (It definitely works independently as the other controller is used by the host:
echo "8086 10d3" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:04:00.0 > /sys/bus/pci/devices/0000:04:00.0/driver/unbind
echo 0000:04:00.0 > /sys/bus/pci/drivers/pci-stub/bind
vfio-bind 0000:04:00.0
virsh create ~/VM/Router.xml

Router.xml:
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.0,bus=pcie.0'/>

For those who are interested I switched the GPU to an R5-230 Radeon and my reboot issue disappeared.

Offline

#3603 2014-12-17 06:02:33

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

anthonym52 wrote:
thearcherblog wrote:

This is the command I use to start the qemu:

qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp 4,sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -cdrom /home/jgomez/Downloads/virtio.iso -device vfio-pci,host=01:00.0,multifunction=on,x-vga=on -device vfio-pci,host=01:00.1 -device vfio-pci,host=00:19.0 -usb -usbdevice host:046d:c52e -net none -vga none -nographic

Regards,


TheArcher


I can't seem to get the PCI stub ID claimed, both interfaces have the same ID, do your IDs match as well?

05:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]
06:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]


[anthony:/home/anthony] 7s $ dmesg |grep -i claim
[    0.332788] pci 0000:00:1f.0: quirk: [io  0x0500-0x053f] claimed by ICH6 GPIO
[    4.332685] pci-stub 0000:03:00.0: claimed by stub
[    4.332702] pci-stub 0000:03:00.1: claimed by stub

No, I have different ID's...

[jgomez@mycolonialone ~]$ lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)

Offline

#3604 2014-12-17 06:05:09

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

magemaster wrote:

Someone else using with arch kernel?

uname -a

Linux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux

cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-linux root=UUID=e9f18698-c70a-41f6-b5c6-c84a8e7eac85 rw quiet rdblacklist=nouveau nouveau.modeset=0 pci-stub.ids=10de:10c3,10de:0be3 intel_pstate=disable i915.enable_hd_vgaarb=1 intel_iommu=on,igfx_off quiet

Tried this way,  based on thearcherblog, gave me no error, but no screen

sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,kvm=off -m 2048 -smp 2,sockets=1,cores=2 -serial none -parallel none -nodefconfig \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/ovmf_x64.bin \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 \
-device virtio-scsi-pci,id=scsi \
-drive file=/home/user/windows.img,cache=writeback,if=none,id=drive0,aio=native \
-drive file=/home/user/Win81.iso,id=iso_install,if=none \
-device scsi-cd,drive=iso_install \
-cdrom /home/user/Downloads/virtio.iso \
-device vfio-pci,host=01:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1 \
-net none \
-vga none \
-boot menu=on \
-nographic

and this way, based on nbhs, gave me this error: KVM internal error. Suberror: 1 emulation failure

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host \
-smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

I also got the black screen but someone suggested me to have this (and works for me smile):

[jgomez@mycolonialone etc]$ cat /etc/modprobe.d/qemu_kvm.conf
options kvm ignore_msrs=1
options intel_kvm emulate_invalid_guest_state=0
options intel_kvm nested=1
options intel_kvm enable_shadow_vmcs=1
options intel_kvm enable_apicv=1
options intel_kvm ept=1
#options vfio_pci nointxmask=1
options vfio_iommu_type1 disable_hugepages=1
options vfio_iommu_type1 allow_unsafe_interrupts=1

Regards smile

Offline

#3605 2014-12-17 06:14:52

anthonym52
Member
Registered: 2014-12-07
Posts: 10

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference -- but I'm really just posting to show off this: u4fJxyt.jpg

Offline

#3606 2014-12-17 06:26:21

Krobar
Member
Registered: 2014-04-12
Posts: 17

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Glad to hear it works well. Sorry about the confusion I had gotten your config and posts muddled with anthonym52.

Offline

#3607 2014-12-17 06:26:27

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

anthonym52 wrote:

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference

So now you're limiting your NIC bandwidth to the wire speed and going out to an external switch whereas you could have had 10s of gigabits through an internal bridge to have seamless window mode of your Windows VM onto your Linux desktop?


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

#3608 2014-12-17 06:30:54

anthonym52
Member
Registered: 2014-12-07
Posts: 10

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

aw wrote:
anthonym52 wrote:

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference

So now you're limiting your NIC bandwidth to the wire speed and going out to an external switch whereas you could have had 10s of gigabits through an internal bridge to have seamless window mode of your Windows VM onto your Linux desktop?

That is a good point, I just wanted to try it out -- seems to preform a bit better but I need to do more benchmarks. BTW, this isn't 'seamless window mode' it's picture-by-picture (a hardware feature of my monitor).

Edit: (This is the reason for the off screen camera image)

Last edited by anthonym52 (2014-12-17 06:33:05)

Offline

#3609 2014-12-17 09:34:23

Duelist
Member
Registered: 2014-09-22
Posts: 358

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

anthonym52 wrote:

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference -- but I'm really just posting to show off this: http://i.imgur.com/u4fJxyt.jpg

Damn, this looks AWESOME!
Especially when you match the wallpaper.
What's the model number?
It's awesomely better than having two separate screens(1280x1024 and 1920x1080). Can you press a button and make that screen appear "double-wide" to the system, running windows(or linux) on native resolution?

Two full-featured(almost) PCs in one case and two screens in one. I think i need a two-in-one keyboard, with a hardware KVM switch built into:D


The forum rules prohibit requesting support for distributions other than arch.
I gave up. It was too late.
What I was trying to do.
The reference about VFIO and KVM VGA passthrough.

Offline

#3610 2014-12-17 09:43:51

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Duelist wrote:
anthonym52 wrote:

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference -- but I'm really just posting to show off this: http://i.imgur.com/u4fJxyt.jpg

Damn, this looks AWESOME!
Especially when you match the wallpaper.
What's the model number?
It's awesomely better than having two separate screens(1280x1024 and 1920x1080). Can you press a button and make that screen appear "double-wide" to the system, running windows(or linux) on native resolution?

Two full-featured(almost) PCs in one case and two screens in one. I think i need a two-in-one keyboard, with a hardware KVM switch built into:D

Can be the new Philips Monitor presented this summer? smile Looks pretty cool smile

Offline

#3611 2014-12-17 11:05:48

Duelist
Member
Registered: 2014-09-22
Posts: 358

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

thearcherblog wrote:
Duelist wrote:
anthonym52 wrote:

My geekbench results are near native after passing through my NIC controller.. not sure why it's making a difference -- but I'm really just posting to show off this: http://i.imgur.com/u4fJxyt.jpg

Damn, this looks AWESOME!
Especially when you match the wallpaper.
What's the model number?
It's awesomely better than having two separate screens(1280x1024 and 1920x1080). Can you press a button and make that screen appear "double-wide" to the system, running windows(or linux) on native resolution?

Two full-featured(almost) PCs in one case and two screens in one. I think i need a two-in-one keyboard, with a hardware KVM switch built into:D

Can be the new Philips Monitor presented this summer? smile Looks pretty cool smile

The photo clearly says LG on the screen's bottom.
In fact, it's no new feature - my old(somewhere around 2002, i think)philips CRT TV can do that with television channels, it's a variation of traditional picture-by-picture.
I'm interested in that particular ultra-wide screen.


The forum rules prohibit requesting support for distributions other than arch.
I gave up. It was too late.
What I was trying to do.
The reference about VFIO and KVM VGA passthrough.

Offline

#3612 2014-12-17 11:59:44

anthonym52
Member
Registered: 2014-12-07
Posts: 10

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

The photo clearly says LG on the screen's bottom.
In fact, it's no new feature - my old(somewhere around 2002, i think)philips CRT TV can do that with television channels, it's a variation of traditional picture-by-picture.
I'm interested in that particular ultra-wide screen.

http://www.lg.com/us/monitors/lg-34UM95 … de-monitor

I knew you guys would appreciate how cool this looks -- I've been lurking this thread for awhile and when I came across this monitor I thought it would be rather novel to give this setup a try (haven't been this excited about Linux since the compiz days!).

Now I have a few questions about OVMF:

Why doesn't it boot my virtual disk? Secondly, what is OVMF_varsxxx.fd for?

Here is my franken-fig (there are other bits to it, but this is the meat and potatoes):

QEMU_PA_SAMPLES=8192 QEMU_AUDIO_DRV=pa \
$QEMU \
-boot menu=on \
-drive if=pflash,format=raw,readonly,file=/home/anthony/ovmf-x64/OVMF-pure-efi.fd \
-drive if=pflash,format=raw,file=/home/anthony/ovmf-x64/OVMF_VARS-pure-efi.fd \
-enable-kvm -cpu host,kvm=off -rtc base=localtime \
-m $MEM $HUGE -smp 8,sockets=1,cores=4,threads=4 \
-vga std \
-device intel-hda -device hda-output \
-device vfio-pci,host=$GPU,addr=04.0,multifunction=on,x-vga=on \
-device vfio-pci,host=$AUDIO,addr=04.1 \
-device pci-assign,host=06:00.0 \
-drive file=$DISK,cache=none,if=none,id=drive0,aio=threads \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 \
-net none \
-vnc :0 -k en-us

Offline

#3613 2014-12-17 12:15:02

magemaster
Member
From: Brasil
Registered: 2010-11-24
Posts: 16

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

thearcherblog wrote:
magemaster wrote:

Someone else using with arch kernel?

uname -a

Linux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux

cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-linux root=UUID=e9f18698-c70a-41f6-b5c6-c84a8e7eac85 rw quiet rdblacklist=nouveau nouveau.modeset=0 pci-stub.ids=10de:10c3,10de:0be3 intel_pstate=disable i915.enable_hd_vgaarb=1 intel_iommu=on,igfx_off quiet

Tried this way,  based on thearcherblog, gave me no error, but no screen

sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,kvm=off -m 2048 -smp 2,sockets=1,cores=2 -serial none -parallel none -nodefconfig \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/ovmf_x64.bin \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 \
-device virtio-scsi-pci,id=scsi \
-drive file=/home/user/windows.img,cache=writeback,if=none,id=drive0,aio=native \
-drive file=/home/user/Win81.iso,id=iso_install,if=none \
-device scsi-cd,drive=iso_install \
-cdrom /home/user/Downloads/virtio.iso \
-device vfio-pci,host=01:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1 \
-net none \
-vga none \
-boot menu=on \
-nographic

and this way, based on nbhs, gave me this error: KVM internal error. Suberror: 1 emulation failure

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host \
-smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

I also got the black screen but someone suggested me to have this (and works for me smile):

[jgomez@mycolonialone etc]$ cat /etc/modprobe.d/qemu_kvm.conf
options kvm ignore_msrs=1
options intel_kvm emulate_invalid_guest_state=0
options intel_kvm nested=1
options intel_kvm enable_shadow_vmcs=1
options intel_kvm enable_apicv=1
options intel_kvm ept=1
#options vfio_pci nointxmask=1
options vfio_iommu_type1 disable_hugepages=1
options vfio_iommu_type1 allow_unsafe_interrupts=1

Regards smile

Thank you, I installed with the emulated vga as primary and the passthrough as secondary to see what happens, could install nvidia drivers but got Code 43 error, which appears to be fixed with a patch from the 1st post.

PS: your qemu_kvm.conf has "intel_kvm" but in my machine the module name is "kvm_intel"

Offline

#3614 2014-12-17 13:20:13

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

magemaster wrote:
thearcherblog wrote:
magemaster wrote:

Someone else using with arch kernel?

uname -a

Linux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux

cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-linux root=UUID=e9f18698-c70a-41f6-b5c6-c84a8e7eac85 rw quiet rdblacklist=nouveau nouveau.modeset=0 pci-stub.ids=10de:10c3,10de:0be3 intel_pstate=disable i915.enable_hd_vgaarb=1 intel_iommu=on,igfx_off quiet

Tried this way,  based on thearcherblog, gave me no error, but no screen

sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,kvm=off -m 2048 -smp 2,sockets=1,cores=2 -serial none -parallel none -nodefconfig \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/ovmf_x64.bin \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 \
-device virtio-scsi-pci,id=scsi \
-drive file=/home/user/windows.img,cache=writeback,if=none,id=drive0,aio=native \
-drive file=/home/user/Win81.iso,id=iso_install,if=none \
-device scsi-cd,drive=iso_install \
-cdrom /home/user/Downloads/virtio.iso \
-device vfio-pci,host=01:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1 \
-net none \
-vga none \
-boot menu=on \
-nographic

and this way, based on nbhs, gave me this error: KVM internal error. Suberror: 1 emulation failure

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host \
-smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

I also got the black screen but someone suggested me to have this (and works for me smile):

[jgomez@mycolonialone etc]$ cat /etc/modprobe.d/qemu_kvm.conf
options kvm ignore_msrs=1
options intel_kvm emulate_invalid_guest_state=0
options intel_kvm nested=1
options intel_kvm enable_shadow_vmcs=1
options intel_kvm enable_apicv=1
options intel_kvm ept=1
#options vfio_pci nointxmask=1
options vfio_iommu_type1 disable_hugepages=1
options vfio_iommu_type1 allow_unsafe_interrupts=1

Regards smile

Thank you, I installed with the emulated vga as primary and the passthrough as secondary to see what happens, could install nvidia drivers but got Code 43 error, which appears to be fixed with a patch from the 1st post.

PS: your qemu_kvm.conf has "intel_kvm" but in my machine the module name is "kvm_intel"

Happy that works for you smile

To be honest, I do not know anything about the qemu_kvm.conf and, even, when I made a few tests, is a mess because sometimes I get the error 43 and then I need to remove the driver and install it again (because setting the options back does not help until reinstall drivers)... so.... I'm not expert at all; probably some of the Gurus here can give you real information about what makes every option smile

Offline

#3615 2014-12-17 14:56:40

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Duelist wrote:
thearcherblog wrote:
Duelist wrote:

Damn, this looks AWESOME!
Especially when you match the wallpaper.
What's the model number?
It's awesomely better than having two separate screens(1280x1024 and 1920x1080). Can you press a button and make that screen appear "double-wide" to the system, running windows(or linux) on native resolution?

Two full-featured(almost) PCs in one case and two screens in one. I think i need a two-in-one keyboard, with a hardware KVM switch built into:D

Can be the new Philips Monitor presented this summer? smile Looks pretty cool smile

The photo clearly says LG on the screen's bottom.
In fact, it's no new feature - my old(somewhere around 2002, i think)philips CRT TV can do that with television channels, it's a variation of traditional picture-by-picture.
I'm interested in that particular ultra-wide screen.

My Dell U2913WM can do this too, but I've never used it.  You have to ask yourself if two 1280x1080 desktops, side-by-side w/o a seam is really all that useful for you.  In my case I do all my work on a Linux desktop and Windows is a test/toy.  I wouldn't sacrifice primary real estate for Windows.  Maybe the LG shown is 4k, but it still wouldn't make sense for my use case, no matter how pretty is is.


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

#3616 2014-12-17 16:58:22

ebol4
Member
Registered: 2014-12-17
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

I spent most of yesterday getting QEMU with KVM set up on my system. I compiled an up-to-date version of QEMU on my own. I'm getting Code 43 in Windows 7's device manager after installing the NVIDIA drivers (version 335.23, to avoid the KVM detection issues).

Specs:
ASUS z97-AR
i5 4690k
GTX 660

The HDMI audio device I passed through with the VGA device appears to work just fine! No yellow bang next to the audio device. IOMMU and Vt-d are supported by my motherboard and processor, so no issues there.

sudo /home/ian/qemu/qemu/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -M pc \
-m 4096 \
-cpu host,kvm=off \
-bios /usr/share/qemu/bios.bin -vga cirrus \
-smp cores=4,threads=1,sockets=1 \
-device pci-assign,host=01:00.0 \
-device pci-assign,host=01:00.1 \
-hda /home/ian/windows.img -cdrom /home/ian/windows.iso \
-boot menu=on
BOOT_IMAGE=/boot/vmlinuz-3.13.0-32-generic root=UUID=db818228-48ec-49b8-997b-163fa46c6ea0 ro quiet splash i915.enable_hd_vgaarb=1 intel_iommu=on pci-stub.ids=10de:11c0,10de:0e0b vfio_iommu_type1.allow_unsafe_interrupts=1 vt.handoff=7

Any ideas? Using QEMU 2.2.50.

Last edited by ebol4 (2014-12-17 17:00:05)

Offline

#3617 2014-12-17 17:01:48

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

ebol4 wrote:

I spent most of yesterday getting QEMU with KVM set up on my system. I compiled an up-to-date version of QEMU on my own. I'm getting Code 43 in Windows 7's device manager after installing the NVIDIA drivers (version 335.23, to avoid the KVM detection issues).

Specs:
ASUS z97-AR
i5 4690k
GTX 660

The HDMI audio device I passed through with the VGA device appears to work just fine! No yellow bang next to the audio device. IOMMU and Vt-d are supported by my motherboard and processor, so no issues there.

sudo /home/ian/qemu/qemu/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -M pc \
-m 4096 \
-cpu host,kvm=off \
-bios /usr/share/qemu/bios.bin -vga cirrus \
-smp cores=4,threads=1,sockets=1 \
-device pci-assign,host=01:00.0 \
-device pci-assign,host=01:00.1 \
-hda /home/ian/windows.img -cdrom /home/ian/windows.iso \
-boot menu=on
BOOT_IMAGE=/boot/vmlinuz-3.13.0-32-generic root=UUID=db818228-48ec-49b8-997b-163fa46c6ea0 ro quiet splash i915.enable_hd_vgaarb=1 intel_iommu=on pci-stub.ids=10de:11c0,10de:0e0b vfio_iommu_type1.allow_unsafe_interrupts=1 vt.handoff=7

Any ideas? Using QEMU 2.2.50.

Why are you even expecting this to work?  Where are the instructions that say ignore everything in this thread, and just assign GeForce cards as secondary graphics with legacy KVM device assignment?  Has this ever worked?


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

#3618 2014-12-17 17:45:19

magemaster
Member
From: Brasil
Registered: 2010-11-24
Posts: 16

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

thearcherblog wrote:
magemaster wrote:
thearcherblog wrote:

I also got the black screen but someone suggested me to have this (and works for me smile):

Linux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux

Regards smile

Thank you, I installed with the emulated vga as primary and the passthrough as secondary to see what happens, could install nvidia drivers but got Code 43 error, which appears to be fixed with a patch from the 1st post.

PS: your qemu_kvm.conf has "intel_kvm" but in my machine the module name is "kvm_intel"

Happy that works for you smile

To be honest, I do not know anything about the qemu_kvm.conf and, even, when I made a few tests, is a mess because sometimes I get the error 43 and then I need to remove the driver and install it again (because setting the options back does not help until reinstall drivers)... so.... I'm not expert at all; probably some of the Gurus here can give you real information about what makes every option smile

BOOT_IMAGE=/vmlinuz-linux root=UUID=e9f18698-c70a-41f6-b5c6-c84a8e7eac85 rw quiet rdblacklist=nouveau nouveau.modeset=0 pci-stub.ids=10de:10c3,10de:0be3 intel_pstate=disable i915.enable_hd_vgaarb=1 intel_iommu=on,igfx_off quiet

Thank you, but It didn't work,
what I could do was boot using the cirrus emulated card and see the nvidia card as a secondary, then installed the latest driver and got a 43 error sad

I will try the OP way, patching and compilling stuff

Last edited by magemaster (2014-12-17 17:46:08)

Offline

#3619 2014-12-17 17:51:15

Duelist
Member
Registered: 2014-09-22
Posts: 358

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

aw wrote:
Duelist wrote:
thearcherblog wrote:

Can be the new Philips Monitor presented this summer? smile Looks pretty cool smile

The photo clearly says LG on the screen's bottom.
In fact, it's no new feature - my old(somewhere around 2002, i think)philips CRT TV can do that with television channels, it's a variation of traditional picture-by-picture.
I'm interested in that particular ultra-wide screen.

My Dell U2913WM can do this too, but I've never used it.  You have to ask yourself if two 1280x1080 desktops, side-by-side w/o a seam is really all that useful for you.  In my case I do all my work on a Linux desktop and Windows is a test/toy.  I wouldn't sacrifice primary real estate for Windows.  Maybe the LG shown is 4k, but it still wouldn't make sense for my use case, no matter how pretty is is.


The actual screen is 3440x1440. So it makes it 1720x1440. Well, despite the weird aspect ratio, it's almost fullHD.
Comparing to the current setup...
I have 1280x1024 D-SUB-Only attached to GT610 fitted inside my case using MAGIC, and 1920x1080 DVI and D-SUB compatible.
Some time ago i used fullhd's video inputs for testing both passed GPUs(i've got two in crossfire, if you forgot), but it produced really weird glitches. So, right now my D-SUB input on fullhd is unplugged. I can't plug it to GT610 because... there is no damn space for it in the case. I can do some OTHER magic, but that would require a lot of mana.(changing the motherboard or designing and making a whole new case from scratch)
And so, i have my fullhd screen offline when there is no VM running, i can't watch some cinema or series or anime or youtube or whatever on it. Watching 1280x720p is fine for me, but it still makes me sad a little. And the other way, i can't plug my square screen into one of PT'd CF'd GPUs to have 3200x1080 "eyefinity" experience(i did it previously when i had real windows running on physical hardware, and it was fun).

Making two 1280x1080 screens and having the ability to quickly stretch them to the native resolution would be good. Having two 1720x1440 screens would be even more awesome, and having the ability to switch it to full 3440x1440 for cinema or work is totally awesome.

Also, it'd fill up my desk completely, as there is about 5cm gap between the upper bezel and the upper "deck" or whatever it's called. I can't use the wall mount because the square screens lacks VESA(it's ~10 years old), and i've got no proper wall behind them.

So, the question is: can you turn on/turn off that picture-by-picture feature quickly, switching the output to native resolution?


The forum rules prohibit requesting support for distributions other than arch.
I gave up. It was too late.
What I was trying to do.
The reference about VFIO and KVM VGA passthrough.

Offline

#3620 2014-12-17 18:08:27

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Duelist wrote:

So, the question is: can you turn on/turn off that picture-by-picture feature quickly, switching the output to native resolution?

This seems to be pretty annoying on the Dell.  You can change one of the buttons to PBP (Picture-By-Picture), but it enables it and allows you to switch inputs.  AFAICT there's no way to turn it back off w/o going through the menu.  It also doesn't seem to do anything automatic with the screen resolution.  When I enable it my desktop just gets squashed to half the screen.  I suppose it would need to appear more like a monitor disconnected+reconnect with different EDID to do anything automatic.  No idea what the LG does obviously.  That resolution certainly opens up the possibilities a bit though.


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

#3621 2014-12-17 18:29:36

Duelist
Member
Registered: 2014-09-22
Posts: 358

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

aw wrote:
Duelist wrote:

So, the question is: can you turn on/turn off that picture-by-picture feature quickly, switching the output to native resolution?

This seems to be pretty annoying on the Dell.  You can change one of the buttons to PBP (Picture-By-Picture), but it enables it and allows you to switch inputs.  AFAICT there's no way to turn it back off w/o going through the menu.  It also doesn't seem to do anything automatic with the screen resolution.  When I enable it my desktop just gets squashed to half the screen.  I suppose it would need to appear more like a monitor disconnected+reconnect with different EDID to do anything automatic.  No idea what the LG does obviously.  That resolution certainly opens up the possibilities a bit though.

I expected exactly "EDID Change" behaviour. Well, sad thing that it doesn't work that way, just squishes.


The forum rules prohibit requesting support for distributions other than arch.
I gave up. It was too late.
What I was trying to do.
The reference about VFIO and KVM VGA passthrough.

Offline

#3622 2014-12-17 23:32:17

ebol4
Member
Registered: 2014-12-17
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Does Code 12 in Device Manager for an Nvidia card have a fix? Or could that be caused by a lot of different things?

edit: I also don't see any output on the attached monitor, including seabios output, which leads me to believe that it's an issue with my configuration, not Windows.

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host,kvm=off \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
-device ahci,id=ahci0 \
-drive file=/home/ian/windows.img,id=disk,if=none -device ide-drive,bus=ahci0.0,drive=disk \
-drive file=/home/ian/windows.iso,id=isocd,if=none -device ide-cd,bus=ahci0.1,drive=isocd \
-boot menu=on

Last edited by ebol4 (2014-12-17 23:45:18)

Offline

#3623 2014-12-18 00:13:58

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

ebol4 wrote:

Does Code 12 in Device Manager for an Nvidia card have a fix? Or could that be caused by a lot of different things?

edit: I also don't see any output on the attached monitor, including seabios output, which leads me to believe that it's an issue with my configuration, not Windows.

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host,kvm=off \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
-device ahci,id=ahci0 \
-drive file=/home/ian/windows.img,id=disk,if=none -device ide-drive,bus=ahci0.0,drive=disk \
-drive file=/home/ian/windows.iso,id=isocd,if=none -device ide-cd,bus=ahci0.1,drive=isocd \
-boot menu=on

That's looking better, though personally I still discourage q35 for Windows guests.  You showed in the first post that you're using the i915.enable_hd_vgaarb=1 option, did you actually patch your kernel to include that patch?  Primary VGA assignment still doesn't work with Intel IGD as host without it.  If you want to avoid patching anything, use a GPU and guest with UEFI support and go the OVMF route.


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

#3624 2014-12-18 00:24:30

ebol4
Member
Registered: 2014-12-17
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

aw wrote:

That's looking better, though personally I still discourage q35 for Windows guests.  You showed in the first post that you're using the i915.enable_hd_vgaarb=1 option, did you actually patch your kernel to include that patch?  Primary VGA assignment still doesn't work with Intel IGD as host without it.  If you want to avoid patching anything, use a GPU and guest with UEFI support and go the OVMF route.

I did not patch my kernel. I'm pretty sure my GPU doesn't support UEFI though, so it looks like I'm going to have to go that way. This involves pulling the kernel source and rebuilding it completely, right? Or am I just rebuilding one module?
edit: I got it figured out. Building kernel now.

Also, you said you discourage q35 for Windows guests. Is there another one you recommend instead?

Last edited by ebol4 (2014-12-18 01:10:41)

Offline

#3625 2014-12-18 01:18:20

aw
Member
Registered: 2013-10-04
Posts: 921
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

ebol4 wrote:
aw wrote:

That's looking better, though personally I still discourage q35 for Windows guests.  You showed in the first post that you're using the i915.enable_hd_vgaarb=1 option, did you actually patch your kernel to include that patch?  Primary VGA assignment still doesn't work with Intel IGD as host without it.  If you want to avoid patching anything, use a GPU and guest with UEFI support and go the OVMF route.

I did not patch my kernel. I'm pretty sure my GPU doesn't support UEFI though, so it looks like I'm going to have to go that way. This involves pulling the kernel source and rebuilding it completely, right? Or am I just rebuilding one module?
edit: I got it figured out. Building kernel now.

Also, you said you discourage q35 for Windows guests. Is there another one you recommend instead?

The default machine type is 440FX, there's an example of using it here:

http://vfio.blogspot.com/2014/08/dual-v … adeon.html

Q35 really buys you nothing but complication and poor disk performance with AHCI.  Also, if you ever intend to migrate to using libvirt to manage the guest, it gets even worse.  I think I gave an example within the last few weeks of a simple wrapper script for QEMU that can be used with libvirt if all you need to do is add the x-vga=on option to vfio-pci VGA device.  With q35 people end up requiring <qemu:arg> extensions in the guest xml that hides the assigned device and setup of resources for it from libvirt.


http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses?  Try https://www.redhat.com/mailman/listinfo/vfio-users

Offline

Board footer

Powered by FluxBB