Commit Graph

272 Commits

Author SHA1 Message Date
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
efc817de92 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-09-05 17:20:50 +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
319590910a Almost implemented. 2014-09-03 15:20:39 +09:00
c783ec8e11 Implemented procfs. 2014-08-28 09:16:50 +09:00
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
78d10cce80 support process group 2014-08-18 17:08:28 +09:00
3fa6818962 Merge from master. 2014-07-31 18:30:39 +09:00
b58682dd73 Merge branch 'master' of postpeta.pccluster.org:mckernel into gdb 2014-07-31 10:31:45 +09:00
c83e80ad91 execve(): clear host user-space PTEs before context switching 2014-07-28 18:57:56 +09:00
530535c162 Merge remote branch 'origin/master' into gdb 2014-07-23 10:29:07 +09:00
5888dcd4c7 Aestethical change. 2014-07-23 10:26:36 +09:00
101a0f6e4a remote TLB invalidation code for multi-threaded applications (e.g., during munmap()) 2014-07-22 12:24:07 +09:00
9dd7d6283c Merge remote branch 'origin/master' into gdb
Conflicts:
	kernel/include/process.h
2014-07-18 16:03:35 +09:00
3751fa1766 add some functions related to migration into kernel/process.h
... and also add include guard to arch/x86/kernel/include/signal.h
2014-07-13 17:05:09 +09:00
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
1889d10e3a add cpu_set and getter/setter of that (incomplete sched_***affinity) 2014-07-13 17:04:32 +09:00
1d45444d54 Added code for generating core image.
modified:   arch/x86/kernel/gencore.c
	modified:   arch/x86/kernel/include/elfcore.h
	modified:   kernel/include/process.h
	modified:   kernel/process.c
2014-07-10 15:55:35 +09:00
36cff84e05 add zeroobj for private anonymous mappings 2014-07-07 18:11:43 +09:00
380fcbda73 add shmobj for shared anonymous mappings 2014-07-07 18:11:40 +09:00
9057268f0e add memobj's default action 2014-07-07 18:11:38 +09:00
9efb5e4fc5 add memobj_has_pager() 2014-07-07 18:11:36 +09:00
ed9da789e6 Created gencore() and minor aestetical changes.
modified:   executer/kernel/mcctrl.h
	modified:   executer/kernel/syscall.c
	modified:   kernel/include/syscall.h
	modified:   kernel/mem.c
2014-07-02 16:23:32 +09:00
11bb334bd4 support mremap(2)
fixes #22
2014-07-02 15:30:52 +09:00
4f1b3f22ef Working code for infrastructure.
modified:   executer/kernel/mcctrl.h
	modified:   executer/kernel/syscall.c
	modified:   kernel/include/syscall.h
	modified:   kernel/mem.c
2014-07-02 12:39:08 +09:00
53a80e0720 Experimental implementation of map & write.
Data is still dummy.
Not even compiled.
	modified:   executer/kernel/mcctrl.h
	modified:   executer/kernel/syscall.c
	modified:   kernel/include/syscall.h
	modified:   kernel/mem.c
2014-07-01 16:50:25 +09:00
83ced89fa3 Initial commit for core dump.
We can create a dummy core file when gpe occurs.
	modified:   executer/kernel/mcctrl.h
	modified:   executer/kernel/syscall.c
	modified:   kernel/include/syscall.h
	modified:   kernel/mem.c
2014-07-01 16:03:11 +09:00
90aaf9dc9c support remap_file_pages(2)
fixes #21
2014-06-30 17:33:51 +09:00
770eae0186 support sigaltstack 2014-06-25 13:45:33 +09:00
514d75b685 execve(): supporting syscall and mcexec modifications 2014-05-22 17:39:13 +09:00
3e830521c1 move rt_sigaction to device dependent
fix call kill(getpid(), ) after sigaction aborted
2014-05-16 09:50:06 +09:00
99dec9b805 add parameters to arch_vrflag_to_ptattr()
for other architectures and future use
refs #18
2014-05-07 21:24:45 +09:00
769cf79bf8 move vrflag_to_ptattr() to arch/x86/kernel/memory.c
refs #18
2014-05-07 21:24:45 +09:00
8097b057da add page_is_in_memobj() and page_is_multi_mapped()
These are page test functions.
2014-05-07 21:24:45 +09:00
ce7af5839d keep page.count valid through its life cycle 2014-05-07 21:24:45 +09:00
29c7d40005 use atomic operations for manipulating page.count 2014-05-07 21:24:45 +09:00
0e348e6295 SIGCHLD and wait4(), i.e. wait()/waitpid() implementation 2014-04-23 13:33:18 +09:00
7103fed1dc rename free_process() ro release_process() 2014-04-23 13:31:15 +09:00
39a86fad18 support execute disabled stack 2014-04-11 14:59:47 +09:00
cf442e6a14 fork(): preliminary version (no wait()/waitpid() support yet) 2014-04-02 14:07:38 +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
dca831b94f add error check codes for madvise()
The advice will be ignored even if this madvise() succeed.
2014-02-05 11:31:03 +09:00
fcbaa9726c correct the syscall return type
Long size syscall return values such as shmat()'s and lseek()'s are
broken, because lower 32 bits are only returned.
2014-02-05 11:30:57 +09:00
93c5385f65 implement mmap(MAP_LOCKED) 2014-01-27 18:59:36 +09:00
f0a52d4519 implement mmap(MAP_POPULATE)
populate_process_memory() function is not efficient,
because whether every small page is present is checked.
2014-01-27 18:50:38 +09:00
f5b4057074 add vsyscall
- getcpu() is not implemented. It will cause SIGILL.
- gettimeofday() and time() are implemented with syscall.
2014-01-24 20:18:36 +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
8411f353fe signal part 3 (EFAULT) 2014-01-13 10:52:29 +09:00
0465cc16b9 signal (part 2) sigpending 2014-01-07 19:52:06 +09:00
a8c249ddaf signal (part 1) 2014-01-07 11:57:57 +09:00