From: Avi Kivity <avi@redhat.com>
To: Michal Suchanek <hramrach@gmail.com>
Cc: kvm@vger.kernel.org, Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Subject: Re: Aros (icaros) system fails to reboot in kvm
Date: Wed, 28 Mar 2012 19:02:40 +0200 [thread overview]
Message-ID: <4F734430.8090409@redhat.com> (raw)
In-Reply-To: <CAOMqctRph+a9AHBdV8Z0gQhMRkg=sEO8SCO1CqTyDua_Zi7uvQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2379 bytes --]
On 03/27/2012 04:55 PM, Michal Suchanek wrote:
> Hello,
>
> I downloaded a live CD of icaros here:
>
> http://www.icarosdesktop.com/dl.htm
> http://www.icarosdesktop.com/icarosfiles/IcarosLive_1_4_0.7z.exe
> http://www.icarosdesktop.com/icarosfiles/IcarosLight_1_4_0.7z
>
> I run kvm on
>
> ii linux-image-3.2.0-1-amd64 3.2.6-1 Linux
> 3.2 for 64-bit PCs
> ii qemu-kvm 1.0+dfsg-9 Full
> virtualization on x86 hardware
> Linux OptiPlex960 3.2.0-1-amd64 #1 SMP Wed Feb 1 08:56:58 UTC 2012
> x86_64 GNU/Linux
> Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
>
> To reproduce:
>
> 1) download one of the archives
>
> 2) extract the .iso image
>
> 3) boot the CD
>
> 4) right click in the top left corner, select shut down
>
> 5) select restart machine
>
> does not happen wiht -no-kvm
>
> $ kvm -m 2048 -cdrom Live/icaros-pc-i386.iso
> KVM internal error. Suberror: 1
> emulation failure
> EAX=00000000 EBX=00000361 ECX=00000000 EDX=000003a2
> ESI=02f2e980 EDI=fc0dd830 EBP=010c9d34 ESP=010c9cf0
> EIP=7fe84616 EFL=00013246 [---Z-P-] CPL=3 II=0 A20=1 SMM=0 HLT=0
> ES =0023 00000000 ffffffff 00c0f300 DPL=3 DS [-WA]
> CS =001b 00000000 ffffffff 00c0fb00 DPL=3 CS32 [-RA]
> SS =0023 00000000 ffffffff 00c0f300 DPL=3 DS [-WA]
> DS =0023 00000000 ffffffff 00c0f300 DPL=3 DS [-WA]
> FS =0000 00000000 ffffffff 00000000
> GS =0000 00000000 ffffffff 00000000
> LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
> TR =0030 00000040 00000067 00008b00 DPL=0 TSS32-busy
> GDT= 00000900 0000003f
> IDT= 00000100 000007ff
> CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000600
> DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000
> DR3=0000000000000000
> DR6=00000000ffff0ff0 DR7=0000000000000400
> EFER=0000000000000000
> Code=86 a0 00 00 00 0f 28 06 0f 28 4e 10 0f 28 56 20 0f 28 5e 30 <0f>
> 2b 07 0f 2b 4f 10 0f 2b 57 20 0f 2b 5f 30 83 c6 40 83 c7 40 83 eb 40
> 7d d0 e9 b4 00 00
>
>
0: 0f 2b 07 movntps %xmm0,(%edi)
3: 0f 2b 4f 10 movntps %xmm1,0x10(%edi)
7: 0f 2b 57 20 movntps %xmm2,0x20(%edi)
b: 0f 2b 5f 30 movntps %xmm3,0x30(%edi)
Please try the attached patch.
Stefan, this also doesn't check for alignment. Do you have something in
the works?
--
error compiling committee.c: too many arguments to function
[-- Attachment #2: 0001-KVM-x86-emulator-implement-movntps.patch --]
[-- Type: text/x-patch, Size: 1333 bytes --]
>From 49e5d97bd85e5097c5846e239201cc71a77e32bc Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@redhat.com>
Date: Wed, 28 Mar 2012 18:59:48 +0200
Subject: [PATCH] KVM: x86 emulator: implement movntps
Used to write to framebuffers (by at least Icaros).
Note: lacks #GP on unaligned writes.
Signed-off-by: Avi Kivity <avi@redhat.com>
---
arch/x86/kvm/emulate.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 8375622..11c700a 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -3418,6 +3418,10 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt)
N, N, N, I(Sse, em_movdqu),
};
+static struct gprefix pfx_vmovntpx = {
+ I(0, em_movdqu), N, N, N,
+};
+
static struct opcode opcode_table[256] = {
/* 0x00 - 0x07 */
I6ALU(Lock, em_add),
@@ -3549,7 +3553,8 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt)
IIP(ModRM | SrcMem | Priv | Op3264, em_cr_write, cr_write, check_cr_write),
IIP(ModRM | SrcMem | Priv | Op3264, em_dr_write, dr_write, check_dr_write),
N, N, N, N,
- N, N, N, N, N, N, N, N,
+ N, N, N, GP(ModRM | DstMem | SrcReg | Sse | Mov, &pfx_vmovntpx),
+ N, N, N, N,
/* 0x30 - 0x3F */
II(ImplicitOps | Priv, em_wrmsr, wrmsr),
IIP(ImplicitOps, em_rdtsc, rdtsc, check_rdtsc),
--
1.7.9
next prev parent reply other threads:[~2012-03-28 17:02 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-27 14:55 Aros (icaros) system fails to reboot in kvm Michal Suchanek
2012-03-28 17:02 ` Avi Kivity [this message]
2012-03-28 17:44 ` Michal Suchanek
2012-03-29 9:35 ` Avi Kivity
2012-03-29 14:35 ` Michal Suchanek
2012-03-29 15:00 ` Avi Kivity
[not found] ` <CAOMqctR0FeQ-EabPMbgMZ6C4pVb-ttXy+gbqJp0ecwA4xzTWKw@mail.gmail.com>
[not found] ` <4F747A78.1060302@redhat.com>
2012-05-10 15:09 ` Michal Suchanek
2012-05-20 17:36 ` Avi Kivity
2012-03-29 6:43 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F734430.8090409@redhat.com \
--to=avi@redhat.com \
--cc=hramrach@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=stefanha@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.