Masamichi Takagi
c60a778c8d
uti: Zero-clear struct mckernel_exec_file before initialization
...
Change-Id: I315008b7f5c9e66a93b80da87d1a6332d717c2aa
2018-09-04 19:52:13 +09:00
Masamichi Takagi
25a129ea6a
uti: Disable jumping to McKernel futex code
2018-09-04 19:52:13 +09:00
Masamichi Takagi
8e9924c523
uti: Lock per_thread_data_hash_lock in mcctrl_put_per_proc_data()
2018-09-04 19:52:13 +09:00
Masamichi Takagi
c71291a429
mcctrl: Add mcexec_terminate_thread_unsafe()
...
Change-Id: I6ca54cdac2ab9449d40b22f7329f1a215e5aa33b
2018-09-04 19:52:13 +09:00
Masamichi Takagi
ba93b83d68
uti: Add __user to mcexec_terminate_thread argument
...
Change-Id: Ic96a91e6a892a1bd2f1d333580e28bced6a40dc0
2018-09-04 19:52:13 +09:00
Masamichi Takagi
c2f41ca9ad
uti: Replace hand-made list of host_threads with Linux macro
...
Change-Id: Ib46cc9fcdd2854b7bbe21c2cc885beeb22d16dd2
2018-09-04 19:52:13 +09:00
Masamichi Takagi
062d7ecae3
uti: Use copy_from_user() in mcexec_terminate_thread()
2018-09-04 19:52:12 +09:00
Masamichi Takagi
58d038fcac
uti: Fix wrong argument passed to ihk_ikc_release_packet() in mcexec_terminate_thread()
2018-09-04 19:52:12 +09:00
Masamichi Takagi
a6198f267b
uti: Offload set_robust_list to McKernel
2018-09-04 19:52:12 +09:00
Masamichi Takagi
5e78bd85ab
uti: Fix tracer exit code for the case when create_tracer() isn't called
2018-09-04 19:52:12 +09:00
Masamichi Takagi
85c0c8a01f
uti: Add debug messages for syscall
...
Change-Id: I2f96e71d5384f883f7dc568122c57d92bc1cd818
2018-09-04 19:52:12 +09:00
Masamichi Takagi
e29f579061
uti: Prevent user space vma from getting copied when forking
2018-09-04 19:52:12 +09:00
Masamichi Takagi
63703589e5
uti: Clear user space PTEs after first fork in create_tracer()
...
Change-Id: I60755f0cb5e84c3a5a5cd91515411a30f0995822
2018-09-04 19:52:12 +09:00
Masamichi Takagi
5c8c1986b5
uti: Add comment on ppd life cycle
...
Change-Id: Id16cf036b2d919444e8634b536fd701d996bcef2
2018-09-04 19:52:12 +09:00
Masamichi Takagi
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
Masamichi Takagi
56da7e2de9
uti: Allocate memory area directly to uti_desc->wp
...
Change-Id: Ia5a1dbf56b937d9d05cd7fa1c5eec4a5b4b7b196
2018-09-04 19:52:11 +09:00
Masamichi Takagi
35300e7b4f
uti: Create tracer when forking
...
Change-Id: Ic66cf6289ac6f32a884ba1266e641ce61620a239
2018-09-04 19:52:11 +09:00
Masamichi Takagi
439dc0928b
uti: Streamline syscall_backward()
2018-09-04 19:52:11 +09:00
Masamichi Takagi
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
Masamichi Takagi
b7cdbd6c42
uti: Enforce mcexec is destroyed and then McKernel process is destroyed
2018-09-04 19:52:11 +09:00
Masamichi Takagi
77f5cac2bf
uti: Make tracer exit when not used
...
Change-Id: I3d3b2f92fa2b160ffce633c46d1b60e9079e7f1b
2018-09-04 19:52:11 +09:00
Masamichi Takagi
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
Masamichi Takagi
d24b7585b7
uti: Make tracee pthread-detached
...
Change-Id: I672ee18739b956980901b63e55ee3ebc192b4e56
2018-09-04 19:52:11 +09:00
Masamichi Takagi
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
Masamichi Takagi
460917c4a0
remote_page_fault,syscall_backward: Zero-clear waitq entry
...
Change-Id: I151a35004183e911aaba766a8749830e1768bfe6
2018-09-04 19:52:10 +09:00
Masamichi Takagi
7803468afe
remote_page_fault,syscall_backward: Retry when interrupted by signal
...
Change-Id: Ic7d72ad9ca32bb3c8e3522e00fef1d98caf3c049
2018-09-04 19:52:10 +09:00
Masamichi Takagi
8f2c7d2265
Fix thread-safety issue in rus_vm_fault
...
Change-Id: I8640a8e0de8a0dfaee700b25e5f9e2941ac98fc8
2018-09-04 19:52:10 +09:00
Masamichi Takagi
5a7ca14fcc
rus_vm_fault: Return VM_FAULT_SIGBUS when per-process data is not found
2018-09-04 19:52:10 +09:00
Masamichi Takagi
d7b882855a
Correct comments in declaration of struct ikc_scd_packet
2018-09-04 19:52:10 +09:00
Masamichi Takagi
2337832e4c
pager_req_release(): Correct debug messages
2018-09-04 19:52:10 +09:00
Masamichi Takagi
82914c6a2e
remote_page_fault: Retry when interrupted
...
Change-Id: Ib71a87ad03420e1918dc97da43351cb93e7d0754
2018-09-04 19:51:11 +09:00
Masamichi Takagi
f127dfdf1e
mcexec_create_per_process_data: Zero ppd on allocation
...
Change-Id: I06306f30ce30ad6ddc6e8b8cab46ee39be0e4940
2018-09-04 19:51:11 +09:00
Balazs Gerofi
9d6e0319f7
atobytes(): restore postfix before return
2018-09-04 19:51:10 +09:00
Balazs Gerofi
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
Masamichi Takagi
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
Tomoki Shirasawa
895a8c4099
procfs: Support multiple reads of e.g. /proc/*/maps
...
Refs: #1021
Change-Id: If36e1a0f3f41f0215868daf578e96775d96a59a3
2018-08-30 01:48:06 +00:00
Dominique Martinet
e531ee626e
mcctrl pager: handle pagers more properly
...
the pagers are all destroyed when linux thinks there is no process left,
but there is no synchronisation with mcexec on that and some new process
might have spawned and started using these pagers in the meantime,
leading to weird crashes because an invalid pager was used.
The reason we're cleaning up pagers when no process is left is that
mcctrl does not handle pager_req_release is the linux-side process got
killed or died before the mckernel one for some reason, so:
- move pager_req_release to a new __do_in_kernel_irq_syscall() helper
- have free_all_process_memory_range not set MF_HOST_RELEASED on the
memobj
- just in case, clean up everything like before on mcctrl shutdown
instead of when no process is left.
Change-Id: I53b8b9b81b1e5b807593850af17b5ea5e8471174
Refs: #1154
2018-08-24 09:18:20 +09:00
Dominique Martinet
9b8424523a
mcctrl: remove rus page cache
...
Change-Id: Ieed7a2a0077ffde3fec8a64d2051e56a53924a42
2018-08-23 02:10:44 +00:00
Dominique Martinet
689a799bb9
mcctrl prepare_image: return reserve_user_space error
...
Change-Id: I00556cb58b12acca888f9512c144a3ce3f5332b1
2018-08-22 07:14:40 +00:00
Masamichi Takagi
802b1ac14b
ihk_os_getperfevent,setperfevent: Timeout IKC sent by mcctrl
...
Report timeout when McKernel doesn't respond to prevent the caller
from waiting forever.
Refs: #1167
Change-Id: I8bd87e43aafffdd0952198224e44195af4368883
2018-08-22 06:43:27 +00:00
Dominique Martinet
ea35954613
linux side: replace vfs_read by kernel_read
...
vfs_read has been unexported in bd8df82be66 ("fs: unexport vfs_read and vfs_write")
in kernel 4.14.
kernel_read has always™ existed and is actually more appropriate: we can
remove the set_fs calls that are done in kernel_read.
The downside is that the function prototype also changed in 4.14 with
bdd1d2d3d251 ("fs: fix kernel_read prototype")...
(same with kernel_write e13ec939e96b ("fs: fix kernel_write prototype"))
Change-Id: I6f76a6387ae02b4d33bd62952d995a90b1952fc9
2018-08-22 06:27:12 +00:00
Dominique Martinet
1e1c91962e
mcctrl: add missing sched_param include for newer linux
...
struct sched_param is defined differently since headers changed in
linux ae7e81c07 ("sched/headers...")
Change-Id: I22af79bf3d9df69d09903b2830d99426309cf911
2018-08-22 06:04:35 +00:00
Dominique Martinet
d5108dba80
arm64 eclair build: add missing explicit libs
...
Change-Id: I5b6f8825430c2d495da50d868a3f54fc0b354d84
2018-08-22 05:56:20 +00:00
Dominique Martinet
3e3f3c5590
mcoverlayfs: vfs_readdir -> iterate_dir compat for el7.5
...
Also enable mcoverlay for new kernel version / actually build it
Change-Id: I80bc043c65cf99c3b41a54a5666ea7652e6c2bbd
2018-08-09 04:30:24 +00:00
Dominique Martinet
e8f8660b73
mcctrl: lookup unexported symbols at runtime
...
Instead of parsing System.map, use kallsyms_lookup_name() to
get unexported symbols addresses at module loading time.
This lets mckernel work with kaslr enabled (it gets enabled by
default from el7.5 onwards)
Change-Id: Ie4349fc1145ebce44f37f1f40c16f9d75584074d
2018-08-08 06:00:20 +00:00
Dominique Martinet
794684985f
mcctrl syscall: remove unused walk page debug function
...
This saves looking up one symbol for a debug function that is not
used anywhere
Change-Id: I6a3a480ce8067b4f6f0faf9aa837119ea46888ad
2018-08-08 05:57:46 +00:00
Dominique Martinet
625607e6db
mcctrl sysfs_files: cleanup vfs_readdir -> iterate_dir compat
...
Cleanup the fix suggested by Fujitsu a bit
Change-Id: I95165b834e32a01f43eb3b4fcaca039e4d04fe86
2018-08-08 05:41:04 +00:00
Dominique Martinet
05afa8b6dd
mcctrl sysfs_files: vfs_readdir -> iterate_dir compat
...
vfs_readdir got removed in recent kernels
Change-Id: Iac9a9954afefa0f6dbcdc2c94786cf747e21e1fe
Fujitsu: POSTK_DEBUG_TEMP_FIX_22
2018-08-08 05:39:07 +00:00
Dominique Martinet
6cf89076dc
mcctrl handle_mm_fault compat: add el7.5 support
...
Change-Id: I8c7738b70ca914e857be119b7720cdc22e61ae0e
2018-08-08 05:36:35 +00:00
Tomoki Shirasawa
14660a10c3
Fix to procfs read returns EIO
...
Refs: #1152
Change-Id: I48b330953fd7674ba1a3ac35744f9f50a5712730
2018-08-02 01:48:51 +00:00