dbba7dea18
uti: Allow only the first do_fork() call to create a uti thread
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
b9c0cdddab
uti: Cosmetic change
2018-09-04 19:52:14 +09:00
7ee7dd5e2c
uti: Allow tracer to call release_handler() for the main process
...
Change-Id: I934a6eefbcb87473e87c109d6b4d32c7ab486894
2018-09-04 19:52:14 +09:00
07db4a80a7
__do_in_kernel_syscall: Move ihk_ikc_release_packet from mcexec_wait_syscall
...
Change-Id: Ieeb5fda42dbddc9da27242f4b547c2143659f97a
2018-09-04 19:52:14 +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
b8bacdd2de
Reference counting per-thread data
...
It is accompanied by the following fixes:
(1) Fix put ppd locations in mcexec_wait_syscall()
(2) Move put ptd to end of mcexec_terminate_thread_unsafe() and mcexec_ret_syscall()
(3) Add debug messages for ptd add/get/put
(4) Fix ptd-add/get/put matching in mcexec_wait_syscall()
* Skip put when woken-up from wait_event_interruptible() by signal
Change-Id: Ib9be3f5e62a7a370197cb36c9fa7c4d79f44c314
2018-09-04 19:52:14 +09:00
a121ffc785
uti: Release packet of reply from McKernel in backward_offload()
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
124ec580a0
uti: Call do_exit when tracer isn't working and do_syscall returned -ERESTARTSYS
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
c60a778c8d
uti: Zero-clear struct mckernel_exec_file before initialization
...
Change-Id: I315008b7f5c9e66a93b80da87d1a6332d717c2aa
2018-09-04 19:52:13 +09:00
25a129ea6a
uti: Disable jumping to McKernel futex code
2018-09-04 19:52:13 +09:00
8e9924c523
uti: Lock per_thread_data_hash_lock in mcctrl_put_per_proc_data()
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
ba93b83d68
uti: Add __user to mcexec_terminate_thread argument
...
Change-Id: Ic96a91e6a892a1bd2f1d333580e28bced6a40dc0
2018-09-04 19:52:13 +09:00
c2f41ca9ad
uti: Replace hand-made list of host_threads with Linux macro
...
Change-Id: Ib46cc9fcdd2854b7bbe21c2cc885beeb22d16dd2
2018-09-04 19:52:13 +09:00
062d7ecae3
uti: Use copy_from_user() in mcexec_terminate_thread()
2018-09-04 19:52:12 +09:00
58d038fcac
uti: Fix wrong argument passed to ihk_ikc_release_packet() in mcexec_terminate_thread()
2018-09-04 19:52:12 +09:00
510310342c
uti: Use fresh struct syscall_request instance when replying to syscall_backward()
2018-09-04 19:52:12 +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
85c0c8a01f
uti: Add debug messages for syscall
...
Change-Id: I2f96e71d5384f883f7dc568122c57d92bc1cd818
2018-09-04 19:52:12 +09:00
e29f579061
uti: Prevent user space vma from getting copied when forking
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
5c8c1986b5
uti: Add comment on ppd life cycle
...
Change-Id: Id16cf036b2d919444e8634b536fd701d996bcef2
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
31ac007cb5
uti: Increase CPU_HZ to 1000
...
Change-Id: I8619263845fd8ebabe6fc7de619a5b51ac04470a
2018-09-04 19:52:11 +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
439dc0928b
uti: Streamline syscall_backward()
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
9102b176c4
uti: Make per_proc_data of tracee survive over the signal-kill of the tracee
...
Change-Id: I8ff1dddb526ef2fd948cfe1b8f3aa8403c2006d6
2018-09-04 19:52:11 +09:00
bb4317beaf
uti: futex: Propagate -ERESTARTSYS returned by wait_event_interruptible()
...
Change-Id: Id36c4df0e0a8e1f64b12c635c0502f63552ba50b
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
4438f994dc
uti: Add/Modify test programs
...
Change-Id: I27a39d6b11af5243f93d07c31c2ef80f6727dd53
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
460917c4a0
remote_page_fault,syscall_backward: Zero-clear waitq entry
...
Change-Id: I151a35004183e911aaba766a8749830e1768bfe6
2018-09-04 19:52:10 +09:00
7803468afe
remote_page_fault,syscall_backward: Retry when interrupted by signal
...
Change-Id: Ic7d72ad9ca32bb3c8e3522e00fef1d98caf3c049
2018-09-04 19:52:10 +09:00
8f2c7d2265
Fix thread-safety issue in rus_vm_fault
...
Change-Id: I8640a8e0de8a0dfaee700b25e5f9e2941ac98fc8
2018-09-04 19:52:10 +09:00
c6c3a84a46
syscall: Add missing definition of thread to access thread->sigpending
2018-09-04 19:52:10 +09:00
5a7ca14fcc
rus_vm_fault: Return VM_FAULT_SIGBUS when per-process data is not found
2018-09-04 19:52:10 +09:00
d7b882855a
Correct comments in declaration of struct ikc_scd_packet
2018-09-04 19:52:10 +09:00
2337832e4c
pager_req_release(): Correct debug messages
2018-09-04 19:52:10 +09:00
be635ceb19
terminate: Fix coutning of non-leader threads
...
Change-Id: I8399ad553bb8e09bef508ac976e8cd56cdae8013
2018-09-04 19:51:11 +09:00
0b0b7b03d7
Prevent one CPU from getting chosen by concurrent forks
...
One CPU could be chosen by concurrent forks because CPU selection and
runq addition are not done atomicly. So this fix makes the two steps
atomic.
Change-Id: Ib6b75ad655789385d13207e0a47fa4717dec854a
2018-09-04 19:51:11 +09:00