Commit Graph

301 Commits

Author SHA1 Message Date
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
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
611d14da67 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 17:26:14 +09:00
d10416cb04 for release 2013-11-14 17:26:03 +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
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
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
392357e9d2 catch signal when before kernel init 2013-11-13 15:43:49 +09:00
2f5be14425 manifest software version 2013-11-12 17:15:19 +09:00
04cef6f073 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-12 10:43:05 +09:00
3f2db99057 move boot-attached-mic.sh.in to arch/x86/tools 2013-11-12 10:41:51 +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
d35140ab0b Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-07 00:30:46 -08:00
3c490dcfab Added <sys/resource.h> which is required by getrlimit(2).
modified:   executer/user/mcexec.c
2013-11-07 00:29:17 -08:00
8980ffcc27 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-07 15:20:00 +09:00
3cceb63cf3 change wait default 50 -> 20 2013-11-07 15:19:08 +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
6722f35ffc calculate a physical address in 64 bit width
When physical page of address 0x1_0000_0000 is allocated,
it becomes false ENOMEM error.
2013-10-31 18:39:38 +09:00
0d3e1f1070 add --enable-dcfa option. 2013-10-30 14:44:46 +09:00
a80d11cde5 prevents MCKERNEL_RLIMIT_STACK from overwriting
When mcexec reduces a stack, mcexec stores the original RLIMIT_STACK
in environment variable MCKERNEL_RLIMIT_STACK.
A fix to prohibit overwrite of this time.

Therefore, the value of RLIMIT_STACK of the McKernel's process is
decided in the following order.
(1) If environment variable MCKERNEL_RLIMIT_STACK exists; the value.
(2) A value of RLIMIT_STACK in the mcexec starting.
2013-10-30 14:28:32 +09:00
011ef60c4b support decimal numbers at MCKERNEL_RLIMIT_STACK 2013-10-30 14:28:32 +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
6cf1b0c331 rename boot.sh to mcreboot
rename ihktest to ihkconfig
rename ihkostest to ihkosctl
2013-10-15 13:02:35 +09:00
27172ad413 support private mapped file 2013-10-15 12:30:41 +09:00
603ef85454 mcexec: add a upper limit of the stack size
- When the stack size is greater than 1 GiB, reduced to 10 MiB.
- To achieve a reduction of the stack, restart itself using the exec().
- By using the environment variable MCKERNEL_RLIMIT_STACK,
  tell to McKernel the stack size of the original.
2013-10-11 22:36:16 +09:00
3d32350be0 mcexec: add use of MCKERNEL_RLIMIT_STACK
MCKERNEL_RLIMIT_STACK is a environment variable which
specify RLIMIT_STACK value on McKernel.

syntax: MCKERNEL_RLIMIT_STACK=<cur>,<max>

example: MCKERNEL_RLIMIT_STACK=0x800000,-1
cur=8MiB, max=unlimited
2013-10-11 22:36:16 +09:00
4fb6620f3a sys_getrlimit: modified to return mcexec's RLIMIT_STACK 2013-10-11 22:36:16 +09:00
bc173baf13 mcexec: add a path prefix for interpreter search
- When the interpreter is not found,
  add a prefix to the path and retry search.
- the prefix is specified by a environment variable MCEXEC_ALT_ROOT.
- If the MCEXEC_ALT_ROOT does not exist,
  /usr/linux-k1om-4.7/linux-k1om is used as a prefix.
2013-10-11 22:23:22 +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
bb1390b085 ignore the double registration error
allow the substitute of maps from mcexec thread to the syscall channel

the temporary correction of the problem that gethostbyname() after
accept() interruption finishes an error.
2013-09-05 20:31:47 +09:00
6f76c392ee fix error message typo
- printk("register_peer_channel(%p,%p,%p):"
+ printk("deregister_peer_channel(%p,%p,%p):"
          ^^
2013-09-05 20:31:46 +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
15beb40f17 mcexec: upgrade CAP_SYS_RAWIO while do_mmap_pgoff()
for mmap_min_addr check avoidance
2013-09-03 19:42:58 +09:00