Hi
I am trying to run an application in gem5 x86 SE mode. I compiled the
binary using the -static flags as required. Now I compiled this with static
boost libraries and when I run it normally , the executable runs about 9
threads. Now when I run this on gem5 , i get an error message that I don't
quite know how to interpret.
gem5 compiled Jul 2 2019 16:21:49
gem5 started Jul 10 2019 12:58:40
command line: build/X86/gem5.opt configs/example/krish/simple.py
Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range
assigned (512 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
Beginning simulation!
info: Entering event queue @ 0. Starting simulation...
warn: ignoring syscall set_robust_list(...)
warn: ignoring syscall rt_sigaction(...)
(further warnings will be suppressed)
warn: ignoring syscall rt_sigprocmask(...)
(further warnings will be suppressed)
warn: readlink() called on '/proc/self/exe' may yield unexpected results in
various settings.
Returning '/scratch2/gem5/tests/test-progs/lsd_slam/x86'
info: Increasing stack size by one page.
warn: ignoring syscall access(...)
info: Increasing stack size by one page.
warn: Attempting to open special file: /proc/filesystems. Ignoring.
Simulation may take un-expected code path or be non-deterministic until
proper handling is implemented.
warn: ignoring syscall access(...)
*/* Output from my program */*
*Reading Calibration from file
/scratch/Install/lsd_slam_noros/data/sequence_31/camera.txt ... found!found
FOV camera model, building rectifier.Input resolution: 1280 1024In:
0.535719 0.669567 0.493249 0.500409 0.897966Out: CropOutput resolution: 640
480new K: 277.523987 291.680328 312.474304 240.035583old K: 685.720764
685.636475 630.858154 511.918457Prepped Warp matrices*
warn: ignoring syscall mprotect(...)
*terminate called after throwing an instance of
'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error>
>' what(): boost::thread_resource_error: Resource temporarily
>unavailable*Exiting
@ tick 18446744073709551615 because simulate() limit reached
The boost library is throwing this error. After browsing on the web , I
realize that boost is not able to allocate resources for the threads. So my
questions are :
1) Can we run multiple threads on a single CPU in gem5 SE mode ?
2) Could this be a size related issue ? I set my DRAM capacity to 512 MB
and maybe isn't enough for thread stacks ?
3) I recall reading in the gem5 page that SE mode does'nt have a thread
scheduler. Only FS mode supports it . Could this be the source of the
problem ? If yes , is my only option a FS simulation ?
3) Also when creating the binary with gcc and -static option , can we use
the static libc library that comes with linux ? I remember getting a
warning that :
*cl_runtime.cpp:(.text._ZL15opencl_check_fni+0xab): warning: Using 'dlopen'
in statically linked applications requires at runtime the shared libraries
from the glibc version used for
linking/usr/lib//x86_64-linux-gnu/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o):
In function `lookup_gid_name':(.text+0x11d7): warning: Using 'getgrgid_r'
in statically linked applications requires at runtime the shared libraries
from the glibc version used for linking*
does the loader in gem5 automatically link with libc ? Could this be
causing any issues ?
Thank you for your time
Krish
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users