Commit Graph

66 Commits

Author SHA1 Message Date
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
78d10cce80 support process group 2014-08-18 17:08:28 +09:00
530535c162 Merge remote branch 'origin/master' into gdb 2014-07-23 10:29:07 +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
6c3d901069 Include switch for a plain Xeon. 2014-07-17 17:26:54 +09:00
97a74f4692 Fix for core NOTE alignment & al. 2014-07-17 16:56:28 +09:00
35b8716966 push/pop r12,r13 and r14 as well when entering/leaving kernel space 2014-07-15 18:03:44 +09:00
99931179e1 add get_cpu_id syscall with No.700 for testing 2014-07-13 17:05:27 +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
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
31a605f94b push/pop r15 when entering/leaving kernel space (fix for bug #53: r15 wasn't propagated during fork()) 2014-07-10 13:53:12 +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
11bb334bd4 support mremap(2)
fixes #22
2014-07-02 15:30:52 +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
770eae0186 support sigaltstack 2014-06-25 13:45:33 +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
7e788f06f7 add PTATTR_DIRTY
refs #18
2014-05-07 21:24:45 +09:00
604d1da50f change macro name: PF_DONTCOW --> PF_POPULATE
refs #18
2014-04-25 11:19:21 +09:00
0e348e6295 SIGCHLD and wait4(), i.e. wait()/waitpid() implementation 2014-04-23 13:33:18 +09:00
b31a1b6db2 add PTATTR_NO_EXECUTE 2014-04-11 14:59:47 +09:00
f60b37ea1b use 'enum ihk_mc_pt_attribute' instead of 'int' 2014-04-11 14:59:46 +09:00
c0c9192e1b add prototypes to cpulocal.h
+struct x86_cpu_local_variables *get_x86_this_cpu_local(void);
+void *get_x86_this_cpu_kstack(void);
2014-04-03 15:33:34 +09:00
ab13f9a57c declare fork() so that __NR_fork is available 2014-04-02 18:00:09 +09:00
3ce94072b4 save/restore rbp when entering/leaving kernel (required for fork() in glibc) 2014-04-02 14:02:20 +09:00
b2b9b566c8 implement munlock() 2014-02-05 11:31:01 +09:00
f2a6515448 implement mlock() 2014-02-05 11:30:59 +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
26d68d391d signal part 4 (sigsuspend etc) 2014-01-24 10:14:49 +09:00
6992b829a0 delegate the open(2) with the generic forwarding.
This commit solves a problem that causes getpwnam()/getpwuid() to return
NULL.
2014-01-14 18:50:20 +09:00
8411f353fe signal part 3 (EFAULT) 2014-01-13 10:52:29 +09:00
a8c249ddaf signal (part 1) 2014-01-07 11:57:57 +09:00
9e00275120 fork & execve return EOPNOTSUPP (temporary hack) 2013-12-18 16:10:13 +09:00
2f89e26ac0 add modification history entry to the following files,
mckernel/lib/include/*.h
  mckernel/arch/x86/elfboot/*
  mckernel/arch/x86/kboot/main.c
  mckernel/arch/x86/kernel/*
  mckernel/lib/page_alloc.c
  mckernel/lib/string.c
  mckernel/lib/include/ihk/*
except
  mckernel/arch/x86/kernel/include/signal.h
  mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
  mckernel/arch/x86/kernel/include/syscall_list.h
  mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 18:30:06 +09:00
384328c6bc add copyright notice to the following files,
mckernel/lib/include/*.h
  mckernel/arch/x86/elfboot/*
  mckernel/arch/x86/kboot/main.c
  mckernel/arch/x86/kernel/*
  mckernel/lib/page_alloc.c
  mckernel/lib/string.c
  mckernel/lib/include/ihk/*
except
  mckernel/arch/x86/kernel/include/signal.h
  mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
  mckernel/arch/x86/kernel/include/syscall_list.h
  mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 17:09:58 +09:00
03521e9c2c add copyrights 2013-11-14 16:49:40 +09:00
e5890aa949 typo fix 2013-11-14 16:27:11 +09:00
3f60324d4e add copyright 2013-11-14 15:55:00 +09:00
27172ad413 support private mapped file 2013-10-15 12:30:41 +09:00
1d69225532 mcexec forward signal to MIC process. 2013-08-19 12:17:23 +09:00
480f6d4c2f rewrite page_fault_handler() 2013-08-08 12:43:00 +09:00
78d9d3fcd2 Revert "trial implementation of private file mapping"
This reverts commit abe57218c4.
2013-07-26 16:44:39 +09:00
abe57218c4 trial implementation of private file mapping
for review only.  will soon be reverted.
2013-07-26 14:40:12 +09:00
221f2c0517 support SIGSEGV(page fault) and SIGILL(general protection error) 2013-07-26 11:53:00 +09:00
334662b7fe implement sys_mprotect() 2013-07-18 09:25:58 +09:00
3749696d3e simple signal handler and kill(2) support. 2013-07-18 08:53:28 +09:00