[vbox-dev] Virtualbox don't restore FPU segments with 32-bit guests while using xsave/xrstor
Frank Mehnert
frank.mehnert at oracle.com
Fri May 13 07:14:44 UTC 2016
Hi Quentin,
what is the expected behaviour of this sample? Should it run forever?
Running this sample in a 32-bit guests stops with "segs unset" after
a short time. After applying your patch and running the example in the
guest, it runs forever.
But: If I run this sample on the host (Linux 4.5.4), it will always
stop with "segs unset 1" after the first turn.
Kind regards,
Frank
On Thursday 12 May 2016 14:47:01 quentin buathier wrote:
> This is a sample in C++ which reproduce the problem randomly (1 ~ 2
> seconds).
> On the same host / guest / cpu that my previous mail.
>
> 2016-05-12 12:20 GMT+02:00 quentin buathier <qbuathier at tetrane.com>:
> > Hi Michal,
> >
> > I can't now give a way to reproduce the bug but I'll send an executable if
> > I manage to reproduce the problem on something minimalist.
> >
> > But I can give you the context of the problem:
> > Host OS: Debian jessie 64-bits
> > Guest OS: Debian jessie 32-bits
> > Processor: i7-2600 (and all i7 tested)
> >
> > PS: Sorry for the previous mail that was accidently sent
> >
> > Regards,
> >
> > 2016-05-12 12:18 GMT+02:00 quentin buathier <qbuathier at tetrane.com>:
> >> Hi Michal,
> >>
> >> I can't now give a way to reproduce the bug. I'll send an executable if I
> >> manage to reproduce the problem on something minimalist.
> >>
> >> But I can give you the context of the problem:
> >> Host OS: Debian jessie 64-bits
> >>
> >> 2016-05-12 11:52 GMT+02:00 Michal Necasek <michal.necasek at oracle.com>:
> >>> Hi Quentin,
> >>>
> >>> Thank you for the patch!
> >>>
> >>> Unfortunately (?) I can't reproduce the problem that was originally
> >>>
> >>> fixed. Could you please provide a bit more information? What's the host
> >>> OS,
> >>> guest OS, host CPU type? How to reproduce the problem?
> >>>
> >>> Regards,
> >>>
> >>> Michal
> >>>
> >>> On 5/12/2016 11:26 AM, quentin buathier wrote:
> >>>> Hi,
> >>>>
> >>>> As I understand it, there used to be a problem with restoring the FPU
> >>>> segments in case of a 64-bit hosts with a 32-bit guest. This issue has
> >>>> been fixed by using the macros "SAVE_32_OR_64_FPU" and
> >>>> "RESTORE_32_OR_64_FPU" in "src/VBox/VMM/VMMR0/CPUMR0A.asm" (when
> >>>> Virtualbox was using fxsave and fxrstor to save and restore the FPU
> >>>> context).
> >>>>
> >>>> But along with the recent support of xsave / xrstor, the bug was
> >>>> reintroduced: if the CPU supports xsave/xrstor, Virtualbox uses these
> >>>> instructions and the guest's FPU segments are not restored properly.
> >>>>
> >>>> Please find attached a possible patch to fix this issue (MIT licence).
> >>>>
> >>>> Regards,
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> vbox-dev mailing list
> >>>> vbox-dev at virtualbox.org
> >>>> https://www.virtualbox.org/mailman/listinfo/vbox-dev
> >>>
> >>> _______________________________________________
> >>> vbox-dev mailing list
> >>> vbox-dev at virtualbox.org
> >>> https://www.virtualbox.org/mailman/listinfo/vbox-dev
--
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
mailing list