Stefan Lankes
297421e29d
remove compiler warnings
2011-08-26 03:10:40 -07:00
Stefan Lankes
35621d72d1
first try to realize task stealing
2011-08-18 12:16:31 +02:00
Stefan Lankes
4c9855c83a
redesign of the scheduler, defining of a runqueue per core
...
=> Currently, we work stealing isn't supported
2011-08-17 13:51:19 +02:00
Stefan Lankes
a179ded21b
redesign of the timers, support of timeouts in mailboxes and semaphores
2011-08-06 15:55:34 +02:00
Stefan Lankes
387ef0ea9b
cosmetic changes
2011-08-04 16:48:04 +02:00
Stefan Lankes
22441375bb
add blocking timers
...
only the idle tasks use the polling mode
2011-08-03 21:41:06 +02:00
Stefan Lankes
452aa3b1d1
cosmetic changes and add some scheduling statistics
2011-08-03 19:37:05 +02:00
Stefan Lankes
577300919c
fix bug in search_apic and uses function to find the MP Config Table
2011-08-03 07:37:57 +02:00
Stefan Lankes
f4dd038ee5
save and restore segment registers
...
=> this fixed a bug in the system call "fork"
2011-08-02 12:33:08 -07:00
Stefan Lankes
d91b0d49c2
minor bug fix
...
=> search the MP Config Table below 1MB
2011-08-02 18:29:20 +02:00
Stefan Lankes
d5bfc4f28c
avoid races on SMP systems
...
=> signalizes with a new flag, that a task switch is finished
2011-08-01 22:01:39 +02:00
Stefan Lankes
a26f88c940
cosmetic changes
2011-07-31 19:17:42 +02:00
Stefan Lankes
27ee238684
search MP table on all systems
2011-07-31 19:15:06 +02:00
Stefan Lankes
0410594ae8
fix bug in handling the timer interrupt
...
=> sending EOI before task switching
2011-07-30 22:47:27 +02:00
Stefan Lankes
5290cd0002
using of the correct data types
...
=> avoids some conflicts on other architectures
2011-07-30 22:46:08 +02:00
Stefan Lankes
fba32ec692
using of the correct data types
...
=> avoids some conflicts on other architectures
2011-07-30 17:34:30 +02:00
Stefan Lankes
30f84a4007
fix bug in irq handling
2011-07-30 17:28:09 +02:00
Stefan Lankes
ff2b9da103
do not longer search a MP table, if MAX_CORES is set to 1
2011-07-22 21:17:15 +02:00
Stefan Lankes
ab37b024b0
simply the scheduler => move code from entry.asm to timer.c
2011-07-21 09:59:29 +02:00
Stefan Lankes
e57a447fda
minor changes in using the per_core macro, add additional output messages by an exception & cosmetic changes
2011-07-20 09:47:46 +02:00
Stefan Lankes
a422926dda
cosmetic changes
2011-07-19 09:23:55 +02:00
Stefan Lankes
d05ffcacac
we use the same handler for exceptions and interrupts => interrupts has to push a virtual error code on the stack
2011-07-19 09:10:12 +02:00
Stefan Lankes
b1c5bf67c2
use a more robust method to find the MP table
2011-07-19 07:36:24 +02:00
Stefan Lankes
d203a070f4
add IPI support to flush the TLB on the other cores
2011-07-19 07:16:49 +02:00
Stefan Lankes
85768e6f58
fix bug in APIC code
...
=> before we enable the interrupts, we map the APIC registers
2011-07-18 15:51:26 +02:00
Stefan Lankes
da8b078184
align timer_ticks to a cache line
2011-07-18 09:32:52 +02:00
Stefan Lankes
e595fae384
add SMP support
...
- this is experimental version
- by setting MAX_CORES to 1, you are to disable the SMP support
2011-07-18 09:14:28 +02:00
Stefan Lankes
ba1cbc97c8
on a SMP system, only the boot processor increases the timer value
2011-07-18 09:10:23 +02:00
Stefan Lankes
35ec905b7e
move processor initialization code into the function cpu_init
2011-07-18 09:01:35 +02:00
Stefan Lankes
18ce8eff11
some code cleanups
2011-07-15 09:22:31 +02:00
Stefan Lankes
a61607d2e7
add additional error messages
2011-07-12 10:26:50 -07:00
Stefan Lankes
ff1bc7c470
remove typo
2011-07-11 23:42:25 -07:00
Stefan Lankes
5cd3d7557a
fine tuning to increase the performance of the mailbox example
2011-07-02 03:13:24 -07:00
Simon Pickartz
39b79506bf
Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into mailbox_integration
2011-06-22 19:51:21 +02:00
Simon Pickartz
f6fed124b6
use interrupts+anylength_call now
2011-06-09 04:23:17 -07:00
Stefan Lankes
9085bb67e4
fix typo
2011-06-09 08:29:06 +02:00
Stefan Lankes
393808e198
fix bug in the initializtion of the BSS section
...
- DO NOT LONGER USE the compiler flag "-fno-zero-initialized-in-bss"
2011-06-09 08:18:12 +02:00
Generic account for RWTHAachen Students
fbd30d8f5a
testing mail_check
2011-06-08 09:23:05 -07:00
Generic account for RWTHAachen Students
bba87c8e27
bug fix in mail_ping
2011-06-07 05:53:16 -07:00
Jacek Galowicz
7fdb044e9a
Encapsulated FPU restore instructions.
...
There is a new procedure restore_fpu_state() in
arch/x86/include/asm/tasks_types.
Will need this code in lguest, too.
2011-05-30 11:22:54 +02:00
Stefan Lankes
cdd16a2b9f
add the SSE support
...
=> context switch stores also the SSE registers
2011-05-28 23:35:46 +02:00
Jacek Galowicz
394befa3a8
Color management for procedures using vga_putchar
...
As seen in some BSD operating systems, you can now push and pop foreground and background colors onto a stack to change the colors you see on the screen whenever kprintf/kputchar is used.
This could become useful if one wants to see kernel space kprintfs in other colors than user space printfs or error messages in red and other debugging purposes.
Beware: This is just a small and dirty hack which protects the colorstack with locks and so on. But on task switching the color will not be switched. That makes different colors for different colors persistent for all the time difficult/impossible. But I considered adding colors to the task structures a bit overdone for a small debugging-help.
[Sorry for those commit-and-pull-back-mails. Forgot that I had this stuff on the master branch while pushing my own branch onto the server.]
2011-05-25 09:26:00 +02:00
Stefan Lankes
08f5153257
add the support of inter core interrupts
2011-05-17 08:13:20 -07:00
Stefan Lankes
ea4a7477c5
set CR0's MP flag to monitor the coprocessor
2011-04-21 19:46:55 +02:00
Stefan Lankes
a563c756ee
fix bug in the setup of the caching strategy
2011-04-21 09:33:49 -07:00
Stefan Lankes
f3b620a9be
add rudimental support of the system call times
...
- no full support of the POSIX API
- however, the libc function clock works correctly
2011-04-21 10:13:58 +02:00
Stefan Lankes
0c411fd702
add basic support of sbrk and fix bug in saving of the fpu context
2011-04-21 07:32:20 +02:00
Stefan Lankes
7cb05d8f4a
first version to support the FPU
...
- seems to work
- currently, we didn't support SIMD instructions
2011-04-21 07:32:10 +02:00
Jacek Galowicz
a9c4b5ddc0
Encapsulated IDT-/GDT-descriptor configuring code into helper functions.
2011-04-21 07:31:45 +02:00
Stefan Lankes
4fc507bc6b
fix bug in the TSS initialization for a new task, which is a copy of the current task
2011-04-18 12:18:59 -07:00