f535670100
fix pipe02
2014-08-27 16:50:01 +09:00
bc8b441358
process table traversing must be under interrupt inhibition
...
add finding process table function (findthread_and_lock/process_unlock)
2014-08-25 13:24:06 +09:00
26e219e698
Clarification.
2014-08-01 11:31:34 +09:00
dca9def246
Finalize merger.
2014-08-01 09:25:10 +09:00
570b850861
temporal fix
2014-08-01 09:23:11 +09:00
3fa6818962
Merge from master.
2014-07-31 18:30:39 +09:00
b58682dd73
Merge branch 'master' of postpeta.pccluster.org:mckernel into gdb
2014-07-31 10:31:45 +09:00
c83e80ad91
execve(): clear host user-space PTEs before context switching
2014-07-28 18:57:56 +09:00
07b07476b7
remote TLB invalidation: follow migrated threads by affinity calls
2014-07-27 13:11:41 +09:00
530535c162
Merge remote branch 'origin/master' into gdb
2014-07-23 10:29:07 +09:00
101a0f6e4a
remote TLB invalidation code for multi-threaded applications (e.g., during munmap())
2014-07-22 12:24:07 +09:00
9dd7d6283c
Merge remote branch 'origin/master' into gdb
...
Conflicts:
kernel/include/process.h
2014-07-18 16:03:35 +09:00
170a54d976
add CPU affinity function
...
- syscall support
-- sched_setaffinity
-- sched_getaffinity
- migration in scheduler
- resched at return of syscalls/interrupts
2014-07-13 17:04:47 +09:00
f923e03565
fix to make CPU idle when len(runq) != 0 but all queued are sleeping
2014-07-13 17:04:09 +09:00
292b34fe21
signal handler is not passed to a child process(redmine#62)
2014-07-13 12:49:30 +09:00
1d45444d54
Added code for generating core image.
...
modified: arch/x86/kernel/gencore.c
modified: arch/x86/kernel/include/elfcore.h
modified: kernel/include/process.h
modified: kernel/process.c
2014-07-10 15:55:35 +09:00
11bb334bd4
support mremap(2)
...
fixes #22
2014-07-02 15:30:52 +09:00
90aaf9dc9c
support remap_file_pages(2)
...
fixes #21
2014-06-30 17:33:51 +09:00
bb3756dc74
add fileoff-type PTE
...
fileoff-type PTE holds a file offset which the page data should be
loaded from.
refs #21
2014-06-30 17:33:50 +09:00
dc7f38c8c7
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-06-25 13:45:46 +09:00
770eae0186
support sigaltstack
2014-06-25 13:45:33 +09:00
a9bebf1e14
Make idle loop not miss a chance to schedule
...
Prevents the case where McKernel misses one chance to schedule a
task when an interrupt occurs just after enabling interrupt and
just before executing "halt" in the idle loop (in kernel/process.c).
refs #45
2014-06-12 11:22:02 +09:00
514d75b685
execve(): supporting syscall and mcexec modifications
2014-05-22 17:39:13 +09:00
badb450153
more detailed report in memory management error path
2014-05-22 17:27:39 +09:00
e5aad641ac
delete old page fault handlers
2014-05-07 22:10:21 +09:00
71d1359d53
merge two page fault functions
...
fixes #18
2014-05-07 21:24:45 +09:00
99dec9b805
add parameters to arch_vrflag_to_ptattr()
...
for other architectures and future use
refs #18
2014-05-07 21:24:45 +09:00
769cf79bf8
move vrflag_to_ptattr() to arch/x86/kernel/memory.c
...
refs #18
2014-05-07 21:24:45 +09:00
7e788f06f7
add PTATTR_DIRTY
...
refs #18
2014-05-07 21:24:45 +09:00
ce7af5839d
keep page.count valid through its life cycle
2014-05-07 21:24:45 +09:00
604d1da50f
change macro name: PF_DONTCOW --> PF_POPULATE
...
refs #18
2014-04-25 11:19:21 +09:00
c15c2a2024
fix process refcount so that process structure is still valid when final release() is called in schedule()
2014-04-24 17:09:14 +09:00
0e348e6295
SIGCHLD and wait4(), i.e. wait()/waitpid() implementation
2014-04-23 13:33:18 +09:00
7103fed1dc
rename free_process() ro release_process()
2014-04-23 13:31:15 +09:00
2a9bd2efb1
fix clean-up path in create_process()
2014-04-21 19:55:43 +09:00
40fdb8865b
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-04-11 15:41:25 +09:00
b93db2411c
check CLONE_VM in clone_flags for determining whether clone()/fork() is requested
2014-04-11 15:41:17 +09:00
39a86fad18
support execute disabled stack
2014-04-11 14:59:47 +09:00
b31a1b6db2
add PTATTR_NO_EXECUTE
2014-04-11 14:59:47 +09:00
cf442e6a14
fork(): preliminary version (no wait()/waitpid() support yet)
2014-04-02 14:07:38 +09:00
76089e2682
add AT_PAGESZ to auxvec
2014-02-26 10:31:44 +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
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
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
03521e9c2c
add copyrights
2013-11-14 16:49:40 +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
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