http://bugs.winehq.org/show_bug.cgi?id=31786
Bug #: 31786 Summary: Run the tests on real hardware Product: Wine-Testbot Version: unspecified Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: unknown AssignedTo: wine-bugs@winehq.org ReportedBy: fgouget@codeweavers.com Classification: Unclassified
It would be very useful to run some tests on real hardware. * This is the case for all the 3D graphics tests. For these we would even want to run them on both AMD and NVidia graphics cards(*). Currently they are essentially ignored by WineTestBot because the virtual graphic cards don't provide meaningful 3D support. * It could somewhat be useful for sound tests too, mostly to avoid timing issues, but also to ensure the results we get are not tainted by bugs in the emulated sound card. Also emulated sound cards typically don't support MIDI emulation.
The problem is that it's very important to limit the test duration and to restore the test environment to a clean state after each test, no matter what happens, for two reasons: * Because it's not uncommon for tests to have side effects and for them to leave the test environment in an unusable state. Granted it happens much more often with older Windows releases as they are more prone to crashes. However graphics drivers also tend to be buggy and we would not want the tests to be tainted by a previous run (though a reboot should take care of most issues). * But also the Wine TestBot runs anything that gets posted by anonymous users on wine-patches. That's ok as long as such code is properly confined and not allowed to run for too long. That supposes thoroughly cleaning up the environment after a test has run, including anything that could happen at boot time.
Virtual machines provide a simple solution to both of these issues which is why the TestBot relies on them heavily.
With QEmu it's possible to let the guest OS access some peripherals directly via the 'passthrough' mode. This is normally done for network cards. If it worked for graphics cards that would be a great solution but it's not clear that it's feasible.
Another option would be to play tricks with Grub scripts: have it boot from a clean Linux partition (or from the network?), restore the Windows partition from a clean disk image, reboot into that partition, and back on the clean partition with the next reboot. That still leaves the issue of forcing a reboot in case of a freeze or malware taking control of Windows (use a remote controlled power switch like in data centers?).
(*) We currently have two such machines ready for this: http://www.winehq.org/pipermail/wine-devel/2012-February/094080.html
http://bugs.winehq.org/show_bug.cgi?id=31786
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |31788
http://bugs.winehq.org/show_bug.cgi?id=31786
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- OS/Version|Linux |Windows Severity|normal |enhancement
http://bugs.winehq.org/show_bug.cgi?id=31786
Qian Hong fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fracting@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=31786
--- Comment #1 from François Gouget fgouget@codeweavers.com 2012-11-11 21:44:16 CST --- Dan Kegel did some Googling on this and came up with interesting results. I'm copying them here from the wine-devel email thread to simplify future access. http://www.winehq.org/pipermail/wine-devel/2012-November/097671.html http://www.winehq.org/pipermail/wine-devel/2012-November/097677.html
--- http://wiki.xen.org/wiki/Xen_VGA_Passthrough http://arstechnica.com/information-technology/2012/10/nvidias-vgx-cards-brin...
or network booting (plus remote controlled power switch?), Grub tricks).
http://www.amd64.org/support/automated-test-infrastructure.html looks like it does all of the above? http://developer.amd.com/tools/opensource/AMDTapper/Pages/default.aspx
A few other possibly interesting links: http://wiki.debian.org/GrubReboot http://www.passmark.com/products/rebooter.htm http://people.redhat.com/mrodrigu/slides/linuxcon-2011-autotest-lmr There are many similar pages, all somewhat buried, stale, and possibly too specific. ---
http://bugs.winehq.org/show_bug.cgi?id=31786
Jactry Zeng jactry92@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jactry92@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=31786
--- Comment #2 from François Gouget fgouget@codeweavers.com --- The right approach is probably PCI-passthrough. I sent some information on this to the mailing list: https://www.winehq.org/pipermail/wine-devel/2019-April/144315.html
To summarize the requirements: * We need VM hosts that support Intel VT-d or AMD's equivalent on both the motherboard and the CPU. Some motherboards are better at this than others due to how they group the PCI devices.
* We need GPUs that are hot-restartable, which is easier to get on the AMD side than on the Nvidia one. https://passthroughpo.st/apply-error-43-workaround/
* I'll skip the host and QEmu configuration requirements (see my email above or resources below).
* The TestBot will need guest code to take screenshots (see also bug 44709).
* The administrator setting up the VM will need to go through a KVM (already available), or through a remove desktop solution once the base OS is installed.
* The TestBot will not be able to use live snapshots but I think all the required support is there already.
Useful resources: * LevelOnTech
https://forum.level1techs.com/t/the-vfio-and-gpu-passthrough-beginners-resou...
* GrayWolfTech - PCI passthrough quick guide
https://forum.level1techs.com/t/play-games-in-windows-on-linux-pci-passthrou...
https://bugs.winehq.org/show_bug.cgi?id=31786
maniikarabera@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |maniikarabera@protonmail.ch
https://bugs.winehq.org/show_bug.cgi?id=31786
--- Comment #3 from François Gouget fgouget@codeweavers.com --- We now have two Windows 11 test configurations using PCI passthrough to use real GPUs:
w11pro64_amd uses an AMD RX6600 graphics card w11pro64_nv uses an NVIDIA RTX3050 graphics card
Settings up a guest VM using PCI passthrough to GPUs seems more complicated though :-(
https://bugs.winehq.org/show_bug.cgi?id=31786
soredake broaden_acid002@simplelogin.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|broaden_acid002@simplelogin | |.com |