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

49 commits

Author SHA1 Message Date
Simon Pickartz
1a8e06a365 add interface providing the free list to the hypervisor (#101)
Add an interface for sharing the free list with the hypervisor. This can be used to accelerate the cold migration of guests.
2018-09-04 13:09:23 +02:00
Stefan Lankes
1173c1b7fd uses time stamp counter to calculate the uptime 2018-08-06 20:18:15 +02:00
Stefan Lankes
ce38ddd622 add support of huge pages
- the heap use huges pages to allocate memory
2018-08-01 23:59:42 +02:00
Stefan Lankes
748744cdf9
add basic gdb support for aarch64 (#94)
following kernel features are required:
- first page table (pl0) is located at a fix address
- unhandled page faults are forwarded to the hypervisor
2018-07-21 21:42:11 +02:00
Stefan Lankes
63bd7fa8b4 fix TLS initialization, disable the support of contiguous blocks
- fix TLS initialization on aarch64
- disable temporary the support of contiguous blocks on aarch64
- add possibility to dump a page table entries
- improve TLS test case
2018-06-29 10:28:10 +00:00
Stefan Lankes
f5fa1569d7 reserve larger heap, add gap for pci devices 2018-05-15 00:54:13 +02:00
Stefan Lankes
e26ec98b5a revise code to increase the readability 2018-04-28 15:28:15 +02:00
Stefan Lankes
94499b33b8 simplify spinlock code to improve the readability 2018-04-28 15:24:44 +02:00
Stefan Lankes
4d694dcc68 avoid race between checking workqueues and calling halt
between checking the workqueues and the calling halt instruction, a
process and the corresponding interrupt is able arrive and lost
2018-04-17 12:00:12 +02:00
Stefan Lankes
34e7895d0a
aarch64 support (#84)
- add initial support for aarch64
- SMP support is currently missing
- uhyve and kernel are tested on Libre AML-S905X-CC (https://libre.computer/products/boards/aml-s905x-cc/)
- only GICv2 support is integrated
2018-03-23 04:04:44 -04:00
Stefan Lankes
b3af314559 remove the dependencies on an array of boot stacks
- share one stack for all core during the boot process
- reduce the size of the BSS section
2017-11-26 12:48:00 +01:00
Stefan Lankes
8b170bb527 enable interrupts during busy waiting 2017-11-17 19:23:54 +01:00
Stefan Lankes
0e7de04c3d use algorithm with complexity of O(1) to wakeup a task 2017-10-18 22:24:32 +02:00
Stefan Lankes
5a0d66d1ee increasing the readability 2017-09-24 00:12:26 +02:00
Stefan Lankes
c6157e3ef7 use interrupts to notifiy incoming packets
=> avoid busy waiting in uhyve's network adapter
2017-09-18 00:23:09 +02:00
Stefan Lankes
34c6fb83ef add basic support of isxdigit 2017-09-03 10:48:22 +02:00
Stefan Lankes
abeae7ac0b remove obsolete global variable "kernel_stack" 2017-08-03 15:18:43 +02:00
Stefan Lankes
437f445ed8 fix typos, fix meaing of PAGE_CEIL and PAGE_FLOOR 2017-07-15 16:24:08 +02:00
Stefan Lankes
fea0f31018 avoid busy waiting if the cpu feature mwait is missing 2017-06-07 21:54:28 +02:00
Stefan Lankes
ef91ecccfe add original virtio header
- see http://ozlabs.org/~rusty/virtio-spec/virtio-0.9.5.pdf
2017-06-05 11:14:44 +02:00
Stefan Lankes
df5242a1a6 remove typo 2017-05-24 23:24:55 +02:00
Stefan Lankes
96d2f99aec use for all locks 64bit atomics 2017-05-24 22:25:03 +02:00
Stefan Lankes
2e9b9c62a5 remove padding in buddy_t, align TLS to 32 byte 2017-05-23 23:15:17 +02:00
Stefan Lankes
cf0a25968f check memory allocation without padding 2017-05-23 19:39:27 +02:00
Stefan Lankes
11b665d02d remove scheduling check within a irqsave lock 2017-05-23 19:12:45 +02:00
Stefan Lankes
8047f898e2 add check in spinlocks if another task is ready 2017-05-21 23:41:50 +02:00
Stefan Lankes
3e5b8e65d3 add padding to align allocate memory to a 32 Byte boundary
- required to align memory for AVX usage
2017-05-11 11:27:17 +02:00
Stefan Lankes
940be14a0e remove dependency from kernel_end
- this patch solves linker problems, if kernel_end located above 2GB
- in multi-kernel mode, it requires also a patch for Linux
2017-04-18 00:26:38 +02:00
Stefan Lankes
f26bbf90bf define MAX_FNAME in config.h.in 2017-04-11 20:33:25 +02:00
Daniel Krebs
cec426a078 cmake: add intermediate target hermit-bootstrap to build with bootstrap compiler 2017-04-11 16:21:46 +02:00
Daniel Krebs
30021d5291 cmake: initial support for CMake build system 2017-04-03 18:14:56 +02:00
Stefan Lankes
c3a4a6e2df enable a check if the HermitCore app depends on a proxy 2017-04-03 09:16:54 +02:00
Stefan Lankes
dbefde4927 remove obsolete pragma "undef" 2017-04-03 07:06:30 +02:00
Stefan Lankes
473cdb76d6 move architecture dependent functions to the subdirectory arch 2017-03-09 07:35:59 +01:00
Stefan Lankes
a65068e82e use _ before the function name for internal functions 2017-03-08 22:42:38 +01:00
Stefan Lankes
589867d293 rename functions to avoid collisions with newlib 2017-03-08 22:16:38 +01:00
Stefan Lankes
4a74e9306a rename basic functions (e.g. memset) to avoid collisions with newlib 2017-03-08 00:48:06 +01:00
Stefan Lankes
8f9430f3fe move architecture dependent part to a subdirectory of arch 2017-03-06 23:32:42 +01:00
Stefan Lankes
5236ff236e use #if instead of #ifdef to simplify the config file 2017-03-04 08:48:32 +01:00
Stefan Lankes
2f6090a8d4 move platform dependent functions to the arch directory 2017-03-04 00:32:51 +01:00
Stefan Lankes
5c648f22c1 add draft to integrate a hypervisor directly in the proxy
- this reduce the overhead because the boot time is smaller in
  comparsion to qemu
- furthermore, a more direct communication via VM_EXISTS is possible
- the current version doesn't support a network interface

The hypervisor based on KVM and is called uhyve. You could test the
hypervisor with following command:

HERMIT_ISLE=uhyve HERMIT_VERBOSE=1 tools/proxy usr/tests/hello
2017-01-16 18:47:13 +01:00
Stefan Lankes
84e0c3f7f6 move more marcos (CONFIG_VGA etc) to config.h 2016-12-03 00:44:32 +01:00
Stefan Lankes
0508470d4e add definition of KMSG_SIZE 2016-12-03 00:44:32 +01:00
Stefan Lankes
643987ed90 add missing file 2016-12-03 00:44:32 +01:00
Stefan Lankes
a289acf440 add auto creation of config.h 2016-12-03 00:44:32 +01:00
Stefan Lankes
cadacc24ae reserve at boot time a region for the heap
=> no race between stack und heap creation
2016-12-03 00:44:32 +01:00
Stefan Lankes
9d6375b8fb decrease starting point of the heap 2016-12-03 00:44:32 +01:00
Stefan Lankes
f4012a1f55 define start address of the heap in config.h 2016-12-03 00:44:32 +01:00
Stefan Lankes
dfd4272d59 reodering of the directory structure 2016-12-03 00:43:49 +01:00