Hi all, I'm Initializing the Local and IO APIC for a propeitary operating system running in Virtualized Environment . Im facing some problem with qemu-kvm but the code runs fine with qemu. when i run my kernel image with qemu-kvm it gives emulation error failure trying to execute the code outside ROM or RAM at fec00000(IO APIC base address) but the same code runs fine with qemu. can anyone please point me where might be the problem or how to find out this one? Warm Regards, Ravi Kulkarni.
On 2011-02-04 14:35, Ravi Kumar Kulkarni wrote:> Hi all, > I'm Initializing the Local and IO APIC for a propeitary operating > system running in Virtualized Environment . > Im facing some problem with qemu-kvm but the code runs fine with qemu.Does it also run fine with qemu-kvm and -no-kvm-irqchip? What versions of the kernel and qemu-kvm are you using? If not the latest git, does updating change the picture?> when i run my kernel image with qemu-kvm it gives emulation error failure > trying to execute the code outside ROM or RAM at fec00000(IO APIC base address) > but the same code runs fine with qemu. can anyone please point me > where might be the problem or how to find out this one?Start with capturing the activity of you guest via ftrace, enabling all kvm:* events. You may also try to attach gdb to qemu and analyze the different code path in both versions (specifically if you have debugging symbols for your guest). BTW, is your OS doing any fancy [IO]APIC relocations? Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux
On 02/04/2011 03:58 PM, Jan Kiszka wrote:> > when i run my kernel image with qemu-kvm it gives emulation error failure > > trying to execute the code outside ROM or RAM at fec00000(IO APIC base address) > > but the same code runs fine with qemu. can anyone please point me > > where might be the problem or how to find out this one?Please post the error message.> Start with capturing the activity of you guest via ftrace, enabling all > kvm:* events. You may also try to attach gdb to qemu and analyze the > different code path in both versions (specifically if you have debugging > symbols for your guest).The easy way to do that is trace-cmd (http://lwn.net/Articles/341902/): $ trace-cmd record -e kvm -b 20000 ... ^C $ trace-cmd report -- error compiling committee.c: too many arguments to function
Ravi Kumar Kulkarni
2011-Feb-07 08:33 UTC
[SeaBIOS] IO APIC emulation failure with qemu-kvm
On Sun, Feb 6, 2011 at 10:50 PM, Avi Kivity <avi at redhat.com> wrote:> On 02/04/2011 03:58 PM, Jan Kiszka wrote: >> >> > ? when i run my kernel image with qemu-kvm it gives emulation error >> > failure >> > ?trying to execute the code outside ROM or RAM at fec00000(IO APIC base >> > address) >> > ?but the same code runs fine with qemu. can anyone please point me >> > ?where might be the problem or how to find out this one? > > Please post the error message.Im attachin the error message in kvm.txt file with above mail.> >> Start with capturing the activity of you guest via ftrace, enabling all >> kvm:* events. You may also try to attach gdb to qemu and analyze the >> different code path in both versions (specifically if you have debugging >> symbols for your guest). > > The easy way to do that is trace-cmd (http://lwn.net/Articles/341902/): > > $ trace-cmd record -e kvm -b 20000 > ... > ^C > $ trace-cmd reportplease give me some time to set up the trace-cmd utility for capture. i also want to run with the latest kernel and qemu-kvm once. i will post the results soon. the kernel version im using is 2.6.33 and qemu-kvm version is 0.12.3 and qemu version is 0.13. also im not doing any fancy relocations with the IO APIC.> > -- > error compiling committee.c: too many arguments to function-------------- next part -------------- KVM internal error. Suberror: 1 rax 000000000000000d rbx 000000001e2db2a6 rcx 00000000fa4bec19 rdx 0000000000000088 rsi 000000001f4de1ea rdi 0000000000000000 rsp 00000000000c0004 rbp 000000001f464fbb r8 0000000000000000 r9 0000000000000000 r10 0000000000000000 r11 0000000000000000 r12 0000000000000000 r13 0000000000000000 r14 0000000000000000 r15 0000000000000000 rip 000000001e2f3f7b rflags 00010097 cs 0008 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type b l 0 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 0040 (00000000/ffffffff p 1 dpl 3 db 1 s 1 type 3 l 0 g 1 avl 0) ss 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 3 l 0 g 1 avl 0) fs 0040 (00000000/ffffffff p 1 dpl 3 db 1 s 1 type 3 l 0 g 1 avl 0) gs 0040 (00000000/ffffffff p 1 dpl 3 db 1 s 1 type 3 l 0 g 1 avl 0) tr 004b (1f522206/00000067 p 1 dpl 3 db 0 s 0 type b l 0 g 0 avl 1) ldt 0000 (00000000/0000ffff p 1 dpl 0 db 0 s 0 type 2 l 0 g 0 avl 0) gdt 1f522006/7f idt 1f9af000/7ff cr0 11 cr2 0 cr3 0 cr4 0 cr8 0 efer 0 emulation failure, check dmesg for details