7c816a6b73
an implementation of the Mellor-Crummey Scott (MCS) lock
2015-08-20 15:26:52 +09: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
386f59000a
mcreboot-smp-x86.sh.in: grant real user rw permission on /dev/mcos*
2015-08-07 13:33:44 +09:00
215cd370a1
ap_init(): clean up AP boot kernel messages
2015-08-07 10:57:59 +09:00
0a0e2c04a0
support for dynamically toggling time sharing when CPU is oversubscribed
2015-08-07 08:51:50 +09:00
aa191b87d3
schedule(): use XSAVE/XRSTOR and swap floating point registers in context switch
2015-08-07 08:41:00 +09:00
328e69a335
schedule(): do not preempt while holding spinlocks or while in offloaded syscall
2015-08-06 10:36:13 +09:00
b77755d0f7
obtain_clone_cpuid(): always start from CPU 0 and fill in cores linearily
2015-07-28 20:20:47 +09:00
d7bae14707
TEMPORARY: schedule(): move threads when core is explicitly oversubscribed
2015-07-28 20:12:58 +09:00
9b1e691588
fix thread migration code (i.e., sched_setaffinity())
...
- moved migration code into idle() process and updated schedule() to detect
when a thread has moved to another CPU in order to avoid doing housekeeping
on behalf of the original one
- start CPU head from core 0
- keeps track of nested interrupts
2015-07-24 20:09:17 +09:00
3988b0fc61
keep track of IRQ context and don't do thread migration there
2015-07-23 16:56:58 +09:00
1ff4cf68c2
support SA_RESTART flag and restart syscall
2015-07-16 16:33:14 +09:00
a029bcac37
mcreboot-smp-x86: find unused IRQ line and pass start vector to ihk_smp_x86.ko
2015-07-07 09:07:16 +09:00
382614ddae
pstate: use MSR_NHM_TURBO_RATIO_LIMIT as maximum single-core turbo ratio
2015-07-01 22:18:38 +09:00
fbb776e4fb
cpu init: support for no_turbo kernel argument
2015-06-25 12:18:27 +09:00
5532e3c663
mcreboot script for new IHK SMP-x86 I/F
2015-05-26 14:41:28 +09:00
7d5a68be1b
add PID and GID to /proc/pid/status
...
add /proc/pid/cmdline
refs #445
refs #447
2015-05-18 17:45:37 +09:00
f4162dff52
some signals set siginfo.si_code
2015-04-14 15:11:36 +09:00
a0d909af75
add supports for dump analyzer
2015-03-31 12:59:53 +09:00
4946964ed0
update copyright notices
2015-03-27 14:50:09 +09:00
5f19842a6a
support for process_vm_readv()/process_vm_writev()
2015-03-25 19:44:56 +09:00
9271d5346d
add ACSL annotation to cpu.c
2015-03-25 15:54:08 +09:00
7bba05cfa4
Revise use of iov_base in ptrace_read_regset() and ptrace_write_regset().
2015-03-20 20:33:40 +09:00
055769254d
implement mlockall()/munlockall() for LTP syscall
2015-03-19 16:46:31 +09:00
786ae83380
add arch-dependent mman.h
2015-03-19 16:36:57 +09:00
8c662c83be
implement mincore(2) for LTP
2015-03-19 16:32:03 +09:00
4698bc40c2
implement System V shared memory for LTP syscalls
2015-03-19 16:21:18 +09:00
f5d935b703
support signalfd4 step1
2015-03-18 17:35:43 +09:00
d53865ac5f
change to check sequence of kill syscall, check sig num zero after uid checking
2015-03-18 12:59:05 +09:00
8934eb91a4
kill syscall check uid
2015-03-17 15:04:36 +09:00
b553de7435
supports PTRACE_GETREGSET, PTRACE_SETREGSET.
...
supports PTRACE_GETFPREGS, PTRACE_SETFPREGS.
refs #421
2015-03-06 19:18:32 +09:00
fa29c34995
expand the size of kstack 12 KiB
...
When a procfs file belonging to a process which was in PS_TRACED status
was accessed, calling kprintf() from process_procfs_request() caused
stack overrun, and x86_cpu_local_variables was destroyed.
2015-03-05 20:30:33 +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
ea5681232e
x86 Page Attribute Table (PAT) MSR support.
...
Reconfigure PAT to permit write-combining memory type to be assigned
on a page-by-page basis. Changes PWT and PCD bit combinations in page
table entries so that they correspond to the following format:
PAT
|PCD
||PWT
|||
000 WB Write Back (WB)
001 WC Write Combining (WC)
010 UC- Uncached (UC-)
011 UC Uncacheable (UC)
2015-03-05 16:03:20 +09:00
e6011be1af
create area for to save fp regs
...
refs #421
2015-03-05 12:18:46 +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
8db54c2637
make GPE on CPL0 cause panic
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
377341ce5f
change debug output in debug/int3 handler, for struct x86_user_context.
2015-03-03 14:06:30 +09:00
8caeba7cba
support PTRACE_GETSIGINFO and PTRACE_SETSIGINFO
...
refs #422
2015-03-03 09:54:57 +09:00
1d2f5d9893
set is_gpr_valid to initial user context
2015-02-27 14:47:43 +09:00
e4f47df3c3
initialize pstate, turbo mode and power/performace bias MSR registers
...
MSR_IA32_MISC_ENABLE, MSR_IA32_PERF_CTL and MSR_IA32_ENERGY_PERF_BIAS
are responsible for performance settings, this change enables McKernel
to perform on par with Linux when running the fwq benchmark.
2015-02-27 11:29:11 +09:00
4751055ee4
make ptrace(2) use lookup_user_context()
2015-02-26 17:43:10 +09:00
305ebfed0e
add lookup_user_context(). refs #420
2015-02-26 17:43:10 +09:00
b66b950129
add x86_sregs into x86_user_context
...
x86_sregs contains the registers which are included in user_regs_struct
but not included in x86_basic_regs.
2015-02-26 17:43:10 +09:00
4aa8ba2eef
sort x86_basic_regs into user_regs_struct's order
2015-02-26 17:43:10 +09:00
fab2c2aa97
wrap x86_regs with x86_user_context
...
and, rename x86_regs to x86_basic_regs.
2015-02-26 17:43:10 +09:00
e91d1e5b7b
stack of signal handler is not 16 byte align
...
refs #429
2015-02-24 17:20:52 +09:00