Patchwork target-i386: Do not announce extended mwait features

login
register
mail settings
Submitter Adam Lackorzynski
Date March 16, 2011, 2:25 p.m.
Message ID <1300285539-30905-1-git-send-email-adam@os.inf.tu-dresden.de>
Download mbox | patch
Permalink /patch/87262/
State New
Headers show

Comments

Adam Lackorzynski - March 16, 2011, 2:25 p.m.
CPUID claims that extended monitor/mwait features are available but the
mwait helper instantly raises a GPF if they are used. Thus do not announce
that the extension are available.

Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
---
 target-i386/cpuid.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Alexander Graf - March 16, 2011, 5:19 p.m.
On 03/16/2011 03:25 PM, Adam Lackorzynski wrote:
> CPUID claims that extended monitor/mwait features are available but the
> mwait helper instantly raises a GPF if they are used. Thus do not announce
> that the extension are available.

Would be better to just implement mwait, no?


Alex

> Signed-off-by: Adam Lackorzynski<adam@os.inf.tu-dresden.de>
> ---
>   target-i386/cpuid.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
> index 5382a28..28275a6 100644
> --- a/target-i386/cpuid.c
> +++ b/target-i386/cpuid.c
> @@ -1104,7 +1104,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
>           /* mwait info: needed for Core compatibility */
>           *eax = 0; /* Smallest monitor-line size in bytes */
>           *ebx = 0; /* Largest monitor-line size in bytes */
> -        *ecx = CPUID_MWAIT_EMX | CPUID_MWAIT_IBE;
> +        *ecx = 0; /* Supported extensions */
>           *edx = 0;
>           break;
>       case 6:

Patch

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 5382a28..28275a6 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -1104,7 +1104,7 @@  void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
         /* mwait info: needed for Core compatibility */
         *eax = 0; /* Smallest monitor-line size in bytes */
         *ebx = 0; /* Largest monitor-line size in bytes */
-        *ecx = CPUID_MWAIT_EMX | CPUID_MWAIT_IBE;
+        *ecx = 0; /* Supported extensions */
         *edx = 0;
         break;
     case 6: