Stefan Lankes
3114df93d7
add hellof to the list of ignored files
2015-09-12 17:35:56 +02:00
Stefan Lankes
6e160628d9
add support of interrupt stack table and fix usage of the kernel stack
...
- some code cleanups
- NMI , Double Fault and Machine Check Exceptions get its own clean
stack in the interrupt stack table
2015-09-12 17:23:59 +02:00
Stefan Lankes
1be0bd79aa
remove typos
2015-09-12 17:13:42 +02:00
Stefan Lankes
ab32eb726b
increase default size of the user-level stack
2015-09-12 17:11:13 +02:00
Stefan Lankes
18c563028e
add support of omp_get_wtime
2015-09-12 17:10:09 +02:00
Stefan Lankes
3aa4abcba9
add Fortran demo
2015-09-12 17:08:49 +02:00
Stefan Lankes
8ad708cc9d
extend demo to print the environment and all program arguments
2015-09-12 17:03:45 +02:00
Stefan Lankes
6b7018b964
remove obsolete memory barrier
2015-09-12 17:03:08 +02:00
Stefan Lankes
855dd0ab31
use minor improvements in crt0
2015-09-12 17:01:31 +02:00
Stefan Lankes
64017c10e6
copy omp.h to the directory, which include the system headers
2015-09-12 16:57:42 +02:00
Stefan Lankes
f1bf053c23
sys_write has to return the number of written bytes
...
=> fix bug
2015-09-12 16:55:56 +02:00
Stefan Lankes
9063ced999
build the cross compiler gcc before we build g++ and gfortran
...
- a valid gcc is required before we build gfortran
2015-09-09 13:52:29 +02:00
Stefan Lankes
69fdfcec98
enable lto
2015-09-08 23:57:48 +02:00
Stefan Lankes
c897a867f0
align gomp_thread to a cache line to avoid false sharing
2015-09-08 09:02:45 +02:00
Stefan Lankes
472bc39ccb
store only the pointer to gomp_thread into the TLS
...
- avoid a bug in the handling of the fs register
2015-09-08 08:55:28 +02:00
Stefan Lankes
9d5783ee8b
remove some compiler warnings
2015-09-08 08:54:27 +02:00
Stefan Lankes
80559dfa2a
enable optimization of the demo applications
2015-09-08 08:52:00 +02:00
Stefan Lankes
7835c9e7da
add some TODO points
2015-09-08 08:50:25 +02:00
Stefan Lankes
034098048b
add initialization of tls_file_size and tls_mem_size
2015-09-08 08:48:52 +02:00
Stefan Lankes
6e136fe990
consider the elf header to initialize the TLS
...
- file_size describes the amount of data in the elf file to initialize
TLS
=> read file_size instead of mem_size from the elf file
2015-09-08 08:39:07 +02:00
Stefan Lankes
42dc81ee3f
enable alignment checking
2015-09-08 08:34:18 +02:00
Stefan Lankes
86df21b3f0
merge with gcc's current 5.2 branch
2015-09-06 21:59:51 +02:00
Stefan Lankes
7c180cb7b2
Merge branch 'master' of github.com:RWTH-OS/HermitCore
2015-09-06 10:48:22 +02:00
Stefan Lankes
ea8e9af586
enable TLS support in libgomp
2015-09-06 10:45:54 +02:00
Stefan Lankes
b4e5bfef75
start new threads in round-robin manner over all cores
...
we assume OpenMP applications
=> number of threads is (normaly) equal to the number of
cores
=> search next available core
2015-09-06 10:41:51 +02:00
Stefan Lankes
73ee21674b
be sure that AM, NE and MP is enabled
2015-09-02 22:36:46 +02:00
Stefan Lankes
2d3a67cb89
define operator< to be compatible to libstdc++
2015-09-02 15:44:52 +02:00
Stefan Lankes
5958eeff36
reset registers to kill any stale realmode selectors
2015-09-02 14:44:45 +02:00
Stefan Lankes
1f2e2ac657
rename temporary files
2015-08-31 12:00:24 +02:00
Stefan Lankes
2cd1580fce
move the qemu demo to the subdirectory hermit
2015-08-31 11:55:41 +02:00
Stefan Lankes
383aba6fbd
avoid the using of MSR because an MSR access is slow
2015-08-30 22:05:06 +02:00
Stefan Lankes
2d23863d13
some code cleanups
2015-08-28 23:26:33 +02:00
Stefan Lankes
bc277cb481
some code cleanups
2015-08-28 23:15:17 +02:00
Stefan Lankes
84deb1a261
switch back to rdtsc
...
- no all emulators supports rdtscp
2015-08-28 23:07:03 +02:00
Stefan Lankes
f520c0ca56
remove obsolte debug message
2015-08-28 22:51:18 +02:00
Stefan Lankes
5e3d7a81da
switch back to rdtsc
...
- no all emulators supports rdtscp
2015-08-28 22:45:38 +02:00
Stefan Lankes
a6e81226d2
specifiy the TLS model via compiler flag
2015-08-28 17:41:45 +02:00
Stefan Lankes
89fc8847c3
use static variables for the TLS
2015-08-28 17:38:58 +02:00
Stefan Lankes
1c09232784
protect tick counter by a lock
...
every core should determine the tick counter => lock is required to
protect the counter
2015-08-28 17:36:11 +02:00
Stefan Lankes
68bac65eef
set FS register to 0 if no TLS is needed
2015-08-28 17:34:33 +02:00
Stefan Lankes
b325b8de18
add some debug messages
2015-08-28 08:02:39 +02:00
Stefan Lankes
7b54dca40f
set task to invalid after freeing of all allocated data
2015-08-28 08:00:54 +02:00
Stefan Lankes
2a55eb781b
use kernel_stack and kernel_end to determine the size of the kernel
2015-08-28 07:59:02 +02:00
Stefan Lankes
a48e28f88f
set present bit in the PML4 entries
2015-08-28 07:56:56 +02:00
Stefan Lankes
987ea13265
create a seperate stack for interrupts
2015-08-28 07:55:49 +02:00
Stefan Lankes
6c707f6595
remove user-level permissions in the boot pdpt & pgd
...
=> new tasks don't copy the kernel entries
2015-08-28 07:53:02 +02:00
Stefan Lankes
5a7cb4e4e0
Using memor clobber for serialization
...
Volatile isn't enough to prevent the compiler from reordering the
read/write functions for the control registers and messing everything
up. => We use a memory clobber to serialize the code.
2015-08-28 07:40:44 +02:00
Stefan Lankes
64e0357ea0
use the new IPI number to trigger a TLB shootdown
2015-08-26 09:10:02 +02:00
Stefan Lankes
0e579d1aec
for the registeration of cpu, the apic id is required
...
=> use apic_cpu_id to determine id
2015-08-26 09:06:39 +02:00
Stefan Lankes
1aeda86d90
remove obsolte file
2015-08-26 00:19:18 +02:00