Commit Graph

13794 Commits

Author SHA1 Message Date
Stefan Kalkowski
f2d91fd56a hw: pager thread per cpu
Instatiate a separate pager thread for each cpu core. Every time a pager
object gets managed by the Pager_entrypoint, assign it to the pager thread
on the same cpu core.

Ref genodelabs/genode#5318
2025-01-15 14:53:54 +01:00
Stefan Kalkowski
a5664ba5c0 hw: use enums in stack base definition
Ref genodelabs/genode#5319
2025-01-15 14:53:35 +01:00
Stefan Kalkowski
7e4decfacc hw: sanitze cpu context
* Rename Kernel::Cpu_job to Kernel::Cpu_context (alias Kernel::Cpu::Context)
* State first Cpu affinity of Cpu::Context at construction time
* Move cpu affinity argument from kernel syscall create_thread to start_thread
* Ensure that Cpu pointer is always valid

Fix genodelabs/genode#5319
2025-01-15 14:52:40 +01:00
Stefan Kalkowski
d9ca56e1ed hw: add missing six-arguments syscall for riscv
Ref genodelabs/genode#5319
2025-01-15 14:52:34 +01:00
Stefan Kalkowski
7010dbbbbb hw: generalize IPC-helping to a common mechanism
* Removes helping from Ipc_node and Thread class
* Implement helping as mechanism of Scheduler::Context

Ref genodelabs/genode#5318
2025-01-15 14:52:25 +01:00
Stefan Kalkowski
b7d3d8237b hw: ensure board_name is set as depot build
When no BOARD variable is set via the build environment,
the board_name in the platform_info ROM needs to be set either.

Ref genodelabs/genode#5360
Fix genodelabs/genode#5414
2025-01-15 14:47:07 +01:00
Norman Feske
f4c255955f fixup "base: remove base/internal/unmanaged_singleton.h" (armv6) 2025-01-15 14:32:40 +01:00
Alexander Boettcher
13abc33ec9 platform: be robust on IRQ creation failure
In case invalid IRQ numbers are used (255 on x86), the IRQ session creation
request may be denied and the platform driver is killed because of the
uncatched exception, which must be avoided.

Issue #5406
2025-01-15 12:24:45 +01:00
Alexander Boettcher
2e3e57f50a foc: increase max count for RPC caps in core
to boot Sculpt

Issue #5406
2025-01-15 08:58:10 +01:00
Alexander Boettcher
b451f4c45c foc: add support to add ACPI rsdp in platform info
which is required for UEFI boots.

Issue #5406
2025-01-15 08:58:10 +01:00
Alexander Boettcher
5e2ba4d859 acpi: be robuster on IO_MEM session denied
Issue #5406
2025-01-15 08:58:10 +01:00
Alexander Boettcher
896e652b4c platform/pc: be robust on IOMMU claiming
Issue #5406
2025-01-15 08:58:10 +01:00
Alexander Boettcher
0d641600a4 base: use Dataspace_attr in io_mem _map_local(...)
Issue #5406
2025-01-15 08:58:10 +01:00
Alexander Boettcher
42c78b946b nova: add x2apic support
Fixes #5413
2025-01-15 08:46:51 +01:00
Johannes Schlatow
2743e625f6 base-nova: allow access to IOAPIC
This allows the platform driver to control remapping of legacy
interrupts.

genodelabs/genode#5066
2025-01-15 08:41:05 +01:00
Johannes Schlatow
0ebf11f143 platform/pc: re-use init code during resume
genodelabs/genode#5066
2025-01-15 08:37:17 +01:00
Johannes Schlatow
d25a9a0e21 platform/pc: remove Env from generate() methods
This was a relic from a time where we dumped the page tables from NOVA
and therefore needed to attach the corresponding dataspaces.

genodelabs/genode#5066
2025-01-15 08:37:08 +01:00
Johannes Schlatow
e3cc8274ba platform/pc: implement IRQ remapping for Intel
genodelabs/genode#5066
2025-01-15 08:36:48 +01:00
Johannes Schlatow
c1eafc39ab platform/pc: use queued invalidation interface
genodelabs/genode#5066
2025-01-15 08:36:42 +01:00
Johannes Schlatow
a392b93187 platform/pc: move register-based invalidation
This is in preparation of implementing the queued-invalidation
interface.

genodelabs/genode#5066
2025-01-15 08:36:33 +01:00
Johannes Schlatow
de7e11c122 platform/pc: implement IOAPIC
genodelabs/genode#5066
2025-01-15 08:36:12 +01:00
Johannes Schlatow
54b036d61c platform: add IRQ remapping support
genodelabs/genode#5066
2025-01-15 08:36:03 +01:00
Johannes Schlatow
a392e258cd pci_decode: report IOAPIC devices
genodelabs/genode#5066
2025-01-15 08:35:47 +01:00
Johannes Schlatow
54153be983 acpi_drv: report IOAPIC devices
genodelabs/genode#5066
2025-01-15 08:35:15 +01:00
Johannes Schlatow
811e51a24e acpi_drv: reflect DMAR properties in report
genodelabs/genode#5066
2025-01-15 08:35:13 +01:00
Christian Prochaska
64e0c5413f qt6: add 'i18n' example
Fixes #5421
2025-01-15 08:29:48 +01:00
Norman Feske
1d315bc355 sculpt_manager: use Callable
Issue #5420
2025-01-14 17:59:44 +01:00
Norman Feske
cc7501cee7 base: add util/callable.h
Fixes #5420
2025-01-14 17:39:26 +01:00
Christian Prochaska
311c7a8cd0 qt6: add 'SvgWidgets' files
Fixes #5419
2025-01-14 16:54:12 +01:00
Norman Feske
891cc5bf5f base: remove base/internal/unmanaged_singleton.h
Fixes #5418
2025-01-14 15:21:34 +01:00
Norman Feske
19163e44b4 test-libc_fifo_pipe: adjust cap_quota
The proper accounting of caps consumed for allocation of UTCBs on
base-hw slightly increases the costs per thread.

