Michael Mueller
504bc57806
Merge branch 'ealan' into genode-24
2025-01-21 18:31:08 +01:00
Michael Müller
5551f96c2d
Merge branch 'genodelabs:master' into master
2024-11-18 12:17:16 +01:00
Alexander Boettcher
ff506b0375
vm/x86: support extended fpu state transfer
...
Extend Genode's vCPU FPU state and adjust all users to copy
at most FPU data they actually support.
Issue #5314
2024-10-07 15:54:59 +02:00
Michael Mueller
e69d5847f2
Reduced time quantum for NOVA.
2024-09-15 19:44:43 +02:00
Michael Mueller
0d9f359ec9
Increased number of caps available to core.
2024-09-15 19:40:48 +02:00
Michael Mueller
220d159b7c
Updaded to version 24.08.
2024-09-14 23:35:10 +02:00
Alexander Boettcher
2e92b7ae32
nova: enable FPU AVX support
...
Add extended FPU state detection and handling (via xsave and friends) to the
kernel, which has to store/load more FPU state (~512 -> 2k++) during context
switching of threads. Additional the referenced nova branch contains various
optimization during VM destruction and cross core IPC resource caching.
This FPU work is based upon upstream NOVA kernel and Hedron commits.
Issue #5314
Fixes #3914
2024-08-27 15:29:37 +02:00
Alexander Boettcher
99667de35b
nova: limit assertions during early boot
...
Turn some of the current assertions into warnings/error messages and
continue boot. Print the messages as soon as core_log is initialized,
so that on live/release systems (Sculpt OS) it may be inspected later on.
Related to issue #5307
2024-08-27 15:26:51 +02:00
Alexander Boettcher
eaadc6aad6
nova: support to run on e-core only SOCs
...
The code to group together SMT threads of one CPU and to move P-Core to
the beginning of Genode's affinity-space, did not consider to run on
SOCs with only E-Core CPUs.
Re-structure the code to support e-Core only SOCs.
Additionally, provide a fallback mapping in case of CPU id reordering problems.
Track faulty re-mapping and delay the reporting until core_log is initialized,
so that the warnings is visible to consumers, e.g. on Sculpt OS.
Related to discussion of #5304
Fixes #5307
2024-08-27 15:26:51 +02:00
Norman Feske
19c13877ca
Replace use of 'typedef' by 'using'
...
Issue #5227
2024-07-02 12:00:11 +02:00
Norman Feske
a2b0553c51
base-*: use C++20 function template syntax
...
Issue #5227
2024-07-02 12:00:11 +02:00
Michael Mueller
13c22bc404
base-nova: Added new hypercalls for reserving a specific CPU, creating a habitat and querying the physical CPU ID.
2024-03-11 14:34:59 +01:00
Michael Mueller
90fd2368d0
base-nova: Changed mapping of cores so that for each cores x and y, it is guaranteed that if x is greater than y, the NUMA ID of x is always greater than or equal to that of y.
2024-01-30 18:04:29 +01:00
Michael Mueller
5ddeb09107
base-nova: Changed hypercall interface for cell management to reflect the change of API in the hypervisor.
2024-01-30 17:58:42 +01:00
Michael Mueller
fe4c8e1dfe
NOVA: Added new hypercalls for Cell management.
2024-01-18 18:49:49 +01:00
Michael Mueller
3c133b459e
NOVA: Added new hypercalls for cell management and CPU core allocation.
2023-12-15 14:35:04 +01:00
Alexander Boettcher
e36170c997
nova: add guarded access to MSRs
...
via Genode Pd::system_control interface
Issue #5009
2023-10-25 08:58:52 +02:00
Benjamin Lamowski
85012d5edd
base-nova: port to new VMM library API
...
Ref #4968
2023-10-04 13:22:04 +02:00
Alexander Boettcher
5c27993884
nova: transfer guest fpu state via utcb
...
instead via the hardware registers of the FPU. On Genode all components and
so VMMs are built such, that the compiler may generate optimized code by
using the FPU at any time. We had to make sure to save the
FPU state as early as possible before the VMM component touches the FPU,
to avoid corrupting & losing guest FPU state. This caused headache again
and again. To avoid the uncertainty, we remove this feature and explicitly
transfer the FPU state via the UTCB.
2023-09-29 12:21:04 +02:00
Norman Feske
256a989550
base-nova: update include guard
2023-05-30 12:13:33 +02:00
Michael Mueller
e5c8167992
base-nova: Added hypercalls to access hardware performance monitoring counters.
2023-03-27 17:00:18 +02:00
Alexander Boettcher
377f2166a1
nova: support detection of Intel P & E CPUs
...
Fixes #4694
2023-01-24 12:07:27 +01:00
Michael Mueller
84a5e1ac0a
NOVA: Added syscall to read and write MSRs. This enables core to use performance counters.
2022-12-08 11:18:30 +01:00
Michael Mueller
c2c66bbcb5
core-nova: Use shorter time quantum.
2022-11-29 12:16:53 +01:00
Alexander Boettcher
03470e7bab
nova: use kernel with suspend/resume support
...
Issue #4669
2022-11-18 14:45:27 +01:00
Sebastian Sumpf
b66987e1ce
base-nova: export iommu feature from HIP to platform_info
...
issue #4665
2022-11-17 08:00:37 +01:00
Michael Mueller
f3301f0049
nova: Fixed garbled CPU-NUMA mapping.
2022-10-17 18:52:09 +02:00
Michael Mueller
5866364d6b
Merge branch 'master' into ealan to sync with upstream.
2022-10-14 16:56:15 +02:00
Michael Mueller
f38762f9f0
Merge branch 'master' of github.com:mmueller41/genode
2022-10-14 14:31:37 +02:00
Michael Mueller
fa7e2a0e5d
Fixed remapping skipping every second virtual CPU ID.
2022-10-13 16:01:51 +02:00
Michael Mueller
bdb1b222cd
Store NUMA node for memory descriptors in HIP.
2022-10-06 16:08:00 +02:00
Christian Helmuth
ab9a2107e4
nova: support interrupt mode config in assign_gsi
...
Fixes #4553
2022-08-10 13:32:59 +02:00
Alexander Boettcher
858505918a
nova: support EC time in trace subject info
...
The vanilla NOVA kernel solely supports tracking and exporting of execution
times per SC kernel object, but not per thread (EC object). The commit extends
to track execution times per EC in the NOVA kernel, exporting it to Genode's
'core' roottask and populating Genode's Trace::Subject_info structure.
Fixes #4481
2022-05-25 12:19:32 +02:00
Norman Feske
03047009b1
base: avoid implicit conversions
...
This patch is a prerequisite for compiling the code with
the warnings -Wconversion enabled.
Issue #23
2021-12-17 15:04:44 +01:00
Alexander Boettcher
533015b93e
nova: support transfer of IA32_TSC_AUX MSR for vCPUs
...
The 32-bit MSR is returned by rdtscp in ecx register and used to detect
the CPU ID the timestamp was taken on.
Issue #4314
2021-11-29 15:10:52 +01:00
Alexander Boettcher
b6bdd91cfa
nova: avoid unaligned warnings by gcc10
...
Issue #4126
2021-05-10 11:17:20 +02:00
Christian Helmuth
219809ffed
base: refactor VM/vCPU API
...
Issue #3554
2021-02-23 12:07:18 +01:00
Christian Helmuth
6cfaac182a
Remove Cpu_session::Native_cpu definition from API
...
This type can be a forward declaration in the public API because its
definition is required only in kernel-specific code.
Related to #3979
2021-01-25 13:58:09 +01:00
Norman Feske
f57519397b
Remove Pd_session::Native_pd definition from API
...
This type can be a forward declaration in the public API because its
definition is required only in kernel-specific code.
Fixes #3979
2021-01-25 12:51:54 +01:00
Alexander Boettcher
c5de2acf57
vm_session(x86): support cstar register
...
Fixes #3964
2020-12-09 14:02:12 +01:00
Alexander Boettcher
99fa203673
nova: add migration support for global threads
...
Fixes #3842
2020-10-09 13:33:36 +02:00
Alexander Boettcher
b7ffeb51aa
cpu_sampler: avoid spinning on unavailable state
...
Fixes #3826
2020-08-25 11:42:37 +02:00
Alexander Boettcher
73e671893b
nova: remove obsolete local vcpu case
...
Seoul was the last user of Vcpu_same_pd
2020-07-30 08:49:23 +02:00
Alexander Boettcher
eab09a2f7c
nova: avoid Blocking_canceled exception in timer
...
Issue #3819
2020-07-20 15:59:47 +02:00
Alexander Boettcher
f3efbe50bb
base: remove deprecated cancel_blocking() support
...
for threads.
Fixes #3806
2020-07-13 11:33:12 +02:00
Alexander Boettcher
e87d60ddf7
core: use Mutex/Blockade
...
Issue #3612
2020-04-17 12:40:12 +02:00
Alexander Boettcher
2064ffd64b
nova: support multidimensional affinity space
...
Fixes #3635
2020-03-26 11:38:59 +01:00
Martin Stein
ead385dd17
base-nova: EFI sys-table pointer in platform info
...
Ref #3430
2019-08-13 12:02:03 +02:00
Christian Prochaska
940ba9ba95
base-nova: fix compile errors with GCC 8.3.0
...
Fixes #3325
2019-05-16 13:11:02 +02:00
Norman Feske
b3727a9b46
Add missing override annotations
...
Issue #3159
2019-02-19 11:12:11 +01:00