Commit Graph

614 Commits

Author SHA1 Message Date
d59628e131 fix debug prints to avoid NULL dereferences 2014-07-07 18:11:34 +09:00
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
0d7d1ebbd5 Minor fix for semantic correction. 2014-07-07 16:12:06 +09:00
79a72809af Prepare inside of core. Not tested.
modified:   arch/x86/kernel/gencore.c
	modified:   arch/x86/kernel/include/elfcore.h
	modified:   kernel/mem.c
2014-07-07 15:46:10 +09:00
14cc85c207 Added needed files.
new file:   arch/x86/kernel/gencore.c
	new file:   arch/x86/kernel/include/elfcore.h
	new file:   arch/x86/kernel/include/elfcoregpl.h
2014-07-04 15:44:48 +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
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
11bb334bd4 support mremap(2)
fixes #22
2014-07-02 15:30:52 +09:00
fd6f0c4075 Bookkeeping for error.
modified:   syscall.c
2014-07-02 14:00:46 +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
b3c7676425 Minor change.
modified:   syscall.c
2014-07-01 19:03:50 +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
bb3756dc74 add fileoff-type PTE
fileoff-type PTE holds a file offset which the page data should be
loaded from.

refs #21
2014-06-30 17:33:50 +09:00
04f1b3f401 add pte_xchg() 2014-06-30 17:33:46 +09:00
c395dc2410 add pte_is_dirty() 2014-06-30 17:33:45 +09:00
d2e29bf598 add visit_pte_range()
refs #21
refs #22
2014-06-30 17:33:43 +09:00
dc7f38c8c7 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-06-25 13:45:46 +09:00
770eae0186 support sigaltstack 2014-06-25 13:45:33 +09:00
a9bebf1e14 Make idle loop not miss a chance to schedule
Prevents the case where McKernel misses one chance to schedule a
task when an interrupt occurs just after enabling interrupt and
just before executing "halt" in the idle loop (in kernel/process.c).

refs #45
2014-06-12 11:22:02 +09:00
bbb7f77706 interrupt syscall of signal recieved process 2014-06-11 21:06:52 +09:00
19fc50ee05 Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-06-10 10:42:55 +09:00
2f4f3628f9 support tgkill 2014-06-10 10:42:29 +09:00
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
2331309d2f mcexec: use optind instead of shifting argv[] for arguments passing to remote app 2014-05-27 17:52:56 +09:00
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
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
a4e6269c5d adjust prepare_process_ranges_args_envs() so that it can initialize arguments and environmnt variables from kernel space strings 2014-05-22 13:45:23 +09:00
760c9ebdb0 refactor process_msg_prepare_process() in preparation for execve() 2014-05-22 13:27:25 +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
f90e294384 flatten_strings() kernel space version 2014-05-21 14:13:46 +09:00
2fead93f10 negative error code for ECHILD 2014-05-19 13:04:09 +09:00
22d9d6d3a6 use dprintk() for per process data structure debug messages 2014-05-19 12:49:36 +09:00
81a78be20a clean up per process structure in exit_group() and fix wait4() on self bug 2014-05-19 12:49:36 +09:00
3e830521c1 move rt_sigaction to device dependent
fix call kill(getpid(), ) after sigaction aborted
2014-05-16 09:50:06 +09:00
ac65e6c869 wait4(): support for ECHILD error check 2014-05-13 10:28:27 +09:00
426c67861c introduction of mcctrl_per_process data to keep track remote page tables on a per-process basis 2014-05-13 00:22:56 +09:00
a5b8d388e9 dprintf exit status 2014-05-12 10:30:39 +09:00
39b336ca2f wait4(): save exit status only if requested 2014-05-12 10:29:58 +09:00
e5aad641ac delete old page fault handlers 2014-05-07 22:10:21 +09:00
71d1359d53 merge two page fault functions
fixes #18
2014-05-07 21:24:45 +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
7e788f06f7 add PTATTR_DIRTY
refs #18
2014-05-07 21:24:45 +09:00