11b9fe0377
page_fault_handler: fix missing increment of in_page_fault on SEGV
...
This integrates some of the changes of the following commit:
1cf0bd5a ("TO RESET: add debug instruments, map Linux areas for tofu")
Change-Id: Iffd8432d5a7b35f20bd45829a125583a0363dbf0
2021-02-09 00:56:15 -05:00
1cf0bd5a78
TO RESET: add debug instruments, map Linux areas for tofu
...
Change-Id: I09880cad3b87182cb663d414041254817c254759
2020-12-29 16:31:39 +09:00
10c09aa10e
MM: generic lockless kmalloc and page cache
...
Change-Id: I71ad498fdd10136d9c72ffe2b16b9122d1bc9673
2020-12-09 13:05:53 +09:00
623d6f8bc3
arm64: record register state at kernel mode page fault (for eclair)
...
Change-Id: I066bceecc0377110faaca0b21d45a476d000e684
2020-12-09 13:05:53 +09:00
1afc3d9b70
Keep track of number of context switches per CPU
...
Change-Id: I7a2194c8777a7efcd34e1ed7f4734da03fb4d433
2020-06-13 17:18:10 +09:00
37605740a4
support for backlog
...
Change-Id: Id8f503234e7afaa284e6b97dc264eb3a2af145c7
2019-12-05 07:08:13 +00:00
2dd8687974
flush instruction cache at context switch time if necessary
...
Change-Id: Ic09415ea772a9de6dca43a98168a8346ca86d3e7
2019-08-08 00:29:47 +00:00
f0bc1a6b07
cmake: Add option for "mem: per-CPU allocator cache (ThunderX2 workaround)"
...
Change-Id: I7156cf433b2081246d1d9b8e4fde489609676ef1
2019-08-08 00:29:34 +00:00
99fba2df1c
mem: per-CPU allocator cache (ThunderX2 workaround)
...
Change-Id: I7694524c5e9674a6f7bfcd911f8b0dbbead7df5a
2019-06-03 01:22:03 +00:00
52afbbbc98
uti: Call into McKernel futex()
...
(1) Masquerade clv
(2) Fix timeout
(3) Let mcexec thread with the same tid as McKernel thread migrating
to Linux handles the migration request
(4) Call create_tracer() before creating proxy related objects
Change-Id: I6b2689b70db49827f10aa7d5a4c581aa81319b55
2018-09-04 19:52:10 +09:00
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
4246d41007
kmalloc_header: use signed integer for target CPU id
...
Cherry-pick of bdb2d4d8fa94f9c0268cdfdb21af1a2a5c2bcae5
2018-09-04 19:51:09 +09:00
c107d1fdf9
fix: Bug for measuring rss in fork()
...
refs: #1032
2018-03-15 14:29:16 +09:00
aa7cb970c4
ihk_os_getrusage(): Compile LWK-specific results in mcctrl
...
1. User asks mcctrl for the result via ihk_os_getrusage() with passing void *
2. mcctrl compiles the results and passes them to the user
3. User interprets it by using the type defined in the LWK-specific header
2017-09-20 15:03:45 +09:00
d7b8e7f4f4
fix to count user pages
...
refs #864
2017-07-14 09:51:39 +09:00
dd2ef89997
SMP: generic function call facility for CPU sets
2017-05-28 07:41:48 +09:00
c2b1d8e3ef
IKC: delete the comments for review
2017-05-19 10:26:29 +09:00
8daffa939e
IKC: distribute IKC-interrupt to Linux cpus.
2017-05-19 10:26:29 +09:00
3fe2257929
create rusage branch.
2017-03-15 23:22:51 +09:00
865ada46bf
IKC2: eliminate unused IKC structures
2017-01-13 08:43:25 +09:00
3b60a95f13
kmalloc()/kfree() re-implementation
2016-08-18 21:51:36 +09:00
7ebc34ddcc
do_fork(): fix tids memory leak; additional sanity checks
2016-08-18 14:31:52 +09:00
edc275ce4f
delete free_list_lock
2015-12-28 11:31:42 +09:00
153a59a6f4
gettimeofday: avoid per-cpu data in calculation
...
Because it is difficult to safely update per-cpu data of other cpus in
settimeofday().
2015-10-27 19:21:50 +09:00
04e193de13
refactoring process structures
2015-10-13 23:04:08 +09:00
9ae5bcf46e
gettimeofday(): an implementation based on CPU invariant TSC support
2015-08-24 23:53:56 +02:00
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
0a0e2c04a0
support for dynamically toggling time sharing when CPU is oversubscribed
2015-08-07 08:51:50 +09:00
328e69a335
schedule(): do not preempt while holding spinlocks or while in offloaded syscall
2015-08-06 10:36:13 +09:00
3988b0fc61
keep track of IRQ context and don't do thread migration there
2015-07-23 16:56:58 +09:00
c0edb6fe6f
add new cpu state CPU_STATUS_RESERVED
2015-02-18 13:46:08 +09:00
3fe7e39607
some variables definition are gathered to fork_tree_node from process.
...
- remove both-defined: pid, pgid, status
- move to fork_tree_node: tid
- make dummy fork_tree_node for idle_process.
2014-10-29 16:54:09 +09:00
658aa18ade
add memory debug (kmalloc/kfree)
...
* support "memdebug" mckernel option
* check buffer overrun when memory free and next mcexec run
* check double free
* check memory leak when next mcexec run
2014-10-07 15:45:16 +09:00
f7780cfe93
kmalloc()/kfree(): allow CPU cores to kfree() a piece of memory that was kmalloc()ed by another core through embedding CPU id into malloc_header
2014-09-14 23:22:43 +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
821396be7b
amemcpy.c, cls.h, init.h, kmalloc.h, kmsg.hcopoyright
2013-11-14 17:30:43 +09:00
040fb64b22
add terminate thread
2013-09-02 00:39:22 +09:00
deb9cd4e75
implement sys_munmap()
2013-07-18 09:25:58 +09:00
4693789608
change function names
2012-12-17 16:15:05 +09:00
0a808057eb
modify include lines and Makefiles
2012-12-17 16:10:56 +09:00
8c34463dd4
runqueues and schedule()
2012-05-03 18:38:08 +09:00
033d64a7ae
TLS and thread_child_tid (Shimada-san)
2012-05-01 16:43:51 +09:00
d2591c6d25
temp
2012-01-06 17:06:42 +09:00
480e1b12ef
big commit
2011-11-28 13:00:13 +09:00
83a17650b9
AP, kmalloc
2011-11-06 19:27:09 +09:00