Commit graph

164 commits

Author SHA1 Message Date
Stefan Lankes
c6339bfd2d by leaving the interrupt handler, we check if an urgent task is ready
if yes, the kernel switchs to this task
2011-09-06 06:46:52 -07:00
Stefan Lankes
470039bd17 remove wrong code to realize a fast lane for driver tasks 2011-09-01 21:31:44 +02:00
Stefan Lankes
38d26aecae Merge branch 'master' into demo 2011-08-28 23:59:12 -07:00
Stefan Lankes
81d384b1b0 minor changes in the code style 2011-08-28 08:54:18 -07:00
Stefan Lankes
291aeabb8a Fix huge bug! Idle task could handle its stack pointer wrong!
=> depending on the config file and the started apps, we got different failure
2011-08-28 08:42:39 -07:00
Stefan Lankes
4fe2562839 fine tuning by using the irq fast lane 2011-08-28 01:24:28 -07:00
Stefan Lankes
a748ac7257 Currently, only the SCC uses the fast lane for driver task 2011-08-27 23:18:29 -07:00
Stefan Lankes
c81c83e9ff Merge remote branch 'origin/mailbox_integration' into demo 2011-08-27 08:07:43 -07:00
Stefan Lankes
3abf062ea0 add fast lane for driver task with higher priority 2011-08-27 07:02:45 -07:00
Stefan Lankes
297421e29d remove compiler warnings 2011-08-26 03:10:40 -07:00
Generic account for RWTHAachen Students
0d4ff65bcb fix irq reset 2011-08-24 04:25:10 -07:00
Stefan Lankes
35621d72d1 first try to realize task stealing 2011-08-18 12:16:31 +02:00
Simon Pickartz
142e4892af resolve merge conflicts 2011-08-17 23:32:39 -07: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
Generic account for RWTHAachen Students
7bf0cf184c only check irq status reg if irq_no = 124 2011-08-15 09:56:46 -07:00
Simon Pickartz
6892fa021a testing remote interrupts 2011-08-13 17:14:01 -07:00
Simon Pickartz
67a85668fa testing remote interrupts 2011-08-11 09:02:49 -07:00
Generic account for RWTHAachen Students
6995bb29e3 gic irqs seem to work now 2011-08-10 22:44:16 -07:00
Generic account for RWTHAachen Students
4b03e27a37 testing global interrupt controller 2011-08-10 00:21:21 -07:00
Simon Pickartz
d7175a72a9 testing remote interrupts 2011-08-09 14:54:30 -07: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
Simon Pickartz
3275d8cc17 still testing remote interrupt 2011-08-01 14:24:46 -07: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
Simon Pickartz
f344f65769 mailbox-system thread-safe now 2011-07-23 12:27:08 -07: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
Simon Pickartz
6e14d56de8 mailbox does not support sendings to own mailbox 2011-07-18 01:14:18 -07: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