Commit graph

144 commits

Author SHA1 Message Date
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