* [Qemu-devel] Qemu (no kvm) Win7 (64bit) boot error @ 2012-09-08 0:48 Clemens Kolbitsch 2012-09-08 4:26 ` [Qemu-devel] QEMU " Stefan Weil 0 siblings, 1 reply; 8+ messages in thread From: Clemens Kolbitsch @ 2012-09-08 0:48 UTC (permalink / raw) To: qemu-devel Hi guys, I need to run Win7 64bit in Qemu without KVM support. I found a few messages concerning the "unsupported architecture" problem (Windows shows a BSOD with "STOP 0x0000005D ..." on boot), for example http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html or http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 but I don't think there was ever a solution to the problem - at least what is proposed does not work (I've tried stable and GIT versions). Since I have a decent background of modifying the Qemu internals, I'm more than happy to contribute to solving this issue, but I'm not sure if anyone is currently working on it (i.e., I don't want to start at 0 in case someone is about to release a patch). Please let me know if there is already a know solution/workaround or whoever might be working on it, please ping me so we can sync. BTW, in case this is necessary, here are the details of what I need/what is not working: Qemu: current git-trunk, x86_64-softmmu$ ./qemu-system-x86_64 --version QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard host: 64bit, Ubuntu LTS12.04 guest: 64bit Windows 7, no KVM possible Thanks! -Clemens ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-08 0:48 [Qemu-devel] Qemu (no kvm) Win7 (64bit) boot error Clemens Kolbitsch @ 2012-09-08 4:26 ` Stefan Weil 2012-09-08 18:22 ` Clemens Kolbitsch 0 siblings, 1 reply; 8+ messages in thread From: Stefan Weil @ 2012-09-08 4:26 UTC (permalink / raw) To: Clemens Kolbitsch; +Cc: qemu-devel Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: > Hi guys, > > I need to run Win7 64bit in Qemu without KVM support. I found a few > messages concerning the "unsupported architecture" problem (Windows > shows a BSOD with "STOP 0x0000005D ..." on boot), for example > > http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html > or > http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 > > but I don't think there was ever a solution to the problem - at least > what is proposed does not work (I've tried stable and GIT versions). > > Since I have a decent background of modifying the Qemu internals, I'm > more than happy to contribute to solving this issue, but I'm not sure > if anyone is currently working on it (i.e., I don't want to start at 0 > in case someone is about to release a patch). > > Please let me know if there is already a know solution/workaround or > whoever might be working on it, please ping me so we can sync. > > BTW, in case this is necessary, here are the details of what I > need/what is not working: > > Qemu: current git-trunk, > > x86_64-softmmu$ ./qemu-system-x86_64 --version > QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard > > host: 64bit, Ubuntu LTS12.04 > > guest: 64bit Windows 7, no KVM possible > > Thanks! > -Clemens Hi Clemens, AFAIK, nobody is working on this issue which exists for a long time now. It would be great if you could find a solution to make QEMU without KVM work with Windows guests. Regards, Stefan W. PS: It's QEMU, not Qemu. I modified the subject in my reply :-) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-08 4:26 ` [Qemu-devel] QEMU " Stefan Weil @ 2012-09-08 18:22 ` Clemens Kolbitsch 2012-09-10 6:19 ` Clemens Kolbitsch 0 siblings, 1 reply; 8+ messages in thread From: Clemens Kolbitsch @ 2012-09-08 18:22 UTC (permalink / raw) To: Stefan Weil; +Cc: qemu-devel On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <sw@weilnetz.de> wrote: > Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: >> >> Hi guys, >> >> I need to run Win7 64bit in Qemu without KVM support. I found a few >> messages concerning the "unsupported architecture" problem (Windows >> shows a BSOD with "STOP 0x0000005D ..." on boot), for example >> >> http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html >> or >> http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 >> >> but I don't think there was ever a solution to the problem - at least >> what is proposed does not work (I've tried stable and GIT versions). >> >> Since I have a decent background of modifying the Qemu internals, I'm >> more than happy to contribute to solving this issue, but I'm not sure >> if anyone is currently working on it (i.e., I don't want to start at 0 >> in case someone is about to release a patch). >> >> Please let me know if there is already a know solution/workaround or >> whoever might be working on it, please ping me so we can sync. >> >> BTW, in case this is necessary, here are the details of what I >> need/what is not working: >> >> Qemu: current git-trunk, >> >> x86_64-softmmu$ ./qemu-system-x86_64 --version >> QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard >> >> host: 64bit, Ubuntu LTS12.04 >> >> guest: 64bit Windows 7, no KVM possible >> >> Thanks! >> -Clemens > > > Hi Clemens, > > AFAIK, nobody is working on this issue which exists for a long time now. > It would be great if you could find a solution to make QEMU without KVM > work with Windows guests. Hi Stefan, thanks for the info. I'll work on it then - hopefully I can come back with a patch soon! > PS: It's QEMU, not Qemu. I modified the subject in my reply :-) hehe, old habbit :) I'll try to remember - but why is the ML then called "Qemu-devel" ? ;) -Clemens ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-08 18:22 ` Clemens Kolbitsch @ 2012-09-10 6:19 ` Clemens Kolbitsch 2012-09-10 16:23 ` Stefan Weil 0 siblings, 1 reply; 8+ messages in thread From: Clemens Kolbitsch @ 2012-09-10 6:19 UTC (permalink / raw) To: Stefan Weil; +Cc: qemu-devel On Sat, Sep 8, 2012 at 11:22 AM, Clemens Kolbitsch <kolbitsch@lastline.com> wrote: > On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <sw@weilnetz.de> wrote: >> Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: >>> >>> Hi guys, >>> >>> I need to run Win7 64bit in Qemu without KVM support. I found a few >>> messages concerning the "unsupported architecture" problem (Windows >>> shows a BSOD with "STOP 0x0000005D ..." on boot), for example >>> >>> http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html >>> or >>> http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 >>> >>> but I don't think there was ever a solution to the problem - at least >>> what is proposed does not work (I've tried stable and GIT versions). >>> >>> Since I have a decent background of modifying the Qemu internals, I'm >>> more than happy to contribute to solving this issue, but I'm not sure >>> if anyone is currently working on it (i.e., I don't want to start at 0 >>> in case someone is about to release a patch). >>> >>> Please let me know if there is already a know solution/workaround or >>> whoever might be working on it, please ping me so we can sync. >>> >>> BTW, in case this is necessary, here are the details of what I >>> need/what is not working: >>> >>> Qemu: current git-trunk, >>> >>> x86_64-softmmu$ ./qemu-system-x86_64 --version >>> QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard >>> >>> host: 64bit, Ubuntu LTS12.04 >>> >>> guest: 64bit Windows 7, no KVM possible >>> >>> Thanks! >>> -Clemens >> >> >> Hi Clemens, >> >> AFAIK, nobody is working on this issue which exists for a long time now. >> It would be great if you could find a solution to make QEMU without KVM >> work with Windows guests. > > Hi Stefan, > > thanks for the info. I'll work on it then - hopefully I can come back > with a patch soon! > >> PS: It's QEMU, not Qemu. I modified the subject in my reply :-) > > hehe, old habbit :) I'll try to remember - but why is the ML then > called "Qemu-devel" ? ;) After a first night of debugging, I have come up with a simple patch. I'm still testing and it seems it's not the ultimate solution yet (there are still bluescreens), but it already gets you much further while booting (using either the install CD or an actual image). This diffs against the current stable-1.1. As you can see, one of the feature bits of the CPUID are removed due to TCG not supporting them (or the TCG bitmask is just missing them). Since Qemu uses CPUID_DE in other locations, I'm assuming the bitmask is just wrong. Can someone confirm that TCG supports CPUID_DE ? If not, I'll need to work on this, otherwise I'll investigate why Win7 still crashes with a BSOD. Thanks! Clemens qemu$ git diff diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 388bc5c..f2af36d 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -259,7 +259,8 @@ typedef struct x86_def_t { CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS) + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | \ + CPUID_DE) /* needed by Win7 64bit */ /* partly implemented: CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) CPUID_PSE36 (needed for Solaris) */ ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-10 6:19 ` Clemens Kolbitsch @ 2012-09-10 16:23 ` Stefan Weil 2012-09-10 17:20 ` Clemens Kolbitsch 2012-09-10 17:31 ` Aurelien Jarno 0 siblings, 2 replies; 8+ messages in thread From: Stefan Weil @ 2012-09-10 16:23 UTC (permalink / raw) To: Clemens Kolbitsch, Andre Przywara; +Cc: qemu-devel, Aurelien Jarno [-- Attachment #1: Type: text/plain, Size: 4710 bytes --] Am 10.09.2012 08:19, schrieb Clemens Kolbitsch: > On Sat, Sep 8, 2012 at 11:22 AM, Clemens Kolbitsch > <kolbitsch@lastline.com> wrote: >> On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <sw@weilnetz.de> wrote: >>> Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: >>>> Hi guys, >>>> >>>> I need to run Win7 64bit in Qemu without KVM support. I found a few >>>> messages concerning the "unsupported architecture" problem (Windows >>>> shows a BSOD with "STOP 0x0000005D ..." on boot), for example >>>> >>>> http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html >>>> or >>>> http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 >>>> >>>> but I don't think there was ever a solution to the problem - at least >>>> what is proposed does not work (I've tried stable and GIT versions). >>>> >>>> Since I have a decent background of modifying the Qemu internals, I'm >>>> more than happy to contribute to solving this issue, but I'm not sure >>>> if anyone is currently working on it (i.e., I don't want to start at 0 >>>> in case someone is about to release a patch). >>>> >>>> Please let me know if there is already a know solution/workaround or >>>> whoever might be working on it, please ping me so we can sync. >>>> >>>> BTW, in case this is necessary, here are the details of what I >>>> need/what is not working: >>>> >>>> Qemu: current git-trunk, >>>> >>>> x86_64-softmmu$ ./qemu-system-x86_64 --version >>>> QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard >>>> >>>> host: 64bit, Ubuntu LTS12.04 >>>> >>>> guest: 64bit Windows 7, no KVM possible >>>> >>>> Thanks! >>>> -Clemens >>> >>> Hi Clemens, >>> >>> AFAIK, nobody is working on this issue which exists for a long time now. >>> It would be great if you could find a solution to make QEMU without KVM >>> work with Windows guests. >> Hi Stefan, >> >> thanks for the info. I'll work on it then - hopefully I can come back >> with a patch soon! >> >>> PS: It's QEMU, not Qemu. I modified the subject in my reply :-) >> hehe, old habbit :) I'll try to remember - but why is the ML then >> called "Qemu-devel" ? ;) > After a first night of debugging, I have come up with a simple patch. > I'm still testing and it seems it's not the ultimate solution yet > (there are still bluescreens), but it already gets you much further > while booting (using either the install CD or an actual image). > > This diffs against the current stable-1.1. As you can see, one of the > feature bits of the CPUID are removed due to TCG not supporting them > (or the TCG bitmask is just missing them). Since Qemu uses CPUID_DE in QEMU :-) > other locations, I'm assuming the bitmask is just wrong. > > Can someone confirm that TCG supports CPUID_DE ? If not, I'll need to > work on this, otherwise I'll investigate why Win7 still crashes with a > BSOD. > > Thanks! > Clemens > > > qemu$ git diff > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 388bc5c..f2af36d 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -259,7 +259,8 @@ typedef struct x86_def_t { > CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ > CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ > CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ > - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS) > + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | \ > + CPUID_DE) /* needed by Win7 64bit */ > /* partly implemented: > CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) > CPUID_PSE36 (needed for Solaris) */ Hi Clemens, indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...". In my test scenario Windows now reboots instead of showing the BSOD. This commit added the TCG feature bit trimming which broke Windows: commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c Autor: Andre Przywara <andre.przywara@amd.com> Do Mär 11 14:39:03 2010 Eintragender: Aurelien Jarno <aurelien@aurel32.net> Sa Mär 13 16:50:54 2010 x86/cpuid: add TCG feature bit trimming In KVM we trim the user provided CPUID bits to match the host CPU's one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's capabilities and apply it to the user bits. This allows to let the CPU models reflect their native archetypes. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Andre, why don't we set the requested feature bits - no matter what TCG provides? Regards, Stefan [-- Attachment #2: Type: text/html, Size: 6755 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-10 16:23 ` Stefan Weil @ 2012-09-10 17:20 ` Clemens Kolbitsch 2012-09-10 17:46 ` Stefan Weil 2012-09-10 17:31 ` Aurelien Jarno 1 sibling, 1 reply; 8+ messages in thread From: Clemens Kolbitsch @ 2012-09-10 17:20 UTC (permalink / raw) To: Stefan Weil; +Cc: Andre Przywara, qemu-devel, Aurelien Jarno On Mon, Sep 10, 2012 at 9:23 AM, Stefan Weil <sw@weilnetz.de> wrote: > Am 10.09.2012 08:19, schrieb Clemens Kolbitsch: > > On Sat, Sep 8, 2012 at 11:22 AM, Clemens Kolbitsch > <kolbitsch@lastline.com> wrote: > > On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <sw@weilnetz.de> wrote: > > Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: > > Hi guys, > > I need to run Win7 64bit in Qemu without KVM support. I found a few > messages concerning the "unsupported architecture" problem (Windows > shows a BSOD with "STOP 0x0000005D ..." on boot), for example > > http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html > or > http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 > > but I don't think there was ever a solution to the problem - at least > what is proposed does not work (I've tried stable and GIT versions). > > Since I have a decent background of modifying the Qemu internals, I'm > more than happy to contribute to solving this issue, but I'm not sure > if anyone is currently working on it (i.e., I don't want to start at 0 > in case someone is about to release a patch). > > Please let me know if there is already a know solution/workaround or > whoever might be working on it, please ping me so we can sync. > > BTW, in case this is necessary, here are the details of what I > need/what is not working: > > Qemu: current git-trunk, > > x86_64-softmmu$ ./qemu-system-x86_64 --version > QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard > > host: 64bit, Ubuntu LTS12.04 > > guest: 64bit Windows 7, no KVM possible > > Thanks! > -Clemens > > Hi Clemens, > > AFAIK, nobody is working on this issue which exists for a long time now. > It would be great if you could find a solution to make QEMU without KVM > work with Windows guests. > > Hi Stefan, > > thanks for the info. I'll work on it then - hopefully I can come back > with a patch soon! > > PS: It's QEMU, not Qemu. I modified the subject in my reply :-) > > hehe, old habbit :) I'll try to remember - but why is the ML then > called "Qemu-devel" ? ;) > > After a first night of debugging, I have come up with a simple patch. > I'm still testing and it seems it's not the ultimate solution yet > (there are still bluescreens), but it already gets you much further > while booting (using either the install CD or an actual image). > > This diffs against the current stable-1.1. As you can see, one of the > feature bits of the CPUID are removed due to TCG not supporting them > (or the TCG bitmask is just missing them). Since Qemu uses CPUID_DE in > > > QEMU :-) > > > other locations, I'm assuming the bitmask is just wrong. > > Can someone confirm that TCG supports CPUID_DE ? If not, I'll need to > work on this, otherwise I'll investigate why Win7 still crashes with a > BSOD. > > Thanks! > Clemens > > > qemu$ git diff > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 388bc5c..f2af36d 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -259,7 +259,8 @@ typedef struct x86_def_t { > CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ > CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ > CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ > - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS) > + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | \ > + CPUID_DE) /* needed by Win7 64bit */ > /* partly implemented: > CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) > CPUID_PSE36 (needed for Solaris) */ > > > Hi Clemens, > > indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...". > In my test scenario Windows now reboots instead of showing the BSOD. > > This commit added the TCG feature bit trimming which broke Windows: > > commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c > Autor: Andre Przywara <andre.przywara@amd.com> Do Mär 11 14:39:03 2010 > Eintragender: Aurelien Jarno <aurelien@aurel32.net> Sa Mär 13 16:50:54 > 2010 > > x86/cpuid: add TCG feature bit trimming > > In KVM we trim the user provided CPUID bits to match the host CPU's > one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's > capabilities and apply it to the user bits. > This allows to let the CPU models reflect their native archetypes. > > Signed-off-by: Andre Przywara <andre.przywara@amd.com> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> > > > Andre, why don't we set the requested feature bits - no matter what TCG > provides? Stefan, could you tell me what QEMU ( ;-) ) HW configuration you use for your testing? I'm able to boot, but it still is very unstable - after a few seconds of running, I still run into BSODs. I think it's independent of the bug I was working on, but I'd like to test some more. BTW, I'm actually quite confident that the missing CPU-ID bit caused the 0x5D booting BSOD, since I took two kernel boot traces (one of QEMU stable crashing and a working VM) and the location the traces branched off from each other was where the CPU-ID bits were checked (and this one feature bit was the only thing that was not set properly for the check to succeed). -Clemens ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-10 17:20 ` Clemens Kolbitsch @ 2012-09-10 17:46 ` Stefan Weil 0 siblings, 0 replies; 8+ messages in thread From: Stefan Weil @ 2012-09-10 17:46 UTC (permalink / raw) To: Clemens Kolbitsch; +Cc: Andre Przywara, qemu-devel, Aurelien Jarno Am 10.09.2012 19:20, schrieb Clemens Kolbitsch: > On Mon, Sep 10, 2012 at 9:23 AM, Stefan Weil <sw@weilnetz.de> wrote: > > > Hi Clemens, > > indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...". > In my test scenario Windows now reboots instead of showing the BSOD. > > This commit added the TCG feature bit trimming which broke Windows: > > commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c > Autor: Andre Przywara <andre.przywara@amd.com> Do Mär 11 14:39:03 2010 > Eintragender: Aurelien Jarno <aurelien@aurel32.net> Sa Mär 13 16:50:54 > 2010 > > x86/cpuid: add TCG feature bit trimming > > In KVM we trim the user provided CPUID bits to match the host CPU's > one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's > capabilities and apply it to the user bits. > This allows to let the CPU models reflect their native archetypes. > > Signed-off-by: Andre Przywara <andre.przywara@amd.com> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> > > > Andre, why don't we set the requested feature bits - no matter what TCG > provides? > Stefan, > > could you tell me what QEMU ( ;-) ) HW configuration you use for your > testing? I'm able to boot, but it still is very unstable - after a few > seconds of running, I still run into BSODs. I think it's independent > of the bug I was working on, but I'd like to test some more. I run qemu-system-x86_64 (latest from git) withthe default CPU on a 64 bit Windows 7 host. QEMU uses that host's installation: qemu-system-x86_64 -m 1024 -snapshot -hda //PhysicalDrive/0 > > BTW, I'm actually quite confident that the missing CPU-ID bit caused > the 0x5D booting BSOD, since I took two kernel boot traces (one of > QEMU stable crashing and a working VM) and the location the traces > branched off from each other was where the CPU-ID bits were checked > (and this one feature bit was the only thing that was not set properly > for the check to succeed). > > -Clemens CPUID_DE is part of the PENTIUM_FEATURES macro, therefore I think it's a very old feature which was already supported by the Pentium CPU family. No wonder Windows complains when it is missing. This and maybe some more bits (there is a comment 'needed for Win64' for CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH which were also removed) should be set in TCG mode (as they are set with KVM). There remain two questions: * Do we need some TCG implementation for those bits? * Should the patch which adds CPUID_DEagain be committed before the other question was answered? Any patch in this area should also be sent to qemu-stable: this BSOD with Windows guests running on QEMU occurs rather often (just run a search on a web search engine to get many hits). Regards, Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error 2012-09-10 16:23 ` Stefan Weil 2012-09-10 17:20 ` Clemens Kolbitsch @ 2012-09-10 17:31 ` Aurelien Jarno 1 sibling, 0 replies; 8+ messages in thread From: Aurelien Jarno @ 2012-09-10 17:31 UTC (permalink / raw) To: Stefan Weil; +Cc: Andre Przywara, Clemens Kolbitsch, qemu-devel On Mon, Sep 10, 2012 at 06:23:43PM +0200, Stefan Weil wrote: > Am 10.09.2012 08:19, schrieb Clemens Kolbitsch: > >On Sat, Sep 8, 2012 at 11:22 AM, Clemens Kolbitsch > ><kolbitsch@lastline.com> wrote: > >>On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <sw@weilnetz.de> wrote: > >>>Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: > >>>>Hi guys, > >>>> > >>>>I need to run Win7 64bit in Qemu without KVM support. I found a few > >>>>messages concerning the "unsupported architecture" problem (Windows > >>>>shows a BSOD with "STOP 0x0000005D ..." on boot), for example > >>>> > >>>>http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html > >>>>or > >>>>http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 > >>>> > >>>>but I don't think there was ever a solution to the problem - at least > >>>>what is proposed does not work (I've tried stable and GIT versions). > >>>> > >>>>Since I have a decent background of modifying the Qemu internals, I'm > >>>>more than happy to contribute to solving this issue, but I'm not sure > >>>>if anyone is currently working on it (i.e., I don't want to start at 0 > >>>>in case someone is about to release a patch). > >>>> > >>>>Please let me know if there is already a know solution/workaround or > >>>>whoever might be working on it, please ping me so we can sync. > >>>> > >>>>BTW, in case this is necessary, here are the details of what I > >>>>need/what is not working: > >>>> > >>>>Qemu: current git-trunk, > >>>> > >>>>x86_64-softmmu$ ./qemu-system-x86_64 --version > >>>>QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard > >>>> > >>>>host: 64bit, Ubuntu LTS12.04 > >>>> > >>>>guest: 64bit Windows 7, no KVM possible > >>>> > >>>>Thanks! > >>>>-Clemens > >>> > >>>Hi Clemens, > >>> > >>>AFAIK, nobody is working on this issue which exists for a long time now. > >>>It would be great if you could find a solution to make QEMU without KVM > >>>work with Windows guests. > >>Hi Stefan, > >> > >>thanks for the info. I'll work on it then - hopefully I can come back > >>with a patch soon! > >> > >>>PS: It's QEMU, not Qemu. I modified the subject in my reply :-) > >>hehe, old habbit :) I'll try to remember - but why is the ML then > >>called "Qemu-devel" ? ;) > >After a first night of debugging, I have come up with a simple patch. > >I'm still testing and it seems it's not the ultimate solution yet > >(there are still bluescreens), but it already gets you much further > >while booting (using either the install CD or an actual image). > > > >This diffs against the current stable-1.1. As you can see, one of the > >feature bits of the CPUID are removed due to TCG not supporting them > >(or the TCG bitmask is just missing them). Since Qemu uses CPUID_DE in > > QEMU :-) > > >other locations, I'm assuming the bitmask is just wrong. > > > >Can someone confirm that TCG supports CPUID_DE ? If not, I'll need to > >work on this, otherwise I'll investigate why Win7 still crashes with a > >BSOD. > > > >Thanks! > >Clemens > > > > > >qemu$ git diff > >diff --git a/target-i386/cpu.c b/target-i386/cpu.c > >index 388bc5c..f2af36d 100644 > >--- a/target-i386/cpu.c > >+++ b/target-i386/cpu.c > >@@ -259,7 +259,8 @@ typedef struct x86_def_t { > > CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ > > CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ > > CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ > >- CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS) > >+ CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | \ > >+ CPUID_DE) /* needed by Win7 64bit */ > > /* partly implemented: > > CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) > > CPUID_PSE36 (needed for Solaris) */ > > Hi Clemens, > > indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...". > In my test scenario Windows now reboots instead of showing the BSOD. > > This commit added the TCG feature bit trimming which broke Windows: > > commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c > Autor: Andre Przywara <andre.przywara@amd.com> Do Mär 11 14:39:03 > 2010 > Eintragender: Aurelien Jarno <aurelien@aurel32.net> Sa Mär 13 > 16:50:54 2010 > > x86/cpuid: add TCG feature bit trimming > > In KVM we trim the user provided CPUID bits to match the host CPU's > one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's > capabilities and apply it to the user bits. > This allows to let the CPU models reflect their native archetypes. > > Signed-off-by: Andre Przywara <andre.przywara@amd.com> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> > > > Andre, why don't we set the requested feature bits - no matter what > TCG provides? > Well the CPU flags are supposed to represent what a code can use. If we announce things that we don't support, some code might enable some features or instructions that are just causing an illegal instruction. Now the question is to know if DE is implemented in TCG or not. It *seems* there are some parts implemented, but not fully. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-09-10 17:46 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-08 0:48 [Qemu-devel] Qemu (no kvm) Win7 (64bit) boot error Clemens Kolbitsch 2012-09-08 4:26 ` [Qemu-devel] QEMU " Stefan Weil 2012-09-08 18:22 ` Clemens Kolbitsch 2012-09-10 6:19 ` Clemens Kolbitsch 2012-09-10 16:23 ` Stefan Weil 2012-09-10 17:20 ` Clemens Kolbitsch 2012-09-10 17:46 ` Stefan Weil 2012-09-10 17:31 ` Aurelien Jarno
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.