57690479bd
read/patch_process_vm(): map non-LWK physical addresses properly
2016-07-22 20:48:54 +09:00
4c8f583c0c
split_large_page(): avoid panic when splitting "non-mapped" large pages
2016-07-14 17:11:52 +09:00
648bacc90f
device file mappings: communicate map flags and fault missing translations
2016-06-24 12:44:59 -07:00
d4a0b32f06
support large pages
2016-04-21 23:22:55 +09:00
2048980820
remove ihk_mc_pt_alloc_range()
2016-04-21 23:22:54 +09:00
176f6d23a9
ihk_mc_pt_virt_to_pagemap: refactor
2016-04-21 23:22:54 +09:00
c760a01a79
add pte_get_attr()
2016-03-28 22:57:44 +09:00
8f7b9072ea
refactor some copyin/copyout functions
...
- copy_from_user()
- getlong_user()
- getint_user()
- copy_to_user()
- setlong_user()
- setint_user()
2016-03-23 19:04:32 +09:00
4595aa3079
pte_visitor_t(): change "pgsize" into "pgshift"
2016-03-23 19:04:32 +09:00
eb0700359b
fix REQ-36
2016-03-10 10:33:38 +09:00
dbc778e4fa
support getrusage (work in progress)
2016-03-07 17:06:44 +09:00
f093786bec
x86: populating PML4e and PDPTe is now lock-free
2016-01-25 09:17:06 +09:00
04e193de13
refactoring process structures
2015-10-13 23:04:08 +09:00
4946964ed0
update copyright notices
2015-03-27 14:50:09 +09:00
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
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
22d8d169b6
change copy-out routines
...
- restrict copy_to_user() to only current process.
- add write_process_vm() to write specified process space.
2015-03-04 11:29:16 +09:00
063fa963c3
change copy-in routines
...
- restrict copy_from_user() to only current process.
- add read_process_vm() to read specified process space.
2015-03-04 11:29:15 +09:00
a6488adcc1
change parameter type of ihk_mc_pt_virt_to_phys()
...
- add type qualifier 'const' to virtual address parameter.
that is, change parameter 'virt' from 'void *'
to 'const void *'
2015-03-04 11:29:15 +09:00
ff47261337
receive trampoline addr via parameter of arch_start()
2014-12-25 11:03:00 +09:00
55f7ee1526
fix a warning
...
| mckernel/kernel/../arch/x86/kernel/memory.c: In function '__set_pt_page':
| mckernel/kernel/../arch/x86/kernel/memory.c:367:
| warning: 'init_pt_lock_flags' may be used uninitialized in this function
2014-12-22 17:03:32 +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
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
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
aaa466ed05
Revert "ihk_mc_pt_print_pte で PTE を表示するようにした"
...
This reverts commit 9a1d535f5c .
2014-09-17 19:59:34 +09:00
7e12f0db72
Revert "テスト支援コード"
...
This reverts commit 054cb2ada2 .
2014-09-17 19:59:32 +09:00
054cb2ada2
テスト支援コード
...
- vm_range_list のテスト支援コード
- vm_range 一致確認用関数追加
できれば、指定範囲内の変更を無視させたいのだが、
指定範囲内の変更のために split されたエントリを無害と判断できない
- page table のテスト支援コード
2014-09-17 19:46:48 +09:00
9a1d535f5c
ihk_mc_pt_print_pte で PTE を表示するようにした
2014-09-17 19:46:45 +09:00
101a0f6e4a
remote TLB invalidation code for multi-threaded applications (e.g., during munmap())
2014-07-22 12:24:07 +09:00
11bb334bd4
support mremap(2)
...
fixes #22
2014-07-02 15:30:52 +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
d2e29bf598
add visit_pte_range()
...
refs #21
refs #22
2014-06-30 17:33:43 +09:00
badb450153
more detailed report in memory management error path
2014-05-22 17:27:39 +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
0285c99c9c
use PT_PHYSMASK on last level PTE entries to avoid returning invalid physical address
2014-04-15 20:21:07 +09:00
56f0d3b29f
support IA-32e's "execute disable bit"
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
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
8411f353fe
signal part 3 (EFAULT)
2014-01-13 10:52:29 +09:00
2f89e26ac0
add modification history entry to the following files,
...
mckernel/lib/include/*.h
mckernel/arch/x86/elfboot/*
mckernel/arch/x86/kboot/main.c
mckernel/arch/x86/kernel/*
mckernel/lib/page_alloc.c
mckernel/lib/string.c
mckernel/lib/include/ihk/*
except
mckernel/arch/x86/kernel/include/signal.h
mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
mckernel/arch/x86/kernel/include/syscall_list.h
mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 18:30:06 +09:00
384328c6bc
add copyright notice to the following files,
...
mckernel/lib/include/*.h
mckernel/arch/x86/elfboot/*
mckernel/arch/x86/kboot/main.c
mckernel/arch/x86/kernel/*
mckernel/lib/page_alloc.c
mckernel/lib/string.c
mckernel/lib/include/ihk/*
except
mckernel/arch/x86/kernel/include/signal.h
mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
mckernel/arch/x86/kernel/include/syscall_list.h
mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 17:09:58 +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
27172ad413
support private mapped file
2013-10-15 12:30:41 +09:00
480f6d4c2f
rewrite page_fault_handler()
2013-08-08 12:43:00 +09:00
78d9d3fcd2
Revert "trial implementation of private file mapping"
...
This reverts commit abe57218c4 .
2013-07-26 16:44:39 +09:00
abe57218c4
trial implementation of private file mapping
...
for review only. will soon be reverted.
2013-07-26 14:40:12 +09:00
334662b7fe
implement sys_mprotect()
2013-07-18 09:25:58 +09:00
2aa5194958
rewrite sys_mmap() as sys_new_mmap()
2013-07-10 13:11:19 +09:00