Commit Graph

240 Commits

Author SHA1 Message Date
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
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
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
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
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
604d1da50f change macro name: PF_DONTCOW --> PF_POPULATE
refs #18
2014-04-25 11:19:21 +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
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
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
cf442e6a14 fork(): preliminary version (no wait()/waitpid() support yet) 2014-04-02 14:07:38 +09:00
76089e2682 add AT_PAGESZ to auxvec 2014-02-26 10:31:44 +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
e86ffb0b57 do write back only MAP_SHARED pages
Fix a problem that cause write reference to a MAP_PRIVATE mapping to
change the underlying file.
2014-01-14 18:48:43 +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
03521e9c2c add copyrights 2013-11-14 16:49:40 +09:00
bbbc6e1570 add shared mapped file (in progress)
implemented:
- Pages can be shared between maps.
- A change made to a map is written to the file, at munmap().

not yet implemented:
- VM operation during page IO execution.
  Because page IO is executed with VM's lock.
- Page IO, which does not change a file size with any case.
  When munmap() races with truncate(), the file size may be changed
  illegally.
2013-11-11 18:18:33 +09:00
bdc02bb687 refuse the write to a read-only memory
It was able to change a read-only memory using a system call that
forwarded to host.

To fix this, when read-only mmap(), it places read-only vm_area in the
mcexec's space.
2013-11-06 16:06:58 +09:00
6e736f6248 change the stack size according to stack size limit 2013-10-30 12:33:03 +09:00
db45e11921 apply demand paging to stack area 2013-10-30 12:33:03 +09:00
27172ad413 support private mapped file 2013-10-15 12:30:41 +09:00
4fb6620f3a sys_getrlimit: modified to return mcexec's RLIMIT_STACK 2013-10-11 22:36:16 +09:00
a171da1015 add a AT_ENTRY entry to the auxiliary vector 2013-10-11 22:23:22 +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
deb9cd4e75 implement sys_munmap() 2013-07-18 09:25:58 +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
2aa5194958 rewrite sys_mmap() as sys_new_mmap() 2013-07-10 13:11:19 +09:00
43f4bb3e78 free_process_memory(): support demand paging 2013-07-10 13:11:18 +09:00
b59be07e9a implementing demand paging to make it possible to run Intel OpenMP programs 2013-07-04 15:41:12 +09:00
be71505e87 fix remove_process_memory_range(): remove INIT_LIST_HEAD for on-list item 2013-06-24 13:29:33 +09:00
5369864551 fix warnings 2013-06-19 16:47:02 +09:00
ff5ee67d06 remove PTATTR_USER from the decision of ihk_mc_ap_flag in __set_pt_page 2013-06-19 12:07:40 +09:00