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

89 commits

Author SHA1 Message Date
Stefan Lankes
a3a8a9f5de add signal handler to terminate thread 2017-05-01 14:04:21 +02:00
Stefan Lankes
99af5378d9 determine time to load a checkpoint 2017-05-01 13:26:32 +02:00
Stefan Lankes
b8982a225a restore also the time stamp counter 2017-05-01 12:10:43 +02:00
Stefan Lankes
dd708d3917 add clock state to the checkpoint 2017-05-01 11:33:06 +02:00
Stefan Lankes
e1cf89fb45 reduce first checkpoint size, if we use KVM's dirty log mechanism
- before restoring a checkpoint, we load the elf binary
=> restores also read-only sections
2017-05-01 10:46:24 +02:00
Stefan Lankes
31f0df70be add support of KVM's dirty page logging 2017-05-01 10:09:34 +02:00
Stefan Lankes
e8d0f09722 add link to Solo5 2017-04-30 16:14:51 +02:00
Stefan Lankes
c673b67d68 use per-default the optimized checkpoint strategy 2017-04-30 15:18:23 +02:00
Stefan Lankes
69c4537c97 remove synchronization problem
- fix wrong initialization of the pthread barrier
- remove obsolete code
2017-04-30 14:13:54 +02:00
Stefan Lankes
433476d59e some code cleanups 2017-04-26 23:50:46 +02:00
Stefan Lankes
d9225271d5 add function print_registers, remove memory barriers 2017-04-24 21:41:55 +02:00
Stefan Lankes
1db47acc62 replace macro CHECKPOINT_VERBOSE by the variable verbose 2017-04-24 13:24:21 +02:00
Stefan Lankes
72c45ea859 remove compiler warnings 2017-04-24 13:04:53 +02:00
Stefan Lankes
5111d7c7e8 add memory barriers and an option to enable kernel-based deduplication 2017-04-24 11:26:35 +02:00
Stefan Lankes
cb5787256d add check if the macro KVM_CAP_X2APIC_API is defined 2017-04-24 00:12:02 +02:00
Stefan Lankes
6a0331ab26 add support memory size above 2GB, add debug messages 2017-04-23 23:59:30 +02:00
Stefan Lankes
f4d566c161 remove typo 2017-04-22 12:56:30 +02:00
Stefan Lankes
95128e71d7 add macro CHECKPOINT_VERBOSE to evaluate our checkpoint technique 2017-04-22 12:00:56 +02:00
Stefan Lankes
e3da1b6d53 restore alos the mp and clock state 2017-04-21 21:24:58 +02:00
Stefan Lankes
711fadeb70 remove typo, use C99 type "bool" 2017-04-21 19:47:08 +02:00
Stefan Lankes
9867f9ba61 enabl tsc deadline time if available 2017-04-21 13:44:05 +02:00
Stefan Lankes
1751802e1a remove typo in the for-loop 2017-04-20 23:57:38 +02:00
Stefan Lankes
fbd3a9ec89 restore also the state of the irq chip 2017-04-20 21:37:39 +02:00
Stefan Lankes
3c754de83a restore also MSR registers 2017-04-20 10:45:54 +02:00
Stefan Lankes
faca0d3f8d Merge branch 'devel' of github.com:RWTH-OS/HermitCore into devel 2017-04-18 00:29:12 +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
4851d8461a add proof of concept to create checkpoints
- HERMIT_CHECKPOINT=x defines the period x (in seconds) to create
  checkpoints
- by starting of an HermitCore application, uhyve checks
  if an checkpoint is avaiable in the subdirectory
  "checkpoint"
- uhyve starts the application from the latest checkpoint
2017-04-17 23:06:06 +02:00
Stefan Lankes
47f5261b94 remove compiler warnings 2017-04-03 23:54:46 +02:00
Stefan Lankes
016a206fbd remove static initialization of BSS section, will be triggerd on demand 2017-04-03 23:38:01 +02:00
daniel-k
5f949d4acc tools/uhyve: fix memory leak 2017-03-01 18:57:32 +01:00
daniel-k
728b465826 tools/uhyve: general refactoring 2017-03-01 18:57:27 +01:00
daniel-k
3942d62fe8 tools/uhyve: refactor syscalls definitions into new file 2017-03-01 18:48:45 +01:00
Stefan Lankes
9285e1f96f increasing the readability of uhyve 2017-02-26 08:51:54 +01:00
Stefan Lankes
b73c9f268f support loading of more than one elf segment 2017-02-25 18:51:50 +01:00
Stefan Lankes
421148b56c add SMP support in uhyve
- HERMIT_CPUS specifies the number of cores
- HERMIT_MEM specifies the memory size
2017-02-25 17:23:21 +01:00
Stefan Lankes
954343128e increasing the readability
- restructure the code and test it within a VM
2017-02-21 14:08:49 +01:00
daniel-k
d819930d7d uhyve: improve readability
While going through the code I took the freedom to move stuff around to
improve readability. Most notably I replaced ioctl with macro that checks
for success, avoiding the if(ret == -1) err(...) pattern most of the time.
2017-01-20 18:58:28 +01:00
Stefan Lankes
eabac9fa79 don't close standard file descriptors (<=2) 2017-01-20 10:46:07 +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