Tomoki Shirasawa
544971d665
modify for PVAS
2015-11-25 14:27:20 +09:00
Tomoki Shirasawa
eb6de9d1de
delete debug code
2015-11-13 15:10:14 +09:00
Balazs Gerofi
0eaa27291a
thread: move clear_child_tid, etc. to main structure
2015-10-29 11:01:27 +09:00
Tomoki Shirasawa
343bfbd30a
rename back status field
2015-10-22 20:26:50 +09:00
Tomoki Shirasawa
4e4f1208f7
delete unused member
2015-10-19 20:12:26 +09:00
Tomoki Shirasawa
a325a78866
refactoring to send signal
2015-10-15 17:10:02 +09:00
Tomoki Shirasawa
04e193de13
refactoring process structures
2015-10-13 23:04:08 +09:00
NAKAMURA Gou
51789fcd38
initialize idle_vm for page faluts
2015-10-01 21:08:35 +09:00
NAKAMURA Gou
8dd9175411
schedule: fix null pointer dereference
2015-09-29 19:10:00 +09:00
Balazs Gerofi
40b8587a8a
schedule(): sync CPU_FLAG_NEED_RESCHED flag with clone and migrate
2015-09-16 19:22:40 +09:00
Balazs Gerofi
c85a9b99e1
a couple of cosmetic changes of debug messages
2015-08-22 18:53:14 +09:00
Balazs Gerofi
f0ab8ec89a
sched_request_migrate(): change CPU flags atomically
2015-08-10 12:45:59 +09:00
Balazs Gerofi
f4cc82578d
check_need_resched(): no thread migration in IRQ context
2015-08-10 12:43:35 +09:00
Balazs Gerofi
9ba40dc0ff
schedule(): hold runq lock for the entire duration of context switching
...
releasing the runq lock after loading page tables but before the actual
context switch can leave execution in an inconsistent if the current
process is descheduled from an IRQ between these two steps.
this patch holds the runq lock with IRQs disabled and makes the context
switch a single atomic operation.
2015-08-10 12:37:12 +09:00
Balazs Gerofi
8d6c97ea5c
schedule(): disable auto thread migration
2015-08-07 16:07:31 +09:00
Balazs Gerofi
0a0e2c04a0
support for dynamically toggling time sharing when CPU is oversubscribed
2015-08-07 08:51:50 +09:00
Balazs Gerofi
aa191b87d3
schedule(): use XSAVE/XRSTOR and swap floating point registers in context switch
2015-08-07 08:41:00 +09:00
Balazs Gerofi
d5c243571f
cpu_clear_and_set(): atomic CPU mask update in migration code
2015-08-06 10:49:55 +09:00
Balazs Gerofi
328e69a335
schedule(): do not preempt while holding spinlocks or while in offloaded syscall
2015-08-06 10:36:13 +09:00
Balazs Gerofi
b77755d0f7
obtain_clone_cpuid(): always start from CPU 0 and fill in cores linearily
2015-07-28 20:20:47 +09:00
Balazs Gerofi
d7bae14707
TEMPORARY: schedule(): move threads when core is explicitly oversubscribed
2015-07-28 20:12:58 +09:00
Balazs Gerofi
4e58d08f5c
schedule_timeout(): give a chance to other process in spin sleep if CPU core is oversubscribed
2015-07-28 20:06:56 +09:00
Balazs Gerofi
9b1e691588
fix thread migration code (i.e., sched_setaffinity())
...
- moved migration code into idle() process and updated schedule() to detect
when a thread has moved to another CPU in order to avoid doing housekeeping
on behalf of the original one
- start CPU head from core 0
- keeps track of nested interrupts
2015-07-24 20:09:17 +09:00
Balazs Gerofi
3988b0fc61
keep track of IRQ context and don't do thread migration there
2015-07-23 16:56:58 +09:00
Tomoki Shirasawa
1bc84d3feb
modify to copy credentials
2015-07-13 15:29:26 +09:00
Balazs Gerofi
7647c99cc2
do_migrate(): disable IRQ while holding migq_lock to avoid deadlocking with reschedule interrupts
2015-07-09 15:23:28 +09:00
Balazs Gerofi
4ebe778ede
vm->exiting: deal with exit_group() and concurrent page faults
2015-06-25 16:04:04 +09:00
Tomoki Shirasawa
7d5a68be1b
add PID and GID to /proc/pid/status
...
add /proc/pid/cmdline
refs #445
refs #447
2015-05-18 17:45:37 +09:00
NAKAMURA Gou
4698bc40c2
implement System V shared memory for LTP syscalls
2015-03-19 16:21:18 +09:00
Tomoki Shirasawa
8934eb91a4
kill syscall check uid
2015-03-17 15:04:36 +09:00
Balazs Gerofi
8b24f60861
Combine range and memobj flags before arch_vrflag_to_ptattr()
2015-03-05 16:40:14 +09:00
Balazs Gerofi
bf12a5c45e
Introduction of write-combined memory type mappings.
...
Introduction of VR_WRITE_COMBINED, PTATTR_WRITE_COMBINED and modification
to the memobj's get_page() interface so that Linux communicates back mapping
flags (such as write-combined).
2015-03-05 16:03:21 +09:00
Tomoki Shirasawa
e6011be1af
create area for to save fp regs
...
refs #421
2015-03-05 12:18:46 +09:00
NAKAMURA Gou
2eac58aab3
add patch_process_vm(). (in progress)
...
This function patches specified range of specified user space even if
the range is not writable.
refs #401
2015-03-04 12:00:51 +09:00
NAKAMURA Gou
2239a6b09b
modify page_fault_process()
...
- change its argument from 'struct process *'
to 'struct process_vm *'.
- change its name from 'page_fault_process()'
to 'page_fault_process_vm()'.
- allow to resolve a fault on the process_vm of another process.
2015-03-04 11:29:15 +09:00
Tomoki Shirasawa
8caeba7cba
support PTRACE_GETSIGINFO and PTRACE_SETSIGINFO
...
refs #422
2015-03-03 09:54:57 +09:00
Balazs Gerofi
0307f6a6cc
impementation of sched_{setparam, getparam, setscheduler, getscheduler, get_priority_min, get_priority_max, rr_get_interval} system calls
2015-02-19 11:46:03 -08:00
Tomoki Shirasawa
c0edb6fe6f
add new cpu state CPU_STATUS_RESERVED
2015-02-18 13:46:08 +09:00
NAKAMURA Gou
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
Tomoki Shirasawa
9574a28a5f
The same CPU is assigned to a different process.
...
refs #423
2015-02-17 18:27:46 +09:00
Susumu Komae
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
Susumu Komae
5f5ab34559
support PTRACE_ATTACH.
...
fix PTRACE_TRACEME, PTRACE_DETACH.
2015-01-30 21:02:01 +09:00
Susumu Komae
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
Tomoki Shirasawa
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
Susumu Komae
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
NAKAMURA Gou
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
NAKAMURA Gou
9c94e90007
use ftn->tid instead of proc->tid
2014-12-22 16:58:02 +09:00
bgerofi@riken.jp
8909597499
clone(): support for handling CLONE_SIGHAND and CLONE_VM flags separately
2014-12-04 16:55:17 +09:00
Tomoki Shirasawa
8f30e16976
when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259)
2014-11-27 16:13:52 +09:00
Balazs Gerofi
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