Commit Graph

178 Commits

Author SHA1 Message Date
Masamichi Takagi
b50e205a61 Support pid of zero when calling waitpid
Make waitpid wait any process with the same pgid of the caller when
setting zero to the pid argument.
2014-09-10 17:01:05 +09:00
Tomoki Shirasawa
cee647aee4 sigsuspend restore sigmask 2014-09-09 13:54:36 +09:00
Masamichi Takagi
19fa391d4f Implement vfork system call
It's implemented by making it issue clone system call internally with
the arguments of (SIGCHLD, 0, 0, 0, 0). The feature in which the caller
of vfork blocks until the child issues exit/execve is not implemented.
Refer to #233.
2014-09-08 17:06:05 +09:00
bgerofi@riken.jp
0de6a30426 wait4(): do not return ECHILD when child exists but not in PS_ZOMBIE state yet 2014-09-05 18:28:40 +09:00
Masamichi Takagi
e45632c9f8 Check "options" argument in wait4
Make wait4 return -EINVAL when not supported options are requested.
2014-09-04 17:32:26 +09:00
Masamichi Takagi
a16c3170ef Correct wait4 when the child is not found
Make wait4 return -ECHILD when pid is specified and it's not found.
2014-09-04 17:11:05 +09:00
Tomoki Shirasawa
fea02b0ece Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-09-03 18:33:32 +09:00
Tomoki Shirasawa
7da4b8b8dc fix sched_[sg]etaffinity(tid==0, ...) (LTP sched_getaffinity01) 2014-09-03 18:22:27 +09:00
Balazs Gerofi bgerofi@riken.jp
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
Tomoki Shirasawa
7b825c0a65 fix coredump (ltp abort01) 2014-09-03 10:56:41 +09:00
Tomoki Shirasawa
f535670100 fix pipe02 2014-08-27 16:50:01 +09:00
Tomoki Shirasawa
bc8b441358 process table traversing must be under interrupt inhibition
add finding process table function (findthread_and_lock/process_unlock)
2014-08-25 13:24:06 +09:00
Tomoki Shirasawa
d2537e0963 sigsuspend don't wait SIGSTOP, not SIGTERM 2014-08-21 17:25:02 +09:00
Tomoki Shirasawa
78d10cce80 support process group 2014-08-18 17:08:28 +09:00
Tomoki Shirasawa
663c121308 interrupt syscall sufficient threads 2014-08-18 16:49:49 +09:00
Balazs Gerofi bgerofi@riken.jp
9fda245490 execve(): return correct error value when failure (errno) 2014-08-07 14:35:15 +09:00
Masamichi Takagi
6dd5407b5f Return error when no core is available
clone returns -EAGAIN when there is no vacant core.
In addition, clone tries to use the next vacant hyper-threading
core instead of trying to use next vacant hyper-threading core
of the next vacant physical core.
2014-07-31 19:50:41 +09:00
Balazs Gerofi bgerofi@riken.jp
c83e80ad91 execve(): clear host user-space PTEs before context switching 2014-07-28 18:57:56 +09:00
Balazs Gerofi bgerofi@riken.jp
101a0f6e4a remote TLB invalidation code for multi-threaded applications (e.g., during munmap()) 2014-07-22 12:24:07 +09:00
YOSHIDA Masanori
99931179e1 add get_cpu_id syscall with No.700 for testing 2014-07-13 17:05:27 +09:00
YOSHIDA Masanori
170a54d976 add CPU affinity function
- syscall support
-- sched_setaffinity
-- sched_getaffinity
- migration in scheduler
- resched at return of syscalls/interrupts
2014-07-13 17:04:47 +09:00
YOSHIDA Masanori
1889d10e3a add cpu_set and getter/setter of that (incomplete sched_***affinity) 2014-07-13 17:04:32 +09:00
Tomoki Shirasawa
39c8617793 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-07-13 12:52:16 +09:00
Tomoki Shirasawa
5e6ed852cb Kill child threads when receiving terminating signals(redmine#63)
Create process table (child is missing when sending a signal to a child process just after forking it)(redmine#61)
2014-07-13 12:51:28 +09:00
NAKAMURA Gou
36cff84e05 add zeroobj for private anonymous mappings 2014-07-07 18:11:43 +09:00
NAKAMURA Gou
380fcbda73 add shmobj for shared anonymous mappings 2014-07-07 18:11:40 +09:00
NAKAMURA Gou
9efb5e4fc5 add memobj_has_pager() 2014-07-07 18:11:36 +09:00
NAKAMURA Gou
d59628e131 fix debug prints to avoid NULL dereferences 2014-07-07 18:11:34 +09:00
NAKAMURA Gou
a8a226a443 use PF_POPULATE for resolving delegated page faults
Since a host side PTE does not follow McKernel's copying a COW page,
COW pages cannot be used for resolving delegated page faults.
Therefore, to copy pages eagerly, PF_POPULATE should be used.
2014-07-07 18:11:31 +09:00
NAKAMURA Gou
b2ca24d013 remap_file_pages: reject special ranges
special ranges are:
- VR_REMOTE
- VR_IO_NOCACHE
- VR_RESERVED
2014-07-02 15:30:54 +09:00
NAKAMURA Gou
11bb334bd4 support mremap(2)
fixes #22
2014-07-02 15:30:52 +09:00
NAKAMURA Gou
90aaf9dc9c support remap_file_pages(2)
fixes #21
2014-06-30 17:33:51 +09:00
Tomoki Shirasawa
770eae0186 support sigaltstack 2014-06-25 13:45:33 +09:00
Tomoki Shirasawa
bbb7f77706 interrupt syscall of signal recieved process 2014-06-11 21:06:52 +09:00
Tomoki Shirasawa
19fc50ee05 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-06-10 10:42:55 +09:00
Tomoki Shirasawa
2f4f3628f9 support tgkill 2014-06-10 10:42:29 +09:00
NAKAMURA Gou
3f13862a98 ptrace: add error stub to prevent mcexec from waiting
In LTP's ptrace03 test,
there is a exit() preceded by ptrace(PTRACE_TRACEME).
In this case, processes will be usually finished immediately.
But mcexec will fall into waiting for parent's ptrace(PTRACE_CONT),
because mcexec sends itself a signal in processing of exit().
2014-06-09 19:03:59 +09:00
NAKAMURA Gou
4f32042c5f getrlimit: delegate inquiries about fs resource
This commit corrects following system/library calls.
* getdtablesize()
* getrlimit(RLIMIT_FSIZE/RLIMIT_LOCKS/RLIMIT_NOFILE)
* sysconf(_SC_OPEN_MAX)
* ulimit(UL_GETFSIZE)

refs #31
refs #32
2014-05-26 16:47:56 +09:00
Balazs Gerofi bgerofi@riken.jp
514d75b685 execve(): supporting syscall and mcexec modifications 2014-05-22 17:39:13 +09:00
Balazs Gerofi bgerofi@riken.jp
2fead93f10 negative error code for ECHILD 2014-05-19 13:04:09 +09:00
bgerofi@riken.jp
81a78be20a clean up per process structure in exit_group() and fix wait4() on self bug 2014-05-19 12:49:36 +09:00
Tomoki Shirasawa
3e830521c1 move rt_sigaction to device dependent
fix call kill(getpid(), ) after sigaction aborted
2014-05-16 09:50:06 +09:00
Balazs Gerofi bgerofi@riken.jp
ac65e6c869 wait4(): support for ECHILD error check 2014-05-13 10:28:27 +09:00
Balazs Gerofi bgerofi@riken.jp
39b336ca2f wait4(): save exit status only if requested 2014-05-12 10:29:58 +09:00
Balazs Gerofi bgerofi@riken.jp
c15c2a2024 fix process refcount so that process structure is still valid when final release() is called in schedule() 2014-04-24 17:09:14 +09:00
Balazs Gerofi bgerofi@riken.jp
0e348e6295 SIGCHLD and wait4(), i.e. wait()/waitpid() implementation 2014-04-23 13:33:18 +09:00
Balazs Gerofi bgerofi@riken.jp
d6c0ea7627 assign the same TID and PID to the new process after fork() 2014-04-15 20:40:40 +09:00
Tomoki Shirasawa
d090e3f28d Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-04-13 14:13:46 +09:00
Balazs Gerofi bgerofi@riken.jp
b93db2411c check CLONE_VM in clone_flags for determining whether clone()/fork() is requested 2014-04-11 15:41:17 +09:00
NAKAMURA Gou
7eeafb0d85 change parameter types of arch-regs to "void *" 2014-04-03 15:33:34 +09:00