[vbox-dev] Windows 10 guest additions video driver problem
frank.mehnert at oracle.com
Thu Feb 25 19:38:37 UTC 2016
On Thursday 25 February 2016 19:26:08 Anna Fischer wrote:
> > Betreff: Re: [vbox-dev] Windows 10 guest additions video driver problem
> > Hi,
> > On Monday 04 January 2016 17:21:33 Anna Fischer wrote:
> > > > Betreff: Re: [vbox-dev] Windows 10 guest additions video driver
> > > >
> > > > problem On Tuesday 29 December 2015 12:54:01 Anna Fischer wrote:
> > > > > I run Virtualbox 5.0.10 on Gentoo Linux. I run different guest
> > > > > operating systems, one of them Windows 10 64-bit. All my guests
> > > > > have
> > > > > 5.0.10 guest additions installed. All guests work fine except the
> > > > > Windows 10 guest: when I suspend the system (e.g. the host OS goes
> > > > > into hibernation / suspend to RAM mode) while the VM is running,
> > > > > and then resume the system, it seems as if the guest graphics
> > > > > driver crashes. Initially when the VM comes back on the screen
> > > > > after resume, it seems as if the resolution is switched to a lower
> > > > > resolution, and then I get a message in the guest saying video
> > > > > driver crashed. Has anyone else ever seen this? I only seem to
> > > > > have the problem with Windows 10 as guest. All other guests still
> > > > > work after resume, and their
> > > >
> > > > resolution does not change.
> > > >
> > > > do you see the same problem if you suspend + resume the VM? I'm
> > > > asking because basically this is the same what happens when you
> > > > hibernate or suspend your host: All VMs are suspended before the
> > > > host suspends and all VMs which were suspended before are resumed
> > after the host resumed.
> > > No, I don't see the same behavior, and I was expecting that it is a
> > > different mechanism. Does VBOX actually detect that the host is trying
> > > to hibernate, and then it will suspend all the VMs automatically? Is
> > > that really how it works?
> > yes, at least if dbus works as expected, see here:
> > https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Main/src-> > server/linux/HostPowerLinux.cpp#L134
> > and here:
> > https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Main/src-> > server/HostPower.cpp#L74
> > and later we will arrive Main/src/client/ConsoleImpl.cpp line 6195.
> > The VBox.log file of running VMs should indicate if they are suspended/
> > resumed on host suspend/resume.
> To me the code looks as if the VM is actually paused, not suspended (e.g.
> saved). Is that so?
Yes. VBox terminology:
stop/continue the execution of the VM. The VM process remains.
save the VM state to disk and terminate the VM process
start a new VM process and load the state from disk
> It does not make sense to actually really suspend a VM (e.g. save state),
> because for Windows 10 with 4-8 GB of RAM, this will take up to 30 seconds!
Of course. Therefore we only pause/resume the VM in that case.
> During that time, my Linux is already suspended. It does not wait for VBOX
> to store any VMs.
> > > To me it looks like the host is just putting everything that currently
> > > runs to sleep, and then stores the RAM state on the SWAP partition.
> > Only if the dbus mechanism doesn't work. There is a different mechanism
> > which works in host R0, see here:
> > https://www.virtualbox.org/browser/vbox/trunk/src/VBox/HostDrivers/Sup
> > port/linux/SUPDrv-linux.c#L604
> > The corresponding callback is registered here:
> > https://www.virtualbox.org/browser/vbox/trunk/src/VBox/VMM/VMMR0/
> > HMR0.cpp#L707
> > This second mechanism is used to disable VT-x/AMD-V during host suspend
> > because many BIOSes are broken and don't handle this case properly.
> > > When I simply save and resume VMs (I do that all the time, btw.) it
> > > works perfectly fine.
> > In that case please check the VBox.log file is the VM is really suspended/
> > resumed during host suspend/resume. The VM should properly work after
> > host suspend/resume even if the first (dbus) mechanism doesn't work but it
> > makes sense to check if repairing it (if it doesn't work) makes a
> > difference.
> > dbus is loaded on demand to VBoxSVC, if libdbus-1.so.3 is not there then
> > VBoxSVC.log will contain the line
> > HostPowerServiceLinux: DBus library not found. Service not available.
> I use DBUS for many of my own services, so it does run properly.
That does not answer the question if VBox really finds the library :-)
Any suspicious lines in VBoxSVC.log? Using strace to check which
library is loaded by VBoxSVC makes sense as well. Just start VBoxSVC
as separate process like
strace -s128 -o log -f VBoxSVC
then start the VM in a separate terminal and later check if libdbus-1.so.3
is really found.
> I'm still wondering if this is a Guest Additions bug in Windows 10...
> I'm also wondering if this ticket https://www.virtualbox.org/ticket/14409 is
> the same as what I see, just under Linux. When I pause the VM manually, I
> do not see the same effect. So there must be something is going on when
> suspending the host.
I doubt that. Ticket 14409 was about a mis-behavior of the Windows guest
graphics driver. The relevant changeset is here:
Dr.-Ing. Frank Mehnert | Software Development Director, VirtualBox
ORACLE Deutschland B.V. & Co. KG | Werkstr. 24 | 71384 Weinstadt, Germany
ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstraße 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603
Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher
More information about the vbox-dev