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
29c7d40005
use atomic operations for manipulating page.count
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
cc8317643e
SIGPIPE fix (ltp writev)
2014-04-25 08:43:08 +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
d6c0ea7627
assign the same TID and PID to the new process after fork()
2014-04-15 20:40:40 +09:00
0285c99c9c
use PT_PHYSMASK on last level PTE entries to avoid returning invalid physical address
2014-04-15 20:21:07 +09:00
d090e3f28d
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-04-13 14:13:46 +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
56f0d3b29f
support IA-32e's "execute disable bit"
2014-04-11 14:59:47 +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
f60b37ea1b
use 'enum ihk_mc_pt_attribute' instead of 'int'
2014-04-11 14:59:46 +09:00
55817e9e83
use "struct x86_regs *" to access stack frames
...
The intention of this fix is to cope with a recent change of
PUSH_ALL_REGS.
2014-04-03 15:33:35 +09:00
c0c9192e1b
add prototypes to cpulocal.h
...
+struct x86_cpu_local_variables *get_x86_this_cpu_local(void);
+void *get_x86_this_cpu_kstack(void);
2014-04-03 15:33:34 +09:00
7eeafb0d85
change parameter types of arch-regs to "void *"
2014-04-03 15:33:34 +09:00
da81cd2d1d
mcexec: copy a pathname string of open(2) safely
...
When a open system call request is delegated, mcexec will check whether
a path name is known one such as "/proc/meminfo" and "/proc/cpuinfo".
During this check, if mcexec causes a SIGSEGV or SIGBUS signal,
mcexec will begin a loop, because mcexec has a signal handler which
returns simply.
2014-04-03 15:27:49 +09:00
583c9355cd
fix argument of set_tid_address()
2014-04-02 18:02:04 +09:00
ab13f9a57c
declare fork() so that __NR_fork is available
2014-04-02 18:00:09 +09:00
cf442e6a14
fork(): preliminary version (no wait()/waitpid() support yet)
2014-04-02 14:07:38 +09:00
391b69e8c4
refactor mcexec's main and separate signal and syscall thread initialization
2014-04-02 14:04:55 +09:00
3ce94072b4
save/restore rbp when entering/leaving kernel (required for fork() in glibc)
2014-04-02 14:02:20 +09:00
dabca28e4b
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-03-30 16:14:43 +09:00
e112aa8b06
remove DMA call
2014-03-30 16:14:19 +09:00
b01b31f04d
use GFP_ATOMIC in interrupt context
2014-03-28 18:43:34 +09:00
ccd770ba24
use per-process wait queues for system call request processing in mcexec so that multiple processes can share the per-core system call channels
2014-03-27 19:31:42 +09:00
11ddbcf3c8
wait only 10 secs in mcreboot-attached
2014-03-27 15:35:42 +09:00
a2515747cf
print CPU core ID in debug messages
2014-03-27 15:32:23 +09:00
51f75d9ba8
mcexec: options for target CPU core ID where application is executed
2014-03-27 14:58:26 +09:00
76089e2682
add AT_PAGESZ to auxvec
2014-02-26 10:31:44 +09:00
74339586d5
change dma_buf size 256MB -> 4kB
2014-02-07 10:57:50 +09:00
dca831b94f
add error check codes for madvise()
...
The advice will be ignored even if this madvise() succeed.
2014-02-05 11:31:03 +09:00
b2b9b566c8
implement munlock()
2014-02-05 11:31:01 +09:00
f2a6515448
implement mlock()
2014-02-05 11:30:59 +09:00
fcbaa9726c
correct the syscall return type
...
Long size syscall return values such as shmat()'s and lseek()'s are
broken, because lower 32 bits are only returned.
2014-02-05 11:30:57 +09:00
93c5385f65
implement mmap(MAP_LOCKED)
2014-01-27 18:59:36 +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
bdc945cb34
mcexec: wait for the signal to be received
...
The mcexec may send a signal to itself in order that the mcexec
terminates abnormally.
Generally, the signal is delivered to the thread which sent the signal.
In this case, the signal terminates the mcexec immediately.
However, if the signal is delivered to another thread,
the thread which sent the signal can call exit(3)
before the signal terminates the mcexec.
2014-01-24 20:22:54 +09:00
069bb10a02
make mcexec ignore garbage request
...
When a signal is forwarded from McKernel,
ioctl(MCEXEC_UP_WAIT_SYSCALL) may return EINTR error.
In this case, though no syscall request has been received,
the mcexec starts to process the syscall requst that is garbage.
2014-01-24 20:20:45 +09:00
f5b4057074
add vsyscall
...
- getcpu() is not implemented. It will cause SIGILL.
- gettimeofday() and time() are implemented with syscall.
2014-01-24 20:18:36 +09:00
26d68d391d
signal part 4 (sigsuspend etc)
2014-01-24 10:14:49 +09:00
c421965542
relocate a program interpreter to the map_start
...
This commit makes a system call that dereferences a NULL pointer fail.
2014-01-14 18:55:16 +09:00
6992b829a0
delegate the open(2) with the generic forwarding.
...
This commit solves a problem that causes getpwnam()/getpwuid() to return
NULL.
2014-01-14 18:50:20 +09:00
afc38718a0
add MCEXEC_UP_STRNCPY_FROM_USER
...
It allows a mcexec to execute the strncpy_from_user().
2014-01-14 18:50:19 +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