Commit Graph

383 Commits

Author SHA1 Message Date
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
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
604d1da50f change macro name: PF_DONTCOW --> PF_POPULATE
refs #18
2014-04-25 11:19:21 +09:00
cc8317643e SIGPIPE fix (ltp writev) 2014-04-25 08:43:08 +09:00
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
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
2a9bd2efb1 fix clean-up path in create_process() 2014-04-21 19:55:43 +09:00
d6c0ea7627 assign the same TID and PID to the new process after fork() 2014-04-15 20:40:40 +09:00
0285c99c9c use PT_PHYSMASK on last level PTE entries to avoid returning invalid physical address 2014-04-15 20:21:07 +09:00
d090e3f28d Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-04-13 14:13:46 +09:00
40fdb8865b Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-04-11 15:41:25 +09:00
b93db2411c check CLONE_VM in clone_flags for determining whether clone()/fork() is requested 2014-04-11 15:41:17 +09:00
56f0d3b29f support IA-32e's "execute disable bit" 2014-04-11 14:59:47 +09:00
39a86fad18 support execute disabled stack 2014-04-11 14:59:47 +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
55817e9e83 use "struct x86_regs *" to access stack frames
The intention of this fix is to cope with a recent change of
PUSH_ALL_REGS.
2014-04-03 15:33:35 +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
7eeafb0d85 change parameter types of arch-regs to "void *" 2014-04-03 15:33:34 +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
583c9355cd fix argument of set_tid_address() 2014-04-02 18:02:04 +09:00
ab13f9a57c declare fork() so that __NR_fork is available 2014-04-02 18:00:09 +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
3ce94072b4 save/restore rbp when entering/leaving kernel (required for fork() in glibc) 2014-04-02 14:02:20 +09:00
dabca28e4b Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-03-30 16:14:43 +09:00
e112aa8b06 remove DMA call 2014-03-30 16:14:19 +09:00
b01b31f04d use GFP_ATOMIC in interrupt context 2014-03-28 18:43:34 +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
11ddbcf3c8 wait only 10 secs in mcreboot-attached 2014-03-27 15:35:42 +09:00