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.
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