On Fri, Aug 3, 2012 at 12:21 AM, nelson yeh <[email protected]> wrote:
> Hello Folks, > > > > I am a new starter of MARSS. I have a quiz and I would like to ask > you for some help. > > > > The quiz is about the interaction between QEMU and PTLsim. I use GDB to > observe the interaction. > > In my experiments, I try to use QEMU boot an custom Image (a primitive > Image of Debian for x86_64) and execute start_sim and stop_sim as usual. > > > > Notice that I recompile start_sim and stop_sim on my custom image. > > In the beginning, QEMU can successfully boot the custom image to run > start_sim. > > Then the program throws a segmentation fault while PTLsim is ending > start_sim. > > However, I can successfully run the the same executable program on the > ubuntu image that MARSS provides. > > Because I use the same executable programs (start_sim and stop_sim), the > executable program should be compatible. > > > > Since I use the same executable files and they are compatible for two > images, the result lets me confuse. > > > > Could you kindly help me to figure out where the problem is. Thanks a lot. > > > I think this issue comes from kernel. Segfault is due to invalid ioport index and address values. As you are running under gdb can you send the backtrace? Also in gdb after segault, run 'call dump_bbcache_to_logfile()' and send the logfile to find out which instruction is causing this crash. - Avadh > > > Oh~ The followings are the messages of my experiment > > > > ptlcall_mmio_write: calltype 2 at rip 4197283 (inside_ptlsim = 0 ) > > PTLCALL type PTLCALL_ENQUEUE > > MARSSx86::Command received : -run > > context 0 is : VCPU State: > > Architectural Registers: > > rax 0x0000000000000002 rcx 0x0000000000000001 rdx > 0x0000000000000001 rbx 0x00007fff475dcdc0 > > rsp 0x00007fff475dcd40 rbp 0x00007fff475dcd90 rsi > 0x0000000000000001 rdi 0x00007fff475dcdc0 > > r8 0x0000000000000000 r9 0x0000000000000000 r10 > 0x0000000000000000 r11 0x0000000000000246 > > r12 0x0000000000400830 r13 0x00007fff475dcef0 r14 > 0x0000000000000000 r15 0x0000000000000000 > > xmml0 0x252074726976202c xmmh0 0x0000000000000000 xmml1 > 0x0000000000000010 xmmh1 0x0000000000000d01 > > xmml2 0x0023001000000000 xmmh2 0x0000000000000000 xmml3 > 0x0000000000000000 xmmh3 0xffffffff81010ab0 > > xmml4 0xffffffff81037360 xmmh4 0x0000000000000000 xmml5 > 0x0000000000000000 xmmh5 0x0007010600070106 > > xmml6 0x0000000000000014 xmmh6 0x0000000000000000 xmml7 > 0x0000000000000000 xmmh7 0x0000000000000000 > > xmml8 0x0000000000000000 xmmh8 0x0000000000000000 xmml9 > 0x0000000000000000 xmmh9 0x0000000000000000 > > xmml10 0x0000000000000000 xmmh10 0x0000000000000000 xmml11 > 0x0000000000000001 xmmh11 0xffff880005400000 > > xmml12 0x0000f7fec2436000 xmmh12 0x0000000000401000 xmml13 > 0x00007fffbccfd000 xmmh13 0xffffffffffffffff > > xmml14 0x0000f7fea2436000 xmmh14 0xffff880005403000 xmml15 > 0x0000f7fec2436000 xmmh15 0xffff880005404000 > > fptos 0x0000000000000000 fpsw 0x0000000000000000 fptags > 0x0000000000000000 fpstack 0x0000000000000000 > > msr 0xffffffffffffffff dlptr 0xffffffffffffffff trace > 0x0000000000000000 ctx 0x0000000001741590 > > rip 0x0000000000400c71 flags 0x0000000000000000 dlend > 0xffffffffffffffff selfrip 0x0000000000000000 > > nextrip 0x0000000000000000 ar1 0x0000000000000000 ar2 > 0x0000000000000000 zero 0x0000000000000000 > > Flags: > > Running? blocked > > Mode: user > > 32/64: 32-bit x86 > > IntEFLAGS: 00000000 (df 0) > > hflags: 0040c2b7 (QEMU internal flags) > > Segment Registers: > > cs selector [51] base [0] limit [4294967295] flags [10550016] > > ss selector [43] base [0] limit [4294967295] flags [12645120] > > ds selector [0] base [0] limit [0] flags [0] > > es selector [0] base [0] limit [0] flags [0] > > fs selector [0] base [139889874851616] limit [0] flags [0] > > gs selector [0] base [0] limit [0] flags [0] > > Segment Control Registers: > > Control Registers: > > cr0 2147811379 > > cr2 00007f3aa57e9a7c fault virtual address > > cr3 000000011c140000 page table base (mfn 1163584) > > cr4 1776 > > Debug Registers: > > dr0 0000000000000000 dr1 0000000000000000 dr2 0000000000000000 dr3 > 0000000000000000 > > dr4 0000000000000000 dr5 0000000000000000 dr6 0000000000000000 dr7 > 0000000000000000 > > Callbacks: > > Exception and Event Control: > > exception -1 errorcode 00000014 > > FPU: > > FP Control Word: 0x0000037f > > MXCSR: 0x00001f80 > > fp7 st(7) Valid 0x4000000000000000 => 2 > > fp6 st(6) Valid 0x4000000000000000 => 2 > > fp5 st(5) Valid 0x4000000000000000 => 2 > > fp4 st(4) Valid 0x4000000000000000 => 2 > > fp3 st(3) Valid 0x4000000000000000 => 2 > > fp2 st(2) Valid 0x4000000000000000 => 2 > > fp1 st(1) Valid 0x4000000000000000 => 2 > > fp0 st(0) Valid 0x4000000000000000 => 2 > > Internal State: > > Last internal exception: 0x0000000000000000 (NoException) > > > > Completed 0 cycles, 0 commits: 0 > Hz, 0 insns/sec: rip 0000000000400c71[Thread 0x7ffeb99b6700 (LWP > 21707) exited] > > Completed 1210000 cycles, 429424 commits: 131069 Hz, > 72844 insns/sec: rip ffffffff811952b4[New Thread 0x7ffeb99b6700 (LWP 21708)] > > Completed 1750000 cycles, 785082 commits: 63720 Hz, > 28145 insns/sec: rip ffffffff810ef9fc[Thread 0x7ffeb99b6700 (LWP 21708) > exited] > > Completed 3560000 cycles, 2258316 commits: 98781 Hz, > 29634 insns/sec: rip ffffffff81205776 > > Program received signal SIGSEGV, Segmentation fault. > > 0x0000000000479309 in ioport_write (index=1, address=485163988, data=4366) > at qemu/ioport.c:78 > > 78 IOPortWriteFunc *func = ioport_write_table[index][address]; > > _______________________________________________ > http://www.marss86.org > Marss86-Devel mailing list > [email protected] > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel > >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
