parsa-epfl / qflex

Quick & Flexible Rack-Scale Computer Architecture Simulator
http://qflex.epfl.ch/
31 stars 10 forks source link

segmentation fault of qemu while launching Apache Spark #12

Closed Jeongseob closed 4 years ago

Jeongseob commented 6 years ago

Hi,

I have been trying to run Apache Spark on the debian-blank qcow2 image. I just downloaded the pre-built spark package, spark-2.1.0-bin-hadoop2.7.tgz and untar the file and ran the spark-shell like below.

cloudsuite@cloudsuite-debian:~/spark-2.1.0$ ./bin/spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Connection to localhost closed by remote host.
Connection to localhost closed.

While executing the shell, the qemu has been crashed due to a segmentation fault like below.

cloudsuite-debian login: ./run_instance.sh: line 276: 32420 Segmentation fault      (core dumped) $RUN_CFG $QEMU_PATH/qemu-system-aarch64 -machine virt -cpu cortex-a57 -smp $QEMU_CORE_NUM -m $MEM -kernel ${KERNEL_PATH}/${KERNEL} -append "console=ttyAMA0 root=/dev/sda2" -initrd ${KERNEL_PATH}/${INITRD} -nographic -rtc driftfix=slew $NETWORK_CONFIG $DISK_CONFIG $ICOUNT_CONFIG $FLEXUS $QUANTUM_OPT $QMP

So, I tried to debug with the generated core dump file with gdb. In helper_le_ldq_mmu function, the fault occurred. Does anyone experience similar issues?

jeongseob@concerto:~/qflex/scripts ((v1.0))$ gdb ../qemu/aarch64-softmmu/qemu-system-aarch64 core
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ../qemu/aarch64-softmmu/qemu-system-aarch64...done.

warning: core file may not match specified executable file.
[New LWP 32423]
[New LWP 32420]
[New LWP 454]
[New LWP 32421]
[New LWP 456]
[New LWP 457]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/jeongseob/qflex/qemu/aarch64-softmmu/qemu-system-aarch64 -machine virt -c'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000562f443f471d in helper_le_ldq_mmu (env=0x562f454f3670, addr=4040273032, oi=<optimized out>, retaddr=139776409157361)
    at /home/jeongseob/qflex/qemu/softmmu_template.h:242
242         haddr = addr + env->tlb_table[mmu_idx][index].addend;
[Current thread is 1 (Thread 0x7f2004aa7700 (LWP 32423))]
(gdb) bt
#0  0x0000562f443f471d in helper_le_ldq_mmu (env=0x562f454f3670, addr=4040273032, oi=<optimized out>, retaddr=139776409157361)
    at /home/jeongseob/qflex/qemu/softmmu_template.h:242
#1  0x00007f203b3740ae in code_gen_buffer ()
#2  0x0000562f443be9cc in cpu_tb_exec (itb=0x7f2011c00110, itb=0x7f2011c00110, cpu=0x7f203b37abf0 <code_gen_buffer+554802120>) at /home/jeongseob/qflex/qemu/cpu-exec.c:163
#3  cpu_arm_exec (cpu=cpu@entry=0x562f454eb3d0) at /home/jeongseob/qflex/qemu/cpu-exec.c:531
#4  0x0000562f443d9e2f in tcg_cpu_exec (cpu=0x562f454eb3d0) at /home/jeongseob/qflex/qemu/cpus.c:1526
#5  0x0000562f443db873 in tcg_exec_all () at /home/jeongseob/qflex/qemu/cpus.c:1561
#6  qemu_tcg_cpu_thread_fn (arg=<optimized out>) at /home/jeongseob/qflex/qemu/cpus.c:1182
#7  0x00007f205b0a46ba in start_thread (arg=0x7f2004aa7700) at pthread_create.c:333
#8  0x00007f205adda3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb)

Host: Ubuntu 16.04 qflex: v1.0 image: debian-blank.qcow2 run mode: without flexus

Thanks, Jeongseob

neo-apz commented 4 years ago

We've released a new version of QFlex. You can give it a try and let us know if you see any issues. I'll close this issue for now.