Issue #5408
2025-01-14 14:46:39 +01:00
Norman Feske
94ece697e1 fixup "core: don't rely on Core_env in platform.cc" (base-hw: account caps for utcb) 2025-01-14 14:39:48 +01:00
Benjamin Lamowski
40b00e2bcd fixup: hw: x86_64: refactor Vm_session_component
Remove unused vCPU priority support.

Issue #5221
2025-01-14 13:37:04 +01:00
Norman Feske
bd79ee0805 fixup "hw: factor out Vmid_allocator" (fixes build for imx53_qsb_tz) 2025-01-14 11:47:40 +01:00
Benjamin Lamowski
cea5a16abb fixup: hw: x86_64: refactor Vm_session_component
Use Constrained_ram_allocator for physical memory.

Issue #5221
2025-01-14 11:39:26 +01:00
Norman Feske
142ddd4d3b libc: remove use of unmanaged_singleton
Issue #5418
2025-01-13 20:58:05 +01:00
Norman Feske
5a2b6ee101 libc: host fd alloc as part of Libc::Kernel
This avoids the need to construct the fd_alloc out of thin air using
unmanaged_singleton.

Issue #5418
2025-01-13 19:56:14 +01:00
Benjamin Lamowski
9950fecf49 hw: x86_64: refactor Vm_session_component
On x86, the `Vm_session_component` obscured the differences between SVM
and VMX.

Separate the implementations, factor out common functionality and
address a number of long-standing issues in the process:

- Allocate nested page tables from Core_ram_allocator as a more suitable
  abstraction and account for the required memory, subtract the
  necessary amount of RAM from the session's `Ram_quota` *before*
  constructing the session object, to make sure that the memory
  allocated from the `Core_ram_allocator` is available from the VMM's
  RAM quota.
- Move the allocation of Vcpu_state and Vcpu_data into the Core::Vcpu
  class and use the Core RAM Allocator to allocate memory with a known
  physical address.
- Remove the fixed number of virtual CPUs and the associated reservation
  of memory by using a Registry for a flexible amount of vCPUs.

Issue #5221
2025-01-07 17:44:30 +01:00
Benjamin Lamowski
65e78497cb hw: factor out Vmid_allocator
Move the static `Vmid_allocator` in each `Vm_session_component` into a
common header file.

Issue #5221
2025-01-07 17:04:09 +01:00
Norman Feske
9f6a6b33db os/session_policy.h: avoid use of Xml_node assign
Issue #5411
2025-01-07 11:29:45 +01:00
Norman Feske
d3f5015c3a xml_node.h: construct from Const_byte_range_ptr
This patch allows for the construction of 'Xml_node' objects from a
'Const_byte_range_ptr' argument as a safer alternative to the pair
of addr, max_len arguments.

Issue #5411
2025-01-07 11:27:24 +01:00
Norman Feske
3f8d9e5953 ldso: avoid use of Xml_node assign operator
Issue #5411
2025-01-07 11:10:45 +01:00
Christian Helmuth
2d8efcec1e tool/port/metadata: fix usage output
Variable ECHO is not set as common.inc is not included.
2025-01-07 08:23:04 +01:00
Josef Söntgen
4a2aa95099 symbols/libc: add open_memstream function 2025-01-06 16:33:02 +01:00
Norman Feske
a3c05bd793 base/thread.h: guard deref of '_logger()'
The pointer returned by '_logger()' can be a nullptr, in particular
while tracing is (temporarily) inhibited. This patch ensures that
the 'Thread::trace' accessors never operate on a nullptr.

Fixes #5410
2025-01-06 15:16:44 +01:00
Norman Feske
7fce3b0767 util/construct_at.h: ensure legit sizeof(Placeable)
If the memory for the designated object is allocated as char[sizeof(T)],
the size of 'Placeable' is expected to equal the size of T. However, in
principle, the compiler has the freedom to inflate the 'Placeable'
object. The static assertion gives us the assurance that the compiler
does not violate our assumption.
2025-01-06 14:22:43 +01:00
Norman Feske
03f18e1dfe fixup "core: don't rely on Core_env in platform.cc" (okl4) 2025-01-06 14:03:47 +01:00
Norman Feske
68f3e54738 fixup "gems: ABI and depot recipe for dialog API" (file_vault_gui, test/dialog) 2025-01-06 11:44:05 +01:00
Norman Feske
b84d6b95ae gems: ABI and depot recipe for dialog API
This exposes makes the dialog API usable for users of Goa. It turns the
former static dialog library to a shared object and accompanied symbols
file, and adds depot recipes for the library and API.

Issue #5409
2025-01-03 15:14:00 +01:00
Norman Feske
3531bfc4c7 fixup "base: split Pd_account from Pd_session" (test/rm_fault, test/resource_yield, cpu_balancer build, sequence, test/fault_detection, launchpad) 2024-12-19 11:40:00 +01:00