1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-09 00:00:03 +01:00
Commit graph

1303 commits

Author SHA1 Message Date
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
Stefan Lankes
4805e62467 use generic numbers for the IPIs (shutdown, TLB shootdown) 2015-08-20 14:15:52 +02:00
Stefan Lankes
a04bde011f add the support to shutdown HermitCore 2015-08-20 13:03:54 +02:00
Stefan Lankes
5d2d317e34 add one byte to the buffer of the kernel messages
- guarantees that at least one byte contains the end of string character
2015-08-19 23:17:58 +02:00
Stefan Lankes
fc790b44ca add the possibility to map more than 2 MB byte into the boot page table
- this feature is required for larger images
- however, the image should be smaller than 1020 MB (=510*2 MB)
2015-08-19 23:13:57 +02:00