Re: [PATCH 0/5] Split the emulator: decode & execute

Avi Kivity
2007-09-12T11:40:17Z

Laurent Vivier wrote:
> Avi Kivity wrote:
>
>> Laurent Vivier wrote:
>>
>>> These patches split the emulator in two parts: one to decode the
>>> instruction,
>>> the other to execute it. The decode part is then called only when needed.
>>>
>>>
>>>
>> Patchset looks good, but fails booting FC6 x86-64 on Intel. It may be a
>> merge error (did not apply cleanly due to other changes). I pushed this
>> as a 'split-emulator' branch on the kvm.git repository.
>>
>>
>
> I'm not able to reproduce the problem. Could I have more details (like guest
> kernel version and how it fails) ?
>

Running the split-emulator branch with
'qemu/x86_64-softmmu/qemu-system-x86_64 /images/fc6.img -no-kvm-irqchip'
I get

exception 14 (3)
rax 0000000000000000 rbx 0000000000000040 rcx 0000000000000180 rdx
0000000000000005
rsi 00007fff128c50b0 rdi ffff8100078e8580 rsp ffff81000105fb60 rbp
ffff8100008fc2c0
r8 0000000000000000 r9 0000000000000000 r10 0000000000000000 r11
0000017f00000008
r12 0000000000000000 r13 0000000000000180 r14 00007fff128c50b0 r15
0000000000000180
rip ffffffff8111769f rflags 00010206
cs 0010 (00000000/ffffffff p 1 dpl 0 db 0 s 1 type b l 1 g 1 avl 0)
ds 0000 (00000000/ffffffff p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
es 0000 (00000000/ffffffff p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
ss 0018 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 3 l 0 g 1 avl 0)
fs 0000 (2aaaab679710/ffffffff p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
gs 0000 (ffffffff813ec000/ffffffff p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
tr 0040 (ffff810001006000/0000206f p 1 dpl 0 db 0 s 0 type b l 0 g 0 avl 0)
ldt 0000 (00000000/ffffffff p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
gdt ffffffff81458000/80
idt ffffffff814bc000/fff
cr0 8005003b cr2 2aaaaaad33dc cr3 7934000 cr4 6e0 cr8 0 efer d01
Aborted

Running split-emulator~5 (i.e. with your patches backed out) is fine.
Guest kernel is 2.6.22.2-42.fc6, x86_64. Host kernel is kvm.git on the
branch specified.

Running 'gdb vmlinux' on the guest kernel and disassebling the indicated
rip may help in finding out which instruction is misemulated.

--
error compiling committee.c: too many arguments to function