Commit Graph

66 Commits

Author SHA1 Message Date
f7b5b48266 support x2apic 2016-01-06 13:53:02 +09:00
0eaa27291a thread: move clear_child_tid, etc. to main structure 2015-10-29 11:01:27 +09:00
343bfbd30a rename back status field 2015-10-22 20:26:50 +09:00
04e193de13 refactoring process structures 2015-10-13 23:04:08 +09:00
79266f6b97 x86_issue_ipi: keep interrupt disabled while issuing IPI 2015-09-29 19:10:01 +09:00
a666b69c2c make x86_issue_ipi() call wait_icr_idle() 2015-09-29 19:10:01 +09:00
47e8552eba move wait_icr_idle() before x86_issue_ipi() 2015-09-29 19:10:00 +09:00
f08e0c0054 guess whether MSR_PLATFORM_INFO exists or not 2015-09-29 19:10:00 +09:00
40b8587a8a schedule(): sync CPU_FLAG_NEED_RESCHED flag with clone and migrate 2015-09-16 19:22:40 +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
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
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
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
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
9271d5346d add ACSL annotation to cpu.c 2015-03-25 15:54:08 +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
8db54c2637 make GPE on CPL0 cause panic 2015-03-04 11:29:16 +09:00
377341ce5f change debug output in debug/int3 handler, for struct x86_user_context. 2015-03-03 14:06:30 +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
305ebfed0e add lookup_user_context(). refs #420 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
0e98e87b95 change type of kprintf_lock() to "unsigned long"
to match type of ihk_mc_spinlock_lock().
2015-02-18 20:49:46 +09:00
3b04043f2a change to throw signal SIGILL to SIGSEGV when GPE 2015-02-18 14:54:49 +09:00
8cdf70c500 Enable AVX extensions for processors that support it. 2015-02-12 17:51:50 -08:00
bd5f43b119 support PTRACE_SINGLESTEP.
support debug/int3 exception.
2015-01-29 15:48:05 +09:00
e25d35a191 ihk_mc_init_ap(): cosmetics for reporting IKC, trampoline info 2014-12-25 11:05:52 +09:00
b388f59ebd ihk_ikc_irq and ihk_ikc_irq_apicid 2014-12-25 11:03:01 +09:00
ff47261337 receive trampoline addr via parameter of arch_start() 2014-12-25 11:03:00 +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
658b88fd7b Modify spacing 2014-10-15 14:40:47 +09:00
dbecaa2fc8 Add ptrace functions of job-control and signal
Note that a forked process automatically becomes ptraced state in this
commit.
2014-10-15 14:28:55 +09:00
ab89de0de6 show the interrupt context in lower case
This commit is intended to make it easier to find the corresponding line
in the objdump output.
2014-10-14 14:16:46 +09:00
759fd2e078 show all GPRs saved in interrupt context
This commit adds:
- rbp, r12 .. r15
- rflags
- error code
2014-10-14 14:16:46 +09:00
39f36120c1 support sigqueue 2014-09-23 23:17:53 +09:00
101a0f6e4a remote TLB invalidation code for multi-threaded applications (e.g., during munmap()) 2014-07-22 12:24:07 +09:00
3751fa1766 add some functions related to migration into kernel/process.h
... and also add include guard to arch/x86/kernel/include/signal.h
2014-07-13 17:05:09 +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
a9bebf1e14 Make idle loop not miss a chance to schedule
Prevents the case where McKernel misses one chance to schedule a
task when an interrupt occurs just after enabling interrupt and
just before executing "halt" in the idle loop (in kernel/process.c).

refs #45
2014-06-12 11:22:02 +09:00
56f0d3b29f support IA-32e's "execute disable bit" 2014-04-11 14:59:47 +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