2baf274dac
fix PTRACE_O_TRACEFORK, PTRACE_O_TRACEVFORK and PTRACE_O_TRACECLONE.
...
allocate debug registers area, for new process.
(gdb testsuite gdb.base/inferior-died.exp)
refs #266
refs #372
2015-02-18 16:20:23 +09:00
c0edb6fe6f
add new cpu state CPU_STATUS_RESERVED
2015-02-18 13:46:08 +09:00
bb137bc9bb
make brk region just follow data region
...
This effectively reverts commit d70dd2338c .
2015-02-18 11:52:15 +09:00
16af976a71
support msync() system call. refs #382
...
Msync(2) of this version writes only the pages which the calling process
modified. Modifications of the other processes are not written.
2015-02-18 11:52:15 +09:00
6485578a7f
sched_yield implementation
2015-02-17 16:20:51 -08:00
d2d0fc6721
The mcexec command became executable from a command-line at the same time
2015-02-17 18:33:38 +09:00
9574a28a5f
The same CPU is assigned to a different process.
...
refs #423
2015-02-17 18:27:46 +09:00
dbe4ec3247
support PTRACE_O_TRACECLONE and PTRACE_O_TRACEEXEC.
2015-02-17 17:00:48 +09:00
99debc548f
detach traced process, when tracer process terminate.
...
some fixes on PTRACE_DETACH.
refs #374
refs #280
2015-02-17 16:58:29 +09:00
fa15f6b106
support PTRACE_SYSCALL.
...
support PTRACE_O_TRACESYSGOOD.
ptrace_report_exec() calls ptrace_report_signal().
refs #265
2015-02-17 16:56:27 +09:00
d998691425
fix setpgid(0, 0)
2015-02-13 13:51:00 +09:00
0e0bc548f6
fix mcexec SIG_IGN
2015-02-12 19:02:58 +09:00
d21ae28843
add dummy NUMA system calls. refs #405
...
ENOSYS system call handlers for the following.
- get_mempolicy()
- mbind()
- migrate_pages()
- move_pages()
- set_mempolicy()
2015-02-10 21:16:19 +09:00
a4a806bef7
support vsyscall_getcpu() vsyscall. refs #385
...
This version simply calls getcpu() system call, so that it's not fast.
2015-02-10 18:35:48 +09:00
d30d8fe71c
support getcpu() system call. refs #385
...
It appeared on Linux(x86) in kernel 3.1.
2015-02-10 18:35:41 +09:00
5f5ab34559
support PTRACE_ATTACH.
...
fix PTRACE_TRACEME, PTRACE_DETACH.
2015-01-30 21:02:01 +09:00
bd5f43b119
support PTRACE_SINGLESTEP.
...
support debug/int3 exception.
2015-01-29 15:48:05 +09:00
f97f8dbab3
support PTRACE_PEEKTEXT and PTRACE_PEEKDATA.
...
support PTRACE_POKETEXT and PTRACE_POKEDATA.
now, force write anywhere.
read-only page must copy-on-write.
2015-01-29 15:02:15 +09:00
e30946f1f0
fix PTRACE_CONT may cause error.
...
refs #369
2015-01-29 14:10:31 +09:00
c3ade864d9
fix PTRACE_PEEKUSER, PTRACE_POKEUSER, PTRACE_GETREGS.
...
support PTRACE_SETREGS.
In struct process, add 'unsigned long *ptrace_debugreg', instead of 'struct user *userp'.
debug registers are read/written from/to ptrace_debugreg, save/restore in schedule().
most general registers are proc->uctx.
fs_base is proc->thread.tlsblock_base.
gs_base,ds,es,fs,gs and orig_rax are uncompleted.
other members in 'struct user' are ignored, same as Linux implementation.
refs #257
refs #373
refs #263
2015-01-29 14:08:38 +09:00
d04b5a09bd
PTRACE_KILL omit sched_wakeup_process return
...
refs #369
2015-01-27 10:55:49 +09:00
08cc31f9bf
support setrlimits/getrlimits, however this fix is these syscalls only.
...
checking resource process must implement it separately.
refs #330
2015-01-27 10:35:58 +09:00
765de119dc
support PTRACE_O_TRACEFORK, PTRACE_O_TRACEVFORK, PTRACE_O_TRACEVFORKDONE.
...
to start with a SIGSTOP, do not set proc->ftn->status to PS_RUNNING in __runq_add_proc().
change vfork() set CLONE_VFORK.
refs #266
refs #267
refs #372
support PTRACE_GETEVENTMSG.
to store ptrace event, add 'unsigned long ptrace_eventmsg;' member in struct fork_tree_node.
refs #273
2015-01-14 10:43:18 +09:00
d46110b4d9
support PTRACE_DETACH.
...
change getppid() to use proc->ftn->ppid_parent->pid, for ptraced process.
refs #280
2015-01-08 12:39:52 +09:00
912b8a886c
do_kill distinguish PTRACE_CONT from kill.
2014-12-26 15:23:11 +09:00
5f095b3952
McKernel IHK SMP-x86 support (build system and config files)
2014-12-25 11:03:04 +09:00
a91bf9a13d
ptrace: Make PTRACE_CONT/KILL debug print separated.
2014-12-24 12:39:29 +09:00
fcfa94cea1
ptrace: Add PTRACE_O_TRACEFORK (fake) support.
2014-12-24 12:39:13 +09:00
b1b6fab7b8
fix a warning
...
| mckernel/kernel/host.c: In function 'syscall_packet_handler':
| mckernel/kernel/host.c:504:
| warning: implicit declaration of function 'find_command_line'
2014-12-22 16:58:08 +09:00
391886a6f1
fix a warning
...
| mckernel/kernel/syscall.c: In function 'do_syscall':
| mckernel/kernel/syscall.c:187:
| warning: 'irqstate' may be used uninitialized in this function
2014-12-22 16:58:07 +09:00
c810afe224
fix a warning
...
| mckernel/kernel/syscall.c: In function 'sys_madvise':
| mckernel/kernel/syscall.c:2108:
| warning: 'range' may be used uninitialized in this function
2014-12-22 16:58:06 +09:00
0942bf0ce0
make dkprintf() evaluate its parameters always
...
Parameters of dkprintf() should be evaluated even if dkprintf() is
disabled. Because this enables to find expression of parameter obsolete
and to avoid unnecessary compiler warnings such as "unused variable".
2014-12-22 16:58:03 +09:00
9c94e90007
use ftn->tid instead of proc->tid
2014-12-22 16:58:02 +09:00
a6ac906105
use ftn->pid instead of proc->pid
2014-12-22 16:58:01 +09:00
d4ba4dc8b3
introduction of mckernel_procfs_file_operations; fix /proc/self path resolution;
...
implementation of /proc/self/pagemap (LTP mmap12)
2014-12-15 12:46:05 +09:00
815d907ca4
setpgid return -EACCES when the child process had already performed an execve (LTP setpgid03)
2014-12-09 14:01:20 +09:00
3c24315f91
support for /proc/mcos%d/PID/maps (without file info) (LTP mlock03)
2014-12-05 16:29:20 +09:00
af83f1be64
rlimit(RLIMIT_NOFILE): return one less to make sure sync pipe can be created (LTP fork09)
2014-12-04 17:40:00 +09:00
b2cab453f1
clone(): do not allow setting CLONE_THREAD and CLONE_VM separately
...
XXX: When CLONE_VM is set but CLONE_THREAD is not the new thread is
meant to have its own thread group, i.e., when calling exit_group()
the cloner thread wouldn't be killed. However, this is a problem on
the Linux side because we do not invoke clone in mcexec when threads
are created. Thus, currently no support for this combination is
provided.
2014-12-04 16:55:18 +09:00
8909597499
clone(): support for handling CLONE_SIGHAND and CLONE_VM flags separately
2014-12-04 16:55:17 +09:00
86f2a9067b
getppid() implementation
2014-12-04 16:55:17 +09:00
f1a86cfbd3
when host mcexec down, syscall is hung up
2014-12-04 11:17:29 +09:00
8f30e16976
when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259)
2014-11-27 16:13:52 +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
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.
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