Re: Aros (icaros) system fails to reboot in kvm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

>From 49e5d97bd85e5097c5846e239201cc71a77e32bc Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@xxxxxxxxxx>
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@xxxxxxxxxx>
---
 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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux