This repository has been archived by the owner on Jan 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 261
fork() system call execution #7
Comments
Hi, sorry for the late response. sched_setaffinity is not implemented in Graphene yet. We are planning to support scheduling APIs in the future by adding host interface to Graphene. Currently calling sched_setaffinity will get a warning "sched_setaffinity: Function not implemented" and return -ENOSYS to the application. I will suggest you modify the source code and bypass failed calls to sched_setaffinity. |
yamahata
added a commit
that referenced
this issue
Jul 24, 2019
When a helper thread exit voluntariy, the following segv happends. The reason for segv is, __handle_signal() tries to access shim_thread, it's already freed. This situation only happens with helper threads. exit system call doesn't trigger this pattern. So add __disable_preempt() before put_thread() in helper function as exeption. > #0 0x00007f99f900d77e in atomic_read (v=0x7f99f8d772b8) at ../../../Pal/lib/atomic.h:93 > #1 0x00007f99f900f800 in __handle_signal (tcb=0x7f99f9522ec0, sig=1) at bookkeep/shim_signal.c:677 > #2 0x00007f99f90052dd in enable_preempt (tcb=0x7f99f9522ec0) at ../include/shim_internal.h:507 > #3 0x00007f99f90053db in unlock (l=0x7f99f930c190 <vma_list_lock>) at ../include/shim_internal.h:581 > #4 0x00007f99f9007c65 in bkeep_munmap (addr=0x7f99f8d77000, length=8192, flags=536870912) at bookkeep/shim_vma.c:681 > #5 0x00007f99f90731f0 in __system_free (addr=0x7f99f8d77000, size=5176) at shim_malloc.c:102 > #6 0x00007f99f9072ead in slab_free (mgr=0x7f99f8dc6000, obj=0x7f99f8d77020) at ../../../Pal/lib/slabmgr.h:465 > #7 0x00007f99f90733e7 in free (mem=0x7f99f8d77020) at shim_malloc.c:332 > #8 0x00007f99f900ae99 in put_thread (thread=0x7f99f8d77020) at bookkeep/shim_thread.c:346 > #9 0x00007f99f90742c7 in shim_async_helper (arg=0x7f99f8d77020) at shim_async.c:271 > #10 0x00007f99f931cd76 in pal_thread_init (tcbptr=<optimized out>) at db_threading.c:75 > #11 0x00007f99f9321776 in clone () at clone-x86_64.S:105 Signed-off-by: Isaku Yamahata <isaku.yamahata@gmail.com>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hi,
I want to run a benchmark which makes some system calls. I have written a small program to test if some system calls were working, But the fork() function seems to be stuck in a infinite loop and never exits the program. The program runs successfully natively on Linux.
I have attached a part of the program here and the manifest file is similar to the manifest.template of opendjk example in the library.
_code snippet_
_manifest.template snippet_
I cloned and installed the library from GitHub just yesterday after seeing 'bugfix: process fork in LibOS' and ran the program. It gave the output and gets stuck.
The text was updated successfully, but these errors were encountered: