[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [vfio-users] Radeon 5770 Passthrough works in Chipset 440FX but not in Q35



Some more testing...

If instead of...

-cpu host -and some other parameters like the HyperV Enlightnements-

I use...

-cpu qemu64

There are no MSR errors in Windows 10. This includes Passthrough with 440FX. It STILL doesn't work in Q35.
I also tested that with GParted. Instead of the multiple mentioed MSRs in the previous E-Mail, I get now a single one:

kvm [695]: vcpu0, guest rIP: 0xc2047ad0 disabled perfctr wrmsr: 0xc2 data 0xffff

Basically, at this point, I can claim that the MSR errors are absolutely unrelated to the original issue of not getting Passthrough working in Q35. Actually, they are probabily unrelated to the Chipset, I think they are related to the Processor mostly. Some MSRs seems to be related to Power Management, so chances are that when I use -cpu host to pass my Processor CPUID, the guest OS tries to load a Processor Driver for my Haswell to control the Power States, which obviously fails. Through I recall that Chipsets also have MSR, I don't know if they are accesed in the same way, or if they produces similar rdmsr/wrmsr dmesg errors.
Since looking around I think I saw a few people with Q35, Windows and Radeons, I suppose that it may be a specific issue with my old Radeon 5770. Technically I can already create a fully working setup with OVMF, 440FX, the Radeon with the custom UEFI GOP and W10 to migrate to it, but I'm obssesed with Q35 since I want a proper PCI topology instead of the 440FX unrealistic patchwork.



Besides Windows 10 and Gparted, I tried with Windows 7 SP1 x64 and Windows XP SP2 x64, since I wanted to see if in previous versions the 440FX and Q35 Chipsets behaves the same as in W10. I downgraded to QEMU 2.5.1 to make sure that I don't casually hit the 2.6 regression. However, I had no luck doing Passthrough with those at all, even with 440FX. This dissapointed me - I expected them to be easier to get working than W10, yet W10 works out-of-the-box nearly flawless now that I know that it requires the 440FX.

Windows 7 gets stuck on the boot splash screen (Starting Windows) if I'm trying to use OVMF + UEFI GOP + Primary VGA Passthrough. This seems to be expected and is why it is suggested to install W7 with an emulated VGA then switch after installing the Drivers, which I also tried. However, the card is always with a ! in Device Manager (Sorry, don't remember the Error Code, would have to check again). I suppose that I should be able to workaround W7 if I put some effort, since there is vast info about people that got this combination working, so no reason that I can't do it.

What has proved itself rather challeging is Windows XP x64, which forces me to use SeaBIOS. Since I'm using the vanilla Arch Linux Kernel which doesn't have the i915 VGA Arbitration patch, I get a lot of dmesg errors from the i915 Driver with a huge host graphics slowdown as soon as I open the VM. It absolutely doesn't work with Primary VGA Passthrough (x-vga=on). If using qxl-vga, after around 30s or so with a few i915 errors, SeaBIOS eventually POST. Usually I get palette corruption in the host, but that is a know issue if I'm not using the patch.
However, what I didn't understand is why all that happens when I'm trying to use Secondary VGA Passthrough. If I'm using qxl-vga and the Radeon has a rombar=0 parameter (Which supposedly masked the Option ROM from guest Firmware, so it can't initialize VGA and conflict with i915), it still takes 30s or so to POST, causes i915 errors and can't get the Drivers installed since the Catalyst installation application doesn't recognizes the Radeon (Which appears in Device Manager with error Code 10). I couldn't install the Drivers manually, either, they don't recognize the card. Also tried loading vfio-pci with disable_vga=y parameter, but results are the same. Basically, it always glitchs when opening the VM, even when supposedly it should NOT be using VGA at all.
Did I miss something that I can't get Secondary VGA Passthrough working and have VGA arbitration issues when VGA shouldn't be used by the guest? Do I have to apply the i915 patch EVEN for Secondary VGA Passthrough?


Also, an interesing thing which I tested is booting WXP x64 using OVMF + CSM (SeaBIOS) with UEFI GOP. This combination doesn't produce the errors when doing Passthrough that standalone SeaBIOS did, and I actually see OVMF POSTing in the Radeon Monitor (Like with W10). Obviously, that's because VGA is not used at all. However, I get a rather amusing, legacy error when WXP x64 is supposed to boot (Either from install ISO, or after installing and switching Firmware):

"Windows NT has found only 0K of low memory. 512K of low memory is required to run Windows NT. You may need to upgrade your computer or run a configuration program provided by the manufacturer"

I suppose that SeaBIOS as CSM still has some work left to do, assuming that being WXP compatible is on the roadmap, heh.
Tried OVMF + CSM with W7 too, but it also fails with Primary VGA Passthrough at the same point that with pure EFI OVMF (Starting Windows).

Any comments? I think that I will go for 440FX and be done with it. My SSD has been waiting for some action for half a year already, since I didn't wanted to use it until I was ready to migrate.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]