* Aros (icaros) system fails to reboot in kvm @ 2012-03-27 14:55 Michal Suchanek 2012-03-28 17:02 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Michal Suchanek @ 2012-03-27 14:55 UTC (permalink / raw) To: kvm 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 PS please cc me if you need more information Thanks Michal ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-27 14:55 Aros (icaros) system fails to reboot in kvm Michal Suchanek @ 2012-03-28 17:02 ` Avi Kivity 2012-03-28 17:44 ` Michal Suchanek 2012-03-29 6:43 ` Stefan Hajnoczi 0 siblings, 2 replies; 9+ messages in thread From: Avi Kivity @ 2012-03-28 17:02 UTC (permalink / raw) To: Michal Suchanek; +Cc: kvm, Stefan Hajnoczi [-- 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 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-28 17:02 ` Avi Kivity @ 2012-03-28 17:44 ` Michal Suchanek 2012-03-29 9:35 ` Avi Kivity 2012-03-29 6:43 ` Stefan Hajnoczi 1 sibling, 1 reply; 9+ messages in thread From: Michal Suchanek @ 2012-03-28 17:44 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm, Stefan Hajnoczi Hello, On 28 March 2012 19:02, Avi Kivity <avi@redhat.com> wrote: >> > 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. > The attached patch applies to Debian kernel source with way too much fuzz. They don't have IIP but DIP in there, not sure what that means. Or maybe it applies to completely different table? --- /home/hramrach/Downloads/0001-KVM-x86-emulator-implement-movntps.patch 2012-03-28 19:07:34.000000000 +0200 +++ patch 2012-03-28 19:30:27.000000000 +0200 @@ -1,22 +1,6 @@ -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) +--- arch/x86/kvm/emulate.c.orig 2012-03-22 23:54:26.000000000 +0100 ++++ arch/x86/kvm/emulate.c 2012-03-28 19:29:51.000000000 +0200 +@@ -3165,6 +3165,10 @@ N, N, N, I(Sse, em_movdqu), }; @@ -27,16 +11,13 @@ 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), +@@ -3296,7 +3300,8 @@ + DIP(ModRM | SrcMem | Priv | Op3264, cr_write, check_cr_write), + DIP(ModRM | SrcMem | Priv | Op3264, 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), + DI(ImplicitOps | Priv, wrmsr), IIP(ImplicitOps, em_rdtsc, rdtsc, check_rdtsc), --- -1.7.9 - ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-28 17:44 ` Michal Suchanek @ 2012-03-29 9:35 ` Avi Kivity 2012-03-29 14:35 ` Michal Suchanek 0 siblings, 1 reply; 9+ messages in thread From: Avi Kivity @ 2012-03-29 9:35 UTC (permalink / raw) To: Michal Suchanek; +Cc: kvm, Stefan Hajnoczi On 03/28/2012 07:44 PM, Michal Suchanek wrote: > Hello, > > On 28 March 2012 19:02, Avi Kivity <avi@redhat.com> wrote: > >> > > 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. > > > The attached patch applies to Debian kernel source with way too much > fuzz. They don't have IIP but DIP in there, not sure what that means. > Or maybe it applies to completely different table? > If you're comfortable with git, you can simply fetch from git://git.kernel.org/pub/scm/virt/kvm/kvm.git emulator-movntps -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-29 9:35 ` Avi Kivity @ 2012-03-29 14:35 ` Michal Suchanek 2012-03-29 15:00 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Michal Suchanek @ 2012-03-29 14:35 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm, Stefan Hajnoczi On 29 March 2012 11:35, Avi Kivity <avi@redhat.com> wrote: > On 03/28/2012 07:44 PM, Michal Suchanek wrote: >> Hello, >> >> On 28 March 2012 19:02, Avi Kivity <avi@redhat.com> wrote: >> >> >> > 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. >> > >> The attached patch applies to Debian kernel source with way too much >> fuzz. They don't have IIP but DIP in there, not sure what that means. >> Or maybe it applies to completely different table? >> > > If you're comfortable with git, you can simply fetch from > > git://git.kernel.org/pub/scm/virt/kvm/kvm.git emulator-movntps > I could compile that but not load the module into my kernel so I guess I will pass on that unless you need additional testing. Thanks Michal ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-29 14:35 ` Michal Suchanek @ 2012-03-29 15:00 ` Avi Kivity [not found] ` <CAOMqctR0FeQ-EabPMbgMZ6C4pVb-ttXy+gbqJp0ecwA4xzTWKw@mail.gmail.com> 0 siblings, 1 reply; 9+ messages in thread From: Avi Kivity @ 2012-03-29 15:00 UTC (permalink / raw) To: Michal Suchanek; +Cc: kvm, Stefan Hajnoczi On 03/29/2012 04:35 PM, Michal Suchanek wrote: > On 29 March 2012 11:35, Avi Kivity <avi@redhat.com> wrote: > > On 03/28/2012 07:44 PM, Michal Suchanek wrote: > >> Hello, > >> > >> On 28 March 2012 19:02, Avi Kivity <avi@redhat.com> wrote: > >> >> > >> > 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. > >> > > >> The attached patch applies to Debian kernel source with way too much > >> fuzz. They don't have IIP but DIP in there, not sure what that means. > >> Or maybe it applies to completely different table? > >> > > > > If you're comfortable with git, you can simply fetch from > > > > git://git.kernel.org/pub/scm/virt/kvm/kvm.git emulator-movntps > > > > I could compile that but not load the module into my kernel so I guess > I will pass on that unless you need additional testing. > Was there an error message? Did you reboot into the just compiled kernel? -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <CAOMqctR0FeQ-EabPMbgMZ6C4pVb-ttXy+gbqJp0ecwA4xzTWKw@mail.gmail.com>]
[parent not found: <4F747A78.1060302@redhat.com>]
* Re: Aros (icaros) system fails to reboot in kvm [not found] ` <4F747A78.1060302@redhat.com> @ 2012-05-10 15:09 ` Michal Suchanek 2012-05-20 17:36 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Michal Suchanek @ 2012-05-10 15:09 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm It does not work. Without the patch KVM git experiences emulation error, with the patch it just locks up. Also I don't see why would they use movntps for framebuffer. The graphics is up and running, only reboot hits this unimplemented opcode. Thanks Michal ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-05-10 15:09 ` Michal Suchanek @ 2012-05-20 17:36 ` Avi Kivity 0 siblings, 0 replies; 9+ messages in thread From: Avi Kivity @ 2012-05-20 17:36 UTC (permalink / raw) To: Michal Suchanek; +Cc: kvm On 05/10/2012 06:09 PM, Michal Suchanek wrote: > It does not work. > > Without the patch KVM git experiences emulation error, with the patch > it just locks up. I just tested it, and it worked for me; kvm.git next. Fastest reboot I've ever seen. > Also I don't see why would they use movntps for framebuffer. The > graphics is up and running, only reboot hits this unimplemented > opcode. Strange, yes. Maybe it's a bad reset implementation in qemu, which leads the guest to misdetect the graphics card, and then use movntps. What version of qemu are you using? -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Aros (icaros) system fails to reboot in kvm 2012-03-28 17:02 ` Avi Kivity 2012-03-28 17:44 ` Michal Suchanek @ 2012-03-29 6:43 ` Stefan Hajnoczi 1 sibling, 0 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2012-03-29 6:43 UTC (permalink / raw) To: Avi Kivity; +Cc: Michal Suchanek, kvm On Wed, Mar 28, 2012 at 07:02:40PM +0200, Avi Kivity wrote: > 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? No. If it's something you have time to implement, please go ahead. Stefan ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-05-20 17:36 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-27 14:55 Aros (icaros) system fails to reboot in kvm Michal Suchanek
2012-03-28 17:02 ` Avi Kivity
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
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.