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
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
ab8fe0bbbf
mcctrl: convert perf ctrl ioctls to mcctrl_ihk_send_wait
...
While we are here, also optimize code a bit: perf_desc does not need
to be allocated for every cpu; and fix coding style.
Change-Id: Iad19fed08205d38594fd3f1b7ddf2b19a9cf0d9d
2018-07-02 16:11:01 +09:00
b939ca9370
mcctrl: refactor prepare_image into new generic ikc send&wait
...
Many ikc messages expecting a reply use wait_event_interruptible
incorrectly, freeing memory that could still be used on the other side.
This commit implements a generic ikc send and wait helper that helps
with memory management and ownership properly:
- if the message succeeds and a reply comes back normally, the memory
is freed by the caller as usual
- if the wait fails (signal before the reply comes or timeout) then the
memory is set as owner by ikc and will be free when the reply comes back
later
- if the reply never comes, the memory is freed at shutdown when
destroying ikc channels
Refs: #1076
Change-Id: I7f348d9029a6ad56ba9a50c836105ec39fa14943
2018-07-02 04:34:44 +00:00
d5629606c5
mcexec: -m: interpret as numactl -m (i.e., MPOL_BIND)
...
Conflicts:
executer/include/uprotocol.h
executer/user/mcexec.c
kernel/include/syscall.h
2017-10-18 16:54:34 +09:00
be4d84c0c1
mcexec: Add --stack-premap=<premap_size>[,<max>]
...
<premap_size> of stack is pre-mapped on creating a process.
And its max size of stack is set to <max>.
This replaces MCKERNEL_RLIMIT_STACK=<premap_size>,<max>.
2017-09-26 17:04:10 +09:00
b39fec1104
uti: remove unused functions
2017-07-26 13:14:30 +09:00
effde241b9
support uti_attr for utility thread offloading
2017-07-25 13:03:48 +09:00
bc423255d9
mcctrl/mcexec: limit thread pool size when too many threads exist on Linux
2017-07-21 15:33:19 +09:00
4f9865cc8f
clean up unused code
2017-06-27 13:46:38 +09:00
07efb3ab9a
support to utility thread offloading
2017-06-27 13:27:09 +09:00
200fe9aec4
mcctrl/mcexec: fix per-process data reference counting
2017-06-07 17:21:55 +09:00
9b5ccb5a33
Pre-map file mappings from /dev/shm (--mpol-shm-premap mcexec argument)
2017-05-23 20:00:06 +09:00
e901d42fb6
mcexec: --extend-heap-by: argument to specify heap extension size
2017-05-23 19:58:49 +09:00
e3e0f6a174
mcexec: introduction of --profile
2017-05-23 02:42:06 +09:00
9c25d47d9b
mcexec: transfer job information to LWK
2017-05-23 02:42:06 +09:00
2d72042021
mcexec: bind to CPus according to ikc_map
2017-05-23 02:39:42 +09:00
26b9484bae
mcexec: --mpol-threshold to control MPOL_BIND/MPOL_PREFERRED
2017-05-23 02:39:42 +09:00
182202523e
mcexec/mm: user memory policy control for heap, stack, etc.
2017-05-23 02:39:42 +09:00
1541b26086
ihklib: add pa_info functions.
2017-04-27 17:13:49 +09:00
1bc3218fc1
partitioned execution: bind mcexec to corresponding NUMA node
2017-01-30 07:24:09 +09:00
052b3f44ca
mcexec: -n: topology aware partitioned execution
2016-12-10 16:27:57 +09:00
fdcf766337
prepare_process(): pass cpu_set in program_load_desc
2016-12-09 16:32:20 +09:00
69a5c53074
NUMA: hide non-existing nodes from /sys/devices/system/node listing
2016-11-05 16:12:08 +09:00
e46f027894
mcexec/mcctrl: unmount cgroups (privately) which expose invalid NUMA info
2016-11-04 17:02:48 +09:00
5e9957da0f
syscall_response: introduction of req_thread_status field
2016-08-16 08:53:41 +09:00
fb84d4ef11
mcctrl: thread pool based system call offload handling
2016-08-08 19:43:05 +09:00
41bb2ab5e6
support vdso which borrows clocksource from linux
2016-03-28 22:57:44 +09:00
f214ff1b57
mcctrl: add MCEXEC_UP_SYS_MOUNT, MCEXEC_UP_SYS_UNSHARE
2016-02-08 16:00:52 +09:00
bb81f84709
support PIE executable for PVAS
2015-12-14 11:05:28 +09:00
59ee251e1c
fix /proc/pid/mem, /proc/pid/status, /proc/pid/cmdline
2015-07-02 00:22:35 +09:00
7d5a68be1b
add PID and GID to /proc/pid/status
...
add /proc/pid/cmdline
refs #445
refs #447
2015-05-18 17:45:37 +09:00
8934eb91a4
kill syscall check uid
2015-03-17 15:04:36 +09:00
08cc31f9bf
support setrlimits/getrlimits, however this fix is these syscalls only.
...
checking resource process must implement it separately.
refs #330
2015-01-27 10:35:58 +09:00
8f30e16976
when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259)
2014-11-27 16:13:52 +09:00
39f36120c1
support sigqueue
2014-09-23 23:17:53 +09:00
55aeceb1bf
execve()/creat(): handle NULL env correctly and support for holding executable file so that write access returns ETXTBSY
2014-09-18 21:25:04 +09:00
ac40b96c24
execve(): support for ETXTBSY via a new ioctl() call to test in kernel space with open_exec()
2014-09-10 14:09:11 +09:00
cd366de097
execve():
...
- COKERNEL_PATH and COKERNEL_EXEC_ROOT support for co-kernels with different architecture than the host (i.e., Xeon Phi).
- fix various error codes: ENAMETOOLONG, ENOENT, ENOTDIR, EACCES, ENOEXEC, EFAULT.
- support for shell code execution.
2014-09-03 18:15:43 +09:00
78d10cce80
support process group
2014-08-18 17:08:28 +09:00
3fa6818962
Merge from master.
2014-07-31 18:30:39 +09:00
2f4f3628f9
support tgkill
2014-06-10 10:42:29 +09:00
84c18ef38e
MCEXEC_UP_TRANSFER: generalize MCEXEC_UP_LOAD_IMAGE ioctl() to allow transfer in both directions
2014-05-22 12:42:23 +09:00
39a86fad18
support execute disabled stack
2014-04-11 14:59:47 +09:00
ccd770ba24
use per-process wait queues for system call request processing in mcexec so that multiple processes can share the per-core system call channels
2014-03-27 19:31:42 +09:00
c421965542
relocate a program interpreter to the map_start
...
This commit makes a system call that dereferences a NULL pointer fail.
2014-01-14 18:55:16 +09:00
afc38718a0
add MCEXEC_UP_STRNCPY_FROM_USER
...
It allows a mcexec to execute the strncpy_from_user().
2014-01-14 18:50:19 +09:00
e5890aa949
typo fix
2013-11-14 16:27:11 +09:00
3f60324d4e
add copyright
2013-11-14 15:55:00 +09:00
d557ba84d6
exclude interpreter's segment from data region
...
When an interpreter is located on the lower address (e.g. 0x0),
the text region is included in data region.
A fix to avoid this.
2013-10-30 14:28:32 +09:00