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
|
27e652f81d
|
if a task exists with a higher priority, we start a rescheduling in check_workqueues.
|
2011-09-02 13:57:11 -07:00 |
|
Stefan Lankes
|
e6fb99beb4
|
add inline assembler functions to determine the MSB and LSB
|
2011-09-01 13:31:41 -07:00 |
|
Stefan Lankes
|
426c06193b
|
remove bug in the timer queue
|
2011-08-28 23:56:29 -07:00 |
|
Stefan Lankes
|
81d384b1b0
|
minor changes in the code style
|
2011-08-28 08:54:18 -07:00 |
|
Stefan Lankes
|
4fe2562839
|
fine tuning by using the irq fast lane
|
2011-08-28 01:24:28 -07:00 |
|
Stefan Lankes
|
771db80f26
|
remove merge error => scheduler has to call "finish_task_switch"
|
2011-08-27 06:57:21 -07:00 |
|
Stefan Lankes
|
7e3c06f47b
|
if required, the waken task will remove from the timer queue
|
2011-08-26 21:55:16 +02:00 |
|
Stefan Lankes
|
1e1e77351a
|
first approach to determine the cpu load
|
2011-08-24 09:32:36 +02:00 |
|
Stefan Lankes
|
35621d72d1
|
first try to realize task stealing
|
2011-08-18 12:16:31 +02:00 |
|
Stefan Lankes
|
93257508ee
|
wakeup a blocked task on the core, which the task used during the last time slice
|
2011-08-17 15:09:59 +02:00 |
|
Stefan Lankes
|
296e8e98f4
|
the idle priority doesn't longer possess an own runqueue
only the idle task uses this priority class
|
2011-08-17 14:49:12 +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
|
20b074d81c
|
add additional error messages
|
2011-08-10 09:55:59 -07:00 |
|
Stefan Lankes
|
5d9f361174
|
add system calls to map the user-level socket library to LwIP sockets
|
2011-08-10 08:15:53 +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
|
452aa3b1d1
|
cosmetic changes and add some scheduling statistics
|
2011-08-03 19:37:05 +02:00 |
|
Stefan Lankes
|
22dab59699
|
minor changes in the scheduler routine to relalize a fair round-robin scheduling
|
2011-08-03 15:10:58 +02:00 |
|
Stefan Lankes
|
026d5e264c
|
use table_lock to avoid GPs during a task switch
|
2011-08-02 10:24:17 +02:00 |
|
Stefan Lankes
|
744abc36c8
|
minor optimization on single core systems
|
2011-08-02 07:07:16 +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
|
f76f4ac70d
|
fix wrong initialization of current_task
|
2011-07-30 17:36:21 +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
|
20c944b099
|
avoid a task migration during the calculation of the current task
=> temporary clearing the IF flag
|
2011-07-20 08:24:24 +02:00 |
|
Stefan Lankes
|
dfa928de78
|
reduce the number of function calls to determine the core id
|
2011-07-19 21:22:54 +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
|
08f5153257
|
add the support of inter core interrupts
|
2011-05-17 08:13:20 -07:00 |
|
Stefan Lankes
|
29ab43f289
|
First steps to realize Inter-Core-Communication via RCCE
|
2011-04-23 00:13:12 -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 |
|
Stefan Lankes
|
bd703f6be4
|
avoid compiler errors by using MAX_CORES = 1
|
2011-04-18 06:44:17 -07:00 |
|
Stefan Lankes
|
68564c3238
|
Merge branch 'tests'
Conflicts:
include/metalsvm/spinlock.h
include/metalsvm/spinlock_types.h
kernel/tasks.c
|
2011-04-18 15:36:22 +02:00 |
|
Stefan Lankes
|
e94c31d03b
|
add a new IRQ save spinlock implementation
- avoids a deadlock
- usable in a interrupt handler
|
2011-04-18 15:12:18 +02:00 |
|
Stefan Lankes
|
b5908af744
|
Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into doxygen
Conflicts:
.gitignore
arch/x86/include/asm/apic.h
arch/x86/include/asm/page.h
arch/x86/include/asm/processor.h
arch/x86/kernel/idt.c
|
2011-04-14 08:40:52 +02:00 |
|
Stefan Lankes
|
c43efee104
|
use HALT instead of NOP
|
2011-04-08 16:02:18 +02:00 |
|
Jacek Galowicz
|
6c6d77cfa6
|
Committed the rest. There is only few stuff missing.
Embedded nice pictures.
|
2011-04-05 14:44:42 +02:00 |
|
Stefan Lankes
|
604670c981
|
now, the system call "execve" sets also the environment
|
2011-03-10 09:10:12 +01:00 |
|
Stefan Lankes
|
2d9ba6ae70
|
forwarding arguments to the new tasks
|
2011-03-08 23:12:38 +01:00 |
|
Stefan Lankes
|
d201c4d1bc
|
- add the support of the system call execve
|
2011-03-07 20:26:55 +01:00 |
|
Stefan Lankes
|
6f092641ba
|
remove memory leak and redesign of the internal memory accounting
|
2011-03-04 22:44:53 +01:00 |
|
Stefan Lankes
|
56ee331596
|
add nested spinlocks
- required to avoid deadlocks
|
2011-03-04 11:38:40 +01:00 |
|
Stefan Lankes
|
a27150b923
|
Fix bug in system call "fork"
- issues: memory leak
|
2011-03-02 23:08:01 +01:00 |
|
Stefan Lankes
|
5ce3ed9338
|
First steps to support the system calls "fork" and "wait"
- Currently, the system call "fork" doesn't work and has a memory leak
- However, it is a good starting point for further developments.
|
2011-03-02 13:49:36 +01:00 |
|
Stefan Lankes
|
17193475bb
|
use a spinlock for each PGD
increases also the useability of vm_alloc and vm_free
|
2011-02-24 19:06:32 +01:00 |
|
Stefan Lankes
|
e157f93104
|
create also for kernel tasks a new PGD
|
2011-02-24 18:44:11 +01:00 |
|
Stefan Lankes
|
54d636d25c
|
after process termination, the PGD and its PGTs will be freed
|
2011-02-24 18:32:58 +01:00 |
|
Stefan Lankes
|
16efb49204
|
remove obsolete function arguments
|
2011-02-24 10:15:58 +01:00 |
|
Stefan Lankes
|
c5b650fc32
|
add the support of the VMA list into the kernel
- after process termination, this list is used to free the allocated memory regions
|
2011-02-24 09:37:31 +01:00 |
|