Commit Graph

599 Commits

Author SHA1 Message Date
f1a86cfbd3 when host mcexec down, syscall is hung up 2014-12-04 11:17:29 +09:00
c1cf630a94 mcexec: store full path to executable
required so that a forked process can obtain exec reference in the
Linux kernel even if executable was specified with relative path
and fork was called after changing the current working directory
2014-12-03 15:14:26 +09:00
8f30e16976 when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259) 2014-11-27 16:13:52 +09:00
58e2e0a246 Use pidof in mcreboot script 2014-11-23 17:54:14 +09:00
ea02628f2b Add reboot and shutdown script for builtin-x86
It decides the number of cores for McKernel by looking into the
"SHIMOS: CPU Status:" line of dmesg. It sets the amount of memory for
McKernel to one urth of the total memory obtained by "free -g".
2014-11-13 20:06:29 +09:00
89acf5c5d6 support for AT_RANDOM auxiliary entry on the process stack (needed for _dl_random in glibc) 2014-11-11 08:48:27 +09:00
ac8e2a0c40 handle VM_RESERVED (non-existing since Linux 3.7.0) and do_mmap_pgoff() (unexported since Linux 3.5.0) in mcctrl's syscall.c 2014-11-11 08:42:07 +09:00
ab7aa3354f repair signal implementation.
- Don't intrrupt syscall with the ignored signal.
2014-11-07 07:55:30 +09:00
c4e0b84792 repair signal implementation.
- can not interrupt syscall
- can not recieve SIGKILL
2014-10-31 16:34:59 +09:00
3fe7e39607 some variables definition are gathered to fork_tree_node from process.
- remove both-defined: pid, pgid, status
- move to fork_tree_node: tid
- make dummy fork_tree_node for idle_process.
0.4.0
2014-10-29 16:54:09 +09:00
658ff759ef build scripts: support for separate build and source directories 2014-10-20 18:27:24 +09:00
11947a4ce3 initialize and propagate a cpu affinity (temporary fix)
This fix is only intended to work an OpenMP program.
It is necessary to investigate behavior of linux and reimplement this
fix.
2014-10-20 15:21:49 +09:00
f195b9c675 don't use COW pages in private anonymous mapping (quick fix) 2014-10-17 23:25:15 +09:00
6cd1016d57 Remove debug message that could dereference NULL 2014-10-17 14:24:44 +09:00
d2cb890cdd idle(): recheck runq just before cpu status check
There is a problem which causes wait4(2) hang when wait4(2) called by a
process races with its child process termination.
This is a quick fix for this problem. See idle().

