Commit Graph

368 Commits

Author SHA1 Message Date
0e0bc548f6 fix mcexec SIG_IGN 2015-02-12 19:02:58 +09:00
9c35935671 mcexec: fix memory allocation bug that crashes CentOS7 glibc 2015-01-27 16:55:30 +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
d4ba4dc8b3 introduction of mckernel_procfs_file_operations; fix /proc/self path resolution;
implementation of /proc/self/pagemap (LTP mmap12)
2014-12-15 12:46:05 +09:00
c1cf630a94 mcexec: store full path to executable
required so that a forked process can obtain exec reference in the
Linux kernel even if executable was specified with relative path
and fork was called after changing the current working directory
2014-12-03 15:14:26 +09:00
8f30e16976 when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259) 2014-11-27 16:13:52 +09:00
658ff759ef build scripts: support for separate build and source directories 2014-10-20 18:27:24 +09:00
658b88fd7b Modify spacing 2014-10-15 14:40:47 +09:00
dbecaa2fc8 Add ptrace functions of job-control and signal
Note that a forked process automatically becomes ptraced state in this
commit.
2014-10-15 14:28:55 +09:00
43e6de8124 fork()/execve()/ETXTBSY: sync parent a child duing fork() to make sure child holds a reference to the executable in the host kernel using open_exec() 2014-09-25 15:14:18 +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
7a5764bda4 Revert "mcexec のデバッグ出力を改善"
This reverts commit fb38917bf6.
2014-09-17 19:59:10 +09:00
fb38917bf6 mcexec のデバッグ出力を改善 2014-09-17 19:46:55 +09:00
e2dc359ba7 execve(): iterate and close fds with FD_CLOEXEC, resolves LTP fcntl07_64 2014-09-17 15:32:53 +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
efc817de92 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-09-05 17:20:50 +09:00
15c9ae4c8d execve(): lookup_exec_path() support for symlinks based on COKERNEL_EXEC_ROOT 2014-09-04 18:11:41 +09:00
c939a372b0 Added mcexec hack. 2014-09-04 16:44:30 +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
d0b6aa1047 Merge branch 'bug201.get_user_pages' 2014-09-03 11:24:22 +09:00
f2e0e42ba4 mcexec: report proper error when __NR_munmap fails 2014-09-02 15:43:08 +09:00
34854d3c93 ltp times03 2014-09-01 14:27:31 +09:00
f535670100 fix pipe02 2014-08-27 16:50:01 +09:00
78d10cce80 support process group 2014-08-18 17:08:28 +09:00
663c121308 interrupt syscall sufficient threads 2014-08-18 16:49:49 +09:00
23ab6032ba don't close /dev/mcos 2014-08-18 16:25:24 +09:00
8c1c8a40d1 use madvise() when zap_vma_ptes() fails 2014-08-07 17:53:26 +09:00
9fda245490 execve(): return correct error value when failure (errno) 2014-08-07 14:35:15 +09:00
3fa6818962 Merge from master. 2014-07-31 18:30:39 +09:00
27bfe37b80 execve(): fix looking up relative path and checking executable permission 2014-07-29 15:48:14 +09:00
f1e39f5fb2 execve(): find executable first in COKERNEL_PATH and then in PATH if executable name is not absolute 2014-07-29 11:14:09 +09:00
e5d3407d8e child mcexec don't print signal terminate message 2014-07-29 11:10:11 +09:00
c83e80ad91 execve(): clear host user-space PTEs before context switching 2014-07-28 18:57:56 +09:00
2f4f3628f9 support tgkill 2014-06-10 10:42:29 +09:00
2331309d2f mcexec: use optind instead of shifting argv[] for arguments passing to remote app 2014-05-27 17:52:56 +09:00
514d75b685 execve(): supporting syscall and mcexec modifications 2014-05-22 17:39:13 +09:00
badb450153 more detailed report in memory management error path 2014-05-22 17:27:39 +09:00
6a8e75dda0 fix argc bug 2014-05-22 17:11:10 +09:00
6ca8b77cf2 fix argv/argc bug 2014-05-22 16:39:07 +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
f810aa56b8 refactoring mcexec's main() in preparation for execve() 2014-05-21 21:55:49 +09:00
a5b8d388e9 dprintf exit status 2014-05-12 10:30:39 +09:00
cc8317643e SIGPIPE fix (ltp writev) 2014-04-25 08:43:08 +09:00
0e348e6295 SIGCHLD and wait4(), i.e. wait()/waitpid() implementation 2014-04-23 13:33:18 +09:00
39a86fad18 support execute disabled stack 2014-04-11 14:59:47 +09:00
da81cd2d1d mcexec: copy a pathname string of open(2) safely
When a open system call request is delegated, mcexec will check whether
a path name is known one such as "/proc/meminfo" and "/proc/cpuinfo".
During this check, if mcexec causes a SIGSEGV or SIGBUS signal,
mcexec will begin a loop, because mcexec has a signal handler which
returns simply.
2014-04-03 15:27:49 +09:00
cf442e6a14 fork(): preliminary version (no wait()/waitpid() support yet) 2014-04-02 14:07:38 +09:00
391b69e8c4 refactor mcexec's main and separate signal and syscall thread initialization 2014-04-02 14:04:55 +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