Tomoki Shirasawa
cafb46efc7
rt_sigtimedwait: could not wait for ignored signal
...
Change-Id: I0f5a8e2eaae2b7c08a01f4ebb2c405b8972269a2
Refs: #1378
2020-02-13 06:23:22 +00:00
Masamichi Takagi
a8696d811d
xpmem: Support large page attachment
...
Change-Id: I4d672eee1c905160ece204d278f0afd9b6d7dc01
Refs: #1259
2019-12-06 09:30:51 +09:00
Tomoki Shirasawa
4b252a990f
SIGCONT: don't terminate process
...
Change-Id: Ib959a9e5341fda37bd055724ecb9319a469b7420
Refs: #1410
2019-12-05 07:13:56 +00:00
Tomoki Shirasawa
adb6cce3ce
The process sending SIGCONT resumes the stopped process.
...
Change-Id: I64ee10172b99aa58540ffe8e9dd80fa0a64f4d01
Refs: #1420
2019-12-05 07:13:56 +00:00
Dominique Martinet
a563d780c1
munmap: fix deadlock with remote pagefault on vm range lock
...
Add similar protection to clear_host_pte than to set_host_vma (see #986 )
Also make the page fault handler only skip taking lock if the munmap
happened on the same cpu id
Change-Id: I6d9e68e8f8905b20bb2ccfa72848e04fe6404ab6
2019-11-28 02:07:45 +00:00
Ken Sato
37ea770f8c
mmap: Round up map size by pagesize when specified MAP_HUGETLB
...
To match the behavior of Linux.
Change-Id: I7bcc2cb3c1e678ffc28f6b825c7a55032441dded
2019-11-14 07:24:25 +00:00
Masamichi Takagi
edd3ea0103
Revert "memory_range_lock: Enable interrupt when trylock fails"
...
This reverts commit 0d3ef65092 .
Reason for revert: This fix causes circular dependency with memory_range manipulation and TLB flush. See #1394 .
Change-Id: I4774e81ff300c199629e283e538c0a30ad0eeaae
2019-11-11 15:28:08 +09:00
Masamichi Takagi
11ef2f8092
coredump: Support threads
...
Change-Id: Id75ade6c87b15abcff5d772d90f77950376a32c1
Refs: #1219
2019-08-09 04:00:15 +00:00
Tomoki Shirasawa
0d3ef65092
memory_range_lock: Enable interrupt when trylock fails
...
Also use read-write-lock
Change-Id: I03150b7208325ec1fe422dcd5f931e4e41c8e40e
Refs: #452
2019-08-08 00:38:55 +00:00
Ken Sato
8efced7bf7
mmap: Check if size exceeds available memory when MAP_HUGETLB
...
If size exceeds, mmap fails and set -ENOMEM
Change-Id: I4f0d6e18ee3a7c8e32e251b7ed07ee9f76305603
Refs: #1183
2019-08-08 00:31:36 +00:00
Balazs Gerofi
089b443aaf
mmap()/shmget(): use Linux default huge page size when not specified
...
Change-Id: I8a9e3bed65ac1902adfaeaa254597dd30f540319
2019-06-06 01:09:38 +00:00
Dominique Martinet
f17c30da07
do_mmap: give addr argument a chance even if not MAP_FIXED
...
hugectl relies on that to check if a range is free
Change-Id: I97963eef15c866f642e884b063b5caf5d827c776
2019-03-29 07:52:57 +00:00
Balazs Gerofi
de042b2cb2
IPI: use logical CPU ids in ihk_mc_interrupt_cpu()
...
Also make remote TLB invalidation arch independent,
removes POSTK_DEBUG_ARCH_DEP_8.
Change-Id: I2b0fbcfa2bfe5da07607863e3e772d8e892e8525
2019-03-29 07:45:06 +00:00
Shiratori, Takehiro
ea7f517e3d
arm64: ptrace: Fix overwriting 1st argument with return value
...
Since arm64 shares the return value with the area of
the first argument, rewriting the return value before
the system call execution completes destroys the first argument.
Change-Id: I959944879254d8dd3a29489a65d8f274d45338e6
Fujitsu: POSTK_DEBUG_ARCH_DEP_110
2019-03-08 08:06:19 +00:00
Dominique Martinet
9ec0aeeab5
debug.h: merge both instances into ihk/debug.h
...
We do not need two debug.h files.
Take Fujitsu's STATIC_ASSERT over BUILD_BUG_ON because it is more used
Change-Id: If04c17fbb7406ab15fe86267fed8d6da460cec62
Fujitsu: POSTK_DEBUG_ARCH_DEP_9
2019-03-01 05:10:35 +00:00
Tomoki Shirasawa
5bc54a3bbe
Fixed time processing.
...
- arm64: Get TSC corresponding to boot time from IHK.
- x86_64: Calculate the current time using vdso.
Refs: #1186
Fujitsu: POSTK_DEBUG_ARCH_DEP_52
Change-Id: I293ba4bbe5390d50dea44b8a5b7471f59237daff
2019-02-22 04:13:13 +00:00
Dominique Martinet
516ab87ab9
Copyrights: fujitsu 2018 bump
...
Separate copyright bumps in a different commit.
A lot of files only had the copyright change at this point; these
were probably changes I added separatly in other patches but just
split these in a different commit instead to simplify git stats
Change-Id: I93cf3fc1c0fa04ee743a79c3fe9768933e6bd0d2
2019-02-01 13:18:52 +09:00
Ken Sato
dfd23c3ebe
prctl: Add support for PR_SET_THP_DISABLE and PR_GET_THP_DISABLE
...
Change-Id: I04c5568a9eb78bcac632b734f34bba49cf602c4d
Refs: #1181
2019-01-22 05:40:56 +00:00
TOIDA,Suguru
4ba4bbd711
ContiguousPTE[12/12] modify sys_shmget/sys_mmap
...
Change-Id: Icfbe9fbfa6216735ec20c55da95e5b62a25fdfea
2018-12-07 08:27:51 +00:00
TOIDA,Suguru
c319fe08a4
ContiguousPTE[7/12] modify ihk_mc_pt_set_range
...
Change-Id: Ib38530ce64a01f21107e0a6a73de7c54f214eb5a
2018-12-07 08:12:44 +00:00
Balazs Gerofi
c9fc110fc6
do_kill(): fix pids table when nr of threads is larger than num_processors
...
Change-Id: I0f0120c67a9b0df1cdf7d3fed34dd9c656fd317a
Refs: #1235
2018-12-05 08:17:05 +00:00
Dominique Martinet
01fe83dcb3
do_mmap: change addr to uintptr_t
...
Change-Id: I7df45e125387083aef7e62b046c20b7422f60f22
2018-10-11 09:24:23 +00:00
Dominique Martinet
1e1fa4f70d
trivial warnings fixes (unused variable/function)
...
Change-Id: I71cedd2c09eeb5d2c2fd2e988dfdde0877627abc
2018-10-11 09:03:53 +00:00
Tomoki Shirasawa
ed1edb152b
ptrace supports threads
...
Fujitsu: POSTK_DEBUG_TEMP_FIX_53, POSTK_DEBUG_ARCH_DEP_44
Refs: #771 , #1179 , #1143
Change-Id: Ie17ece6864f0eeb0c0e550f4e369abb77980a0d0
2018-10-01 03:57:16 +00:00
Tomoki Shirasawa
7e342751a2
do_syscall: Delegate system calls to the mcexec with the same pid
...
This includes the following fix:
send_syscall, do_syscall: remove argument pid
Fujitsu: POSTK_TEMP_FIX_26
Refs: #1165
Change-Id: I702362c07a28f507a5e43dd751949aefa24bc8c0
2018-09-13 16:59:47 +09:00
Ken Sato
c23bc8d401
syscall_time: Handle by McKernel
...
refs: #1036
Change-Id: Ifa81b613c7ee8d95ae7cdf3dd54643f60526fa73
2018-09-13 07:44:02 +00:00
Tomoki Shirasawa
5e760db417
syscall: the signal received during system call processing is not processed.
...
Refs: #1176
Fujitsu: POSTK_DEBUG_TEMP_FIX_56
Change-Id: I410160ccbcef3ef49a0e37611a608bc87c97e63b
2018-09-13 07:04:11 +00:00
Tomoki Shirasawa
e4da71010c
check_signal: system call restart is done only once
...
Fujitsu: POSTK_TEMP_FIX_66
Refs: #1009
Change-Id: Ic0f04ac6b7f6c6bb01b55fb389bf9befd56b1dd9
2018-09-13 07:00:49 +00:00
Masamichi Takagi
04d4145b3e
uti: Replace dead uti thread with new mcexec thread in proc->tids
...
Change-Id: Ic6e906dd1bfac1b07f1317732cbe0a5191831cd8
2018-09-04 19:53:03 +09:00
Masamichi Takagi
e42c414454
uti: Hook system calls by binary-patching glibc
...
(1) Add --enable-uti option. The binary-patch library is
preloaded with this option.
(2) Binary-patching is done by syscall_intercept developed by Intel
This commit includes the following fixes:
(1) Fix do_exit() and terminate() handling
(2) Fix timing of killing mcexec threads when McKernel thread calls terminate()
Change-Id: Iad885e1e5540ed79f0808debd372463e3b8fecea
2018-09-04 19:53:02 +09:00
Masamichi Takagi
5cb8a1f10f
uti: Workaround not to share CPU with OpenMP threads
...
* Assign uti thread to the last idle CPU so that it's not shared with
an OpenMP thread
Change-Id: Ia42cae056ce81fde9b6dab6286b39a52f3c9e172
2018-09-04 19:53:01 +09:00
Masamichi Takagi
0b0b7b03d7
Prevent one CPU from getting chosen by concurrent forks
...
One CPU could be chosen by concurrent forks because CPU selection and
runq addition are not done atomicly. So this fix makes the two steps
atomic.
Change-Id: Ib6b75ad655789385d13207e0a47fa4717dec854a
2018-09-04 19:51:11 +09:00
Ken Sato
f57b0c5d4f
wait: Delay wake-up parent within switch context
...
Fujitsu: POSTK_DEBUG_TEMP_FIX_41
Refs: #1006
Change-Id: Ia98e896505ad0f6549766604ade84550eee8bd2d
2018-08-30 02:13:51 +00:00
Dominique Martinet
3185334c1c
debug messages: implement dynamic debug
...
Heavily inspired off linux kernel's dynamic debug:
* add a /sys/kernel/debug/dynamic_debug/control file
(accessible from linux side in /sys/class/mcos/mcos0/sys/kernel/debug/dynamic_debug/control)
* read from file to list debug statements (currently limited to 4k in size)
* write to file with '[file foo ][func bar ][line [x][-[y]]] [+-]p' to change values
Side effects:
* reindented all linker scripts, there is a new __verbose section
* added string function strpbrk
Change-Id: I36d7707274dcc3ecaf200075a31a2f0f76021059
2018-07-26 14:16:31 +09:00
Dominique Martinet
97273adcc5
x86_64 move_pages_smp_handler: rework initialisation
...
- add missing break statement
- remove duplicate memset for mpsr->status
Change-Id: I1fd1a8b2bb7bbabb32db9e7d3fc84102d9b0ff82
2018-07-26 04:59:23 +00:00
Dominique Martinet
eb675818c7
x86 mmap: fix out of bounds shift
...
0x3F << MAP_HUGE_SHIFT is too big to fit in signed int,
make it unsigned
Change-Id: I0e476b80ff51a8e141c90da6f985ba18a3438752
2018-07-26 03:50:44 +00:00
Dominique Martinet
9a79920ef9
Static analysis fixes
...
Change-Id: I7bc42545a1c497f704d7bfa6ea1b7e3893acc697
2018-07-26 03:36:50 +00:00
Ken Sato
11756d96ef
mmap, mremap: Check arguments in the same order as in Linux
...
Refs: #1137
Change-Id: I4fd2ac83b013a2741a3facce4dd7e0c37b14fd25
2018-07-03 08:41:30 +00:00
Ken Sato
ce3af4734a
fix: dual hold_thread() in do_kill()
2018-03-19 11:12:50 +09:00
Masamichi Takagi
65667709a8
Fix thread status race-condition caused by hold_thread() in do_kill() and terminate()
...
Conflicts:
arch/x86_64/kernel/syscall.c
kernel/syscall.c
2018-03-09 17:53:17 +09:00
Masamichi Takagi
3b277b2354
uti: Fix dead-lock of calling terminate() from terminate()
...
Conflicts:
arch/x86_64/kernel/syscall.c
kernel/syscall.c
2018-03-09 17:38:55 +09:00
Ken Sato
140f813d77
fix: differences in behavior of sigaction between Linux and Mckernel
2018-03-01 09:44:44 +09:00
Ken Sato
523a066245
sigaction: support for SA_RESETHAND on x86_64
...
refs #1031
2018-02-22 11:55:32 +09:00
Tomoki Shirasawa
559fc9746c
signal: check_signal must be called after check_need_resched.
2018-01-28 13:38:51 +09:00
Balazs Gerofi
86efc86945
save_syscall_return_value(): separate from check_signal() and call from syscall() (for ARM64)
2018-01-26 14:43:18 +09:00
Tomoki Shirasawa
f55f01cc11
signal: If the thread receiving the signal is not current, the signal is not processed.
2018-01-25 22:27:34 +09:00
Tomoki Shirasawa
1fa398cfab
do_kill: fix to initialization leakage
2018-01-24 23:11:18 +09:00
Tomoki Shirasawa
4bb65494e9
signal: When the process receives a termination signal, it first terminates mcexec.
...
refs #863
refs #870
2018-01-23 14:40:38 +09:00
Tomoki Shirasawa
2f2b3cdc6f
signal: interrupt_syscall is called by the core executing the thread that recieved the signal.
...
refs #999
2018-01-23 14:31:04 +09:00
Tomoki Shirasawa
d209c00a30
part of Issue#994
...
mcexec: open syscall moves to arch_dep
do_fork: don't use __NR_fork. use __NR_clone
vfork: moves to arch_dep
2017-12-26 10:30:33 +09:00