9b77630c8b
mcexec: readlink and use full path for reexec
...
This fixes comm on linux side, showing mcexec instead of 'exe'
Change-Id: I9345d7a23dccb36b3a1e17fd3e7491eaeca54e5b
2018-10-04 01:03:10 +00:00
7e342751a2
do_syscall: Delegate system calls to the mcexec with the same pid
...
This includes the following fix:
send_syscall, do_syscall: remove argument pid
Fujitsu: POSTK_TEMP_FIX_26
Refs: #1165
Change-Id: I702362c07a28f507a5e43dd751949aefa24bc8c0
2018-09-13 16:59:47 +09:00
b51886421e
uti: Don't compile syscall_intercept related stuff when not specified with configure option
...
Change-Id: I9be8cb9b3fcae78d33a33b057c43caee23a81fc1
2018-09-05 16:29:20 +09:00
00a34a8ba3
uti: util_thread: Hoist uti_desc check
...
Change-Id: I8c4b75140df2fe149dfe20e0a8f0bf323b5f1763
2018-09-04 19:53:03 +09:00
8900c2cec5
uti: mcexec_uti_attr: Fix CPU binding decision
...
Change-Id: I4047858895503ae912e5575bb232dbbb2f915722
2018-09-04 19:53:03 +09:00
781a69617b
uti: Replace data types represented as arrays with C structures
...
Defining C structures for the following objects:
(1) Remote and local context
(2) Stack of system call arguments / return values
Change-Id: Iafbb6c795bd765e3c78c54a255d8a1e4d4536288
2018-09-04 19:53:03 +09:00
04d4145b3e
uti: Replace dead uti thread with new mcexec thread in proc->tids
...
Change-Id: Ic6e906dd1bfac1b07f1317732cbe0a5191831cd8
2018-09-04 19:53:03 +09:00
98ee584ab6
uti: Change field name of release_user_space_desc
...
Change-Id: I18ada86ec3835198c1a947d8ceb36075d6ff2e94
2018-09-04 19:53:02 +09:00
6b031c5472
uti: Fix condition for pthread_join of mcexec threads
...
Change-Id: Iaeee91c197b84436f84ce4380768aa79e7f9419e
2018-09-04 19:53:02 +09:00
e42c414454
uti: Hook system calls by binary-patching glibc
...
(1) Add --enable-uti option. The binary-patch library is
preloaded with this option.
(2) Binary-patching is done by syscall_intercept developed by Intel
This commit includes the following fixes:
(1) Fix do_exit() and terminate() handling
(2) Fix timing of killing mcexec threads when McKernel thread calls terminate()
Change-Id: Iad885e1e5540ed79f0808debd372463e3b8fecea
2018-09-04 19:53:02 +09:00
e613483bee
uti: Add system call profile
2018-09-04 19:53:02 +09:00
4969762f15
uti: Add usage of uti specific options to mcexec
2018-09-04 19:53:02 +09:00
8c11daf726
uti: Fix signal relay from mcexec to McKernel
...
Change-Id: I2ffd8049a0fb1637cfc6bab7fe24c6a85e5e53fc
2018-09-04 19:53:01 +09:00
5cb8a1f10f
uti: Workaround not to share CPU with OpenMP threads
...
* Assign uti thread to the last idle CPU so that it's not shared with
an OpenMP thread
Change-Id: Ia42cae056ce81fde9b6dab6286b39a52f3c9e172
2018-09-04 19:53:01 +09:00
b6ab5911b7
uti: Identify uti thread by clone count
...
--uti-thread-count <count> is added to mcexec.
Change-Id: Id9ec464412a5bb71e4d9e87d05f79de22d35b067
2018-09-04 19:53:01 +09:00
b0d7f890d0
uti: Reverse-offload msync()
2018-09-04 19:53:01 +09:00
f04e5c24ab
uti: Don't call mcexec_terminate_thread() when McKernel asks mcexec to interrupt system call
2018-09-04 19:52:14 +09:00
88f9693390
uti: Return -ENOSYS without offloading for set_robust_list()
...
Change-Id: I43466e3850fd2ad68e5754d1d460438fa47f3ed4
2018-09-04 19:52:13 +09:00
af7f61db49
uti: mcexec: Fix error check of pthread_detach
...
Change-Id: Idda8e060641bbd7b01c50163140a2c5f7466d193
2018-09-04 19:52:13 +09:00
ee299b5780
uti: Check size of syscall arguments for syscall_intercept
...
Change-Id: I747b90e1f521b08266cfc021ef4b23e2e3c7ba4c
2018-09-04 19:52:13 +09:00
c71291a429
mcctrl: Add mcexec_terminate_thread_unsafe()
...
Change-Id: I6ca54cdac2ab9449d40b22f7329f1a215e5aa33b
2018-09-04 19:52:13 +09:00
a6198f267b
uti: Offload set_robust_list to McKernel
2018-09-04 19:52:12 +09:00
5e78bd85ab
uti: Fix tracer exit code for the case when create_tracer() isn't called
2018-09-04 19:52:12 +09:00
63703589e5
uti: Clear user space PTEs after first fork in create_tracer()
...
Change-Id: I60755f0cb5e84c3a5a5cd91515411a30f0995822
2018-09-04 19:52:12 +09:00
e4370d235c
uti: Make tracer not call mcexec_terminate_thread() when tracee is killed by signal
...
Change-Id: I5878c7d623ce182a7cb9578c9d5c430c1bee8e1e
2018-09-04 19:52:12 +09:00
56da7e2de9
uti: Allocate memory area directly to uti_desc->wp
...
Change-Id: Ia5a1dbf56b937d9d05cd7fa1c5eec4a5b4b7b196
2018-09-04 19:52:11 +09:00
35300e7b4f
uti: Create tracer when forking
...
Change-Id: Ic66cf6289ac6f32a884ba1266e641ce61620a239
2018-09-04 19:52:11 +09:00
4b3e58fd3d
uti: Call terminate only when exit_group is called
...
Tracer tells McKernel side to call do_exit() in WIFSIGNALED case.
Change-Id: If85c6cbb4856036b406b11335f1384e57f26292d
2018-09-04 19:52:11 +09:00
b7cdbd6c42
uti: Enforce mcexec is destroyed and then McKernel process is destroyed
2018-09-04 19:52:11 +09:00
77f5cac2bf
uti: Make tracer exit when not used
...
Change-Id: I3d3b2f92fa2b160ffce633c46d1b60e9079e7f1b
2018-09-04 19:52:11 +09:00
d24b7585b7
uti: Make tracee pthread-detached
...
Change-Id: I672ee18739b956980901b63e55ee3ebc192b4e56
2018-09-04 19:52:11 +09:00
52afbbbc98
uti: Call into McKernel futex()
...
(1) Masquerade clv
(2) Fix timeout
(3) Let mcexec thread with the same tid as McKernel thread migrating
to Linux handles the migration request
(4) Call create_tracer() before creating proxy related objects
Change-Id: I6b2689b70db49827f10aa7d5a4c581aa81319b55
2018-09-04 19:52:10 +09:00
9d6e0319f7
atobytes(): restore postfix before return
2018-09-04 19:51:10 +09:00
a697f5e98d
partitioned execution: pass process rank to LWK
...
Cherry-pick of d2d134d5e6a4b16a34d55d31b14614a2a91ecf47
Conflicts:
kernel/include/process.h
2018-09-04 19:51:10 +09:00
221ce34da2
eclair: fix MAP_KERNEL_START and apply Fujitsu's proposals
...
(1) Cherry-pick of 644afd8b45fc253ad7b90849e99aae354bac5b17
(2) Pass length to functions with arguments of variable length
* POSTK_DEBUG_ARCH_DEP_38
(3) Separate architecture dependent functions/structures
* POSTK_DEBUG_ARCH_DEP_34
(4) Fix include path
* POSTK_DEBUG_ARCH_DEP_76
(5) Include config.h
* POSTK_DEBUG_ARCH_DEP_33
2018-09-04 19:51:09 +09:00
d5108dba80
arm64 eclair build: add missing explicit libs
...
Change-Id: I5b6f8825430c2d495da50d868a3f54fc0b354d84
2018-08-22 05:56:20 +00:00
d898f18293
mcexec: Do not close fd returned to mckernel side
...
Fixes: 9a79920ef9 ("Static analysis fixes")
Change-Id: I2b51d6e288e7bb2b0f4bff579fa237d575dcb026
Reported-by: Tomoki Shirasawa <tomoki.shirasawa.kk@hitachi-solutions.com >
2018-07-30 23:27:17 +00:00
6999d0a3f9
bind_mount_recursive: Use lstat instead of d_type of readdir
...
Change-Id: I0eb8d6c7e1fa5df6dbc5962a639901546a159d04
2018-07-26 18:38:48 +09:00
6df4bd8f8c
Fix a few more warnings
...
Some are important, e.g. the seemingly harmless braces around if with dprintf,
since that dprintf is defined as empty, will screw things up and grab the next
line
Change-Id: Ie5e1cf813178ad708ff42ae5e477fbc96034471c
2018-07-26 04:52:17 +00:00
a1b50051ed
mcexec: always compile debug statements
...
This helps catching errors like accessing a field that no longer exists
in a debug print that wasn't compiled...
Change-Id: If6c862ea2b866f819195aae93c7fd68e610fe48e
2018-07-26 03:38:00 +00:00
9a79920ef9
Static analysis fixes
...
Change-Id: I7bc42545a1c497f704d7bfa6ea1b7e3893acc697
2018-07-26 03:36:50 +00:00
b920da5103
execve: Use interp in shebang as is
...
Fujitsu: POSTK_DEBUG_TEMP_FIX_9
Refs: #995
Change-Id: I09751d13c4fecd68087d47815029c0b65e51f18a
2018-07-26 01:46:22 +00:00
86ae1380e4
configure.ac: Move man directory to share/man
...
Change-Id: Idaa5c0f61fbbe3bda4697bc59487f562e09ff2d6
2018-06-11 13:13:13 +09:00
328609269b
Clean up "Detect hang of McKernel in mcexec"
...
* Clean up error checks
2018-06-01 14:51:07 +09:00
056fdb2633
Fix "Detect hang of McKernel in mcexec"
...
1. Call exit() when detecting hang
2. Clean up error checks
2018-06-01 14:21:19 +09:00
09d0a59e22
Detect hang of McKernel in mcexec
...
mcexec spawns a thread which detects hang of McKernel by using
ihk_os_get_eventfd().
Change-Id: I6cf0ee0c1f0c2c31a8422224b2105f64a9b9ab93
2018-06-01 10:44:34 +09:00
aaa246f86f
mcexec: change debug printf macros to be more tolerant to trivial format
...
Enabling DEBUG fails to compile. It'd be easy to fix the dprintf to dprint
but this is just as generic and we can now use dprintf everywhere
2018-05-11 09:23:46 +09:00
12e44050c9
mcexec: drop READ_IMPLIES_EXEC from personality to avoid device file mapping failure
2018-04-02 20:12:54 +09:00
c9157f273f
do_fork: If mcexec succeeds for fork and McKernel fails fork, the child process of mcexec will remain.
2018-02-14 16:37:38 +09:00
748429fc92
do_generic_syscall: Even if the system call is normal, if errno is not zero, it returns an error. (TEMP_FIX_75)
2018-02-03 21:37:12 +09:00