Commit Graph

253 Commits

Author SHA1 Message Date
e112aa8b06 remove DMA call 2014-03-30 16:14:19 +09:00
76089e2682 add AT_PAGESZ to auxvec 2014-02-26 10:31:44 +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
b2b9b566c8 implement munlock() 2014-02-05 11:31:01 +09:00
f2a6515448 implement mlock() 2014-02-05 11:30:59 +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
26d68d391d signal part 4 (sigsuspend etc) 2014-01-24 10:14:49 +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
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
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
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
9e00275120 fork & execve return EOPNOTSUPP (temporary hack) 2013-12-18 16:10:13 +09:00
96576aaee7 fix general protection fault caused by SIGALARM 2013-12-16 13:45:45 +09:00
0551fb26dd affinity.h, waitq.h copyright 2013-11-14 17:40:59 +09:00
506caa7e7f page.h, process.h, rlimit.h, syscall.h, time.h, timer.h copyright 2013-11-14 17:34:30 +09:00
821396be7b amemcpy.c, cls.h, init.h, kmalloc.h, kmsg.hcopoyright 2013-11-14 17:30:43 +09:00
6bcec77d51 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 17:21:54 +09:00
2f63b7ed95 futex.h copyright 2013-11-14 17:21:47 +09:00
cd04de3131 cls.c, copy.c, debug.c, listeners.c, mikc.c copyright 2013-11-14 17:00:37 +09:00
03521e9c2c add copyrights 2013-11-14 16:49:40 +09:00
d126a35d48 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 16:27:39 +09:00
e5890aa949 typo fix 2013-11-14 16:27:11 +09:00
dcea4fefb3 ap.c, futex.c, jhash.h, timer.c, waitq.c copyrights 2013-11-14 16:20:08 +09:00
3f60324d4e add copyright 2013-11-14 15:55:00 +09:00
334fe81cdb remove rbtree 2013-11-14 13:07:00 +09:00
98fb5bf091 check cpu_local_var initialized 2013-11-13 23:06:11 +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
89be2af09a sys_mprotect: remove blocking of free_pages()
Because mprotect() does not release physical page, this is unnecessary.
2013-11-06 16:06:01 +09:00
d557ba84d6 exclude interpreter's segment from data region
When an interpreter is located on the lower address (e.g. 0x0),
the text region is included in data region.
A fix to avoid this.
2013-10-30 14:28:32 +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
78214f3ce4 /opt/knc -> /usr 2013-10-21 09:44:44 +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
413fe7b54a mcexec: add a interpreter invocation
When start a program which have a PT_INTERP segment
(dynamic linkaged program have a PT_INTERP segment),
start the interpreter indicated by the PT_INTERP segment.
2013-10-11 22:23:22 +09:00
a171da1015 add a AT_ENTRY entry to the auxiliary vector 2013-10-11 22:23:22 +09:00
47722baf2e add mcexec's PTE cleaning to munmap()/mmap(MAP_FIXED)
The correction of the problem that MKL application does not start
2013-09-05 13:19:54 +09:00
0e0684cd1c support shared anonymous mapping
mmap(..., MAP_SHARED|MAP_ANONYMOUS, ...) is possible now.
shared mapped file is still not implemented.
2013-09-04 19:03:31 +09:00
877f1be797 fix error message
- ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):unknown flags %lx\n",
+ ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):unknown flags %x\n",
                                                         ^^
2013-09-04 19:03:31 +09:00
fe05e1107c fix alignment of struct syscall_request variable
since used with DMA, it must be IHK_DMA_ALIGN
2013-09-03 19:37:37 +09:00
040fb64b22 add terminate thread 2013-09-02 00:39:22 +09:00
1d69225532 mcexec forward signal to MIC process. 2013-08-19 12:17:23 +09:00
591f398768 add page fault forwarding 2013-08-08 12:43:15 +09:00
480f6d4c2f rewrite page_fault_handler() 2013-08-08 12:43:00 +09:00