refs #271
2014-10-15 17:58:27 +09:00
758796bb69 idle(): cosmetic changes 2014-10-15 17:58:27 +09:00
ec179f072d ptrace: Add all known request value and report upon their request. 2014-10-15 15:42:45 +09:00
8460a7d93e siginfo.si_status was invalid 2014-10-15 15:27:32 +09:00
8a6ffa8542 fix ptrace(PTRACE_PEEKUSER), store register value to *data 2014-10-15 14:56:45 +09:00
a150a19393 ptrace: Bug fixed.
see: http://postpeta.pccluster.org/redmine/issues/265#note-3
2014-10-15 14:56:30 +09:00
f0f31e19fb procfs: PTRACE_O_TRACESYSGOOD (fake) 2014-10-15 14:56:11 +09:00
fef946e5ff support PTRACE_GETREGS 2014-10-15 14:55:49 +09:00
4b46330624 support ptrace(PTRACE_PEEKUSER, ...) 2014-10-15 14:54:33 +09:00
a101aa0534 ptrace: Temporal fix for signal inconsistency. 2014-10-15 14:52:32 +09:00
1f120b929b ptrace: Make unimplemented ptrace requests return error. 2014-10-15 14:50:11 +09:00
f28eb0a672 Fix taking exit status when wait4()-ing stopped 2014-10-15 14:49:36 +09:00
95dd193fd6 Fix reporting of having done execve to ptracer 2014-10-15 14:49:23 +09:00
2997274470 Make __WCLONE option for wait4(2) and flags for clone(2) work properly. 2014-10-15 14:45:58 +09:00
66db108dd3 Use erase-safe Ver. of list traversal in waitpid 2014-10-15 14:42:52 +09:00
759ceac769 Fix deafult signal actions 2014-10-15 14:42:34 +09:00
013d3e95c2 Fix manipulation of fork_tree_node for ptrace 2014-10-15 14:42:17 +09:00
658b88fd7b Modify spacing 2014-10-15 14:40:47 +09:00
da17625be9 gdb: definitions for ptrace() and syscall part of TRACEME 2014-10-15 14:30:17 +09:00
dbecaa2fc8 Add ptrace functions of job-control and signal
Note that a forked process automatically becomes ptraced state in this
commit.
2014-10-15 14:28:55 +09:00
ab89de0de6 show the interrupt context in lower case
This commit is intended to make it easier to find the corresponding line
in the objdump output.
2014-10-14 14:16:46 +09:00
759fd2e078 show all GPRs saved in interrupt context
This commit adds:
- rbp, r12 .. r15
- rflags
- error code
2014-10-14 14:16:46 +09:00
aa05f00e7e don't map syscall pages into process space
Request pages, response pages, and a doorbell page are mapped into
process space to enable user processes to delegate system calls
directly to mcctrl/mcexec.

This commit removes these mappings for the following reasons.
- These mappings cause a memory leak in current fork() implementation.
- These mappings are not used.
- These mappings do not function properly.
  And the fix which corrects function of these mappings is not easy.
2014-10-10 16:20:38 +09:00
6415559a81 procfs: use current cpu's syscall_channel 2014-10-10 16:20:38 +09:00
2e5874880a procfs: delay ack until get_procfs_entry() ends
This commit avoids the problem that causes get_procfs_entry() to create
entries which have same name.  See get_procfs_entry().
2014-10-10 16:20:38 +09:00
7fcd36fbd3 Lock when setting PTE for kernel virual address
We didn't have any lock variable to guard the manipulation of a PTE for
kernel virual address space. Note that we have one for user virtual
address space.
2014-10-08 14:06:17 +09:00
658aa18ade add memory debug (kmalloc/kfree)
* support "memdebug" mckernel option
* check buffer overrun when memory free and next mcexec run
* check double free
* check memory leak when next mcexec run
2014-10-07 15:45:16 +09:00
f3ea226d91 fix strncpy buffer overrun 2014-10-01 09:04:11 +09:00
8751b32b30 Suppress kernel message when missing remote PTE
The page-fault handler called on the Linux side looks for a matching PTE
in the page table residing in McKernel. If it fails to find it, it
wrote a confusing kernel message. It's supressed now because it's not an
error.
2014-09-25 20:30:49 +09:00
905fb9abb6 devobj: relax the size limit to 512 pages 2014-09-25 18:07:31 +09:00
43e6de8124 fork()/execve()/ETXTBSY: sync parent a child duing fork() to make sure child holds a reference to the executable in the host kernel using open_exec() 2014-09-25 15:14:18 +09:00
ef52ba7607 kill system call returned bad number 2014-09-25 14:09:07 +09:00
a0c5d5c5de Merge branch 'master' of postpeta.pccluster.org:mckernel 2014-09-23 23:18:27 +09:00
39f36120c1 support sigqueue 2014-09-23 23:17:53 +09:00
a7b0880a8d Make findthread_and_lock take ihk_spinlock_t ** 2014-09-23 12:03:48 +09:00
434597e629 Make lock/unlock in lock.c accord with arch-lock.h
Make both of the lock/unlock function pairs use the same interfaces.
2014-09-23 12:00:18 +09:00