On Wed, Apr 10, 2013 at 09:20:52AM -0600, Alex Williamson wrote: > On Wed, 2013-04-10 at 12:01 +0300, Gleb Natapov wrote: > > On Tue, Apr 09, 2013 at 04:17:48PM -0600, Alex Williamson wrote: > > > On Tue, 2013-04-09 at 11:18 -0600, Alex Williamson wrote: > > > > On Tue, 2013-04-09 at 08:22 -0400, de...@lavabit.com wrote: > > > > > Hi! > > > > > > > > > > I've tried passing through my ASUS Radeon HD7750, but qemu just hogs > > > > > 100% > > > > > of one core and stops. Since the display didn't light up, I couldn't > > > > > see > > > > > how far Win 7 boot went. For a Linux guest I tried redirecting kernel > > > > > messages to serial console, but there was nothing (qemu stops even > > > > > before > > > > > kernel start?). > > > > > > > > > > Also, this GPU is kinda troublesome: it doesn't work with the > > > > > proprietary > > > > > driver if VT-d is enabled in BIOS (boot process stops with "dmar: > > > > > DRHD: > > > > > handling fault status reg 3"). The GPU works with the FOSS driver, > > > > > though. > > > > > Could this somehow be related to the passthrough issue? > > > > > > > > > > Anyway, VT-d in pci-assign mode works for network adapters on this > > > > > host. > > > > > It runs kernel 3.9.0-rc5 (with vfio-vga enabled), qemu git from > > > > > yesterday, > > > > > and seabios 1.7.2. The host has no driver installed for the GPU. > > > > > Before > > > > > assiging it to qemu I'd run "echo '1002 683f' > > > > > > /sys/bus/pci/drivers/vfio-pci/new_id" and the same for the associated > > > > > HDMI > > > > > device. Command line: > > > > > qemu-kvm -machine q35,accel=kvm \ > > > > > -cpu host -smp 4 -m 2G \ > > > > > -vga none -display none \ > > > > > -kernel /kvm/kernel-3.7.8 -append 'root=/dev/vda > > > > > console=ttyS0' \ > > > > > -drive > > > > > index=0,media=disk,cache=none,if=virtio,aio=native,file=/dev/vg3/gpu \ > > > > > -device vfio-pci,host=01:00.0,x-vga=on \ > > > > > -device vfio-pci,host=01:00.1 \ > > > > > -serial telnet:127.0.0.1:52990,server > > > > > > > > You should always at least get monitor sync if it's going to work, but > > > > you may have to reboot the host between each attempt. I've been doing > > > > most of the VGA development on an AMD box and swapping over to an Intel > > > > system reminds me why. Try removing the ",accel=kvm -cpu host -smp 4" > > > > pieces of your command an try again. If that works, it means there are > > > > still broken bits of real mode handling in KVM. My HD7850 hangs on an > > > > Intel host the same way you describe, but posts if I disable KVM > > > > support. Thanks, > > > > > > Gleb, > > > > > > If I run trace-cmd while I'm in this hung state with KVM enabled, the > > > log is filled with: > > > > > > qemu-system-x86-9569 [000] 10027.806836: kvm_emulate_insn: > > > c0000:b2d3: ff 7d 00 > > > > > > I hope this means more to you than it does to me ;) Based on the > > > segment register we're executing in the VGA BIOS for the assigned VGA > > > device. Let me know what more I can provide to help debug. Thanks, > > > > > This is wrong encoding. Such instruction does not exists. Can you see > > what happens before this emulation starts to happen. > > Yeah, it seems like b2d3 is a bad offset, if I align the code at d2 or > d0 gdb is able to disassemble it. I'm not having much luck with > breakpoints or stepping, but I'll keep fiddling with it to try to figure > out how we're getting here. Thanks, > Able to disassemble and produce code that make sense? :)
-- Gleb.