Commit Graph

1299 Commits

Author SHA1 Message Date
Michael Mueller
fb03597775 Updated symbol table to include new symbols for class Child. 2023-06-13 18:40:07 +02:00
Michael Mueller
c72849ee95 Provide children with information about what new resources have been allocated. 2023-06-13 18:39:23 +02:00
Michael Mueller
48543e93cc base: Added symbols for performance counter syscalls to ld script. 2023-03-27 17:13:36 +02:00
Michael Mueller
9dc7af6ba8 base: Preserve 1MB more of memory for core to accomodate for larger memory consumption by TOPO. 2023-03-27 17:09:41 +02:00
Michael Mueller
3f690a1e32 base: Increased RAM quota for TOPO session to accomodate for larger CPU counts. 2023-03-27 17:08:04 +02:00
Michael Mueller
d74754adb5 base: Use define MAX_SUPPORTED_CPUS for dimensioning affinity array. 2023-03-27 17:07:13 +02:00
Michael Mueller
b9e1da2ad1 base: High-level interface for hardware performance counters. 2023-03-27 17:00:58 +02:00
Michael Mueller
0f1002fab8 base: Set affinity of platform thread according to its location. 2023-03-27 16:57:48 +02:00
Michael Mueller
072a65623d base: Added more detailed error message on insufficient quota. 2023-03-27 16:55:57 +02:00
Michael Mueller
43df00ea55 base: Zero attached dataspace upon creation. 2023-03-27 16:54:37 +02:00
Michael Mueller
e0a9f13197 core: Clear dataspace on free() by default. 2022-12-08 11:15:37 +01:00
Michael Mueller
0fc7184eb9 base: Added missing symbols. 2022-11-29 12:34:43 +01:00
Michael Mueller
7144a96a00 core-nova: Removed debug messages. 2022-11-29 12:28:59 +01:00
Michael Mueller
195be5ff6e core: Export interface for explicit thread migration and pinning. 2022-11-29 12:21:02 +01:00
Michael Mueller
a894a008eb core: Allocate dataspaces with cache-alignment. 2022-11-29 12:18:50 +01:00
Michael Mueller
2115c5557f core: Allow pinning and migration of threads from userspace components. 2022-11-29 12:17:51 +01:00
Michael Mueller
f4e1b9faaa Updated makefiles and ABI symbols for base. 2022-10-20 17:04:52 +02:00
Michael Mueller
e4041147ff core: New heap allocator for NUMA-regional allocations. 2022-10-20 17:03:46 +02:00
Michael Mueller
0761449e9f core: Extended Ram_allocator by NUMA-specfic allocation and deallocation. 2022-10-20 17:01:48 +02:00
Michael Mueller
63d6827f16 core: Added interface to allocate memory from a given NUMA region. 2022-10-20 17:00:30 +02:00
Michael Mueller
953afdaff3 topo: Added RPC to query the NUMA information to a given NUMA node ID. 2022-10-20 16:58:45 +02:00
Michael Mueller
5866364d6b Merge branch 'master' into ealan to sync with upstream. 2022-10-14 16:56:15 +02:00
Michael Mueller
4673f0354e Removed redundant NUMA affinity attribute from class thread. The topology service provides this info now. 2022-10-13 16:08:19 +02:00
Michael Mueller
90b921b3cd Automatically create a topology session when a new component is created. 2022-10-13 16:00:18 +02:00
Michael Mueller
f2386c623e Fixed confused affinity spaces and locations. 2022-10-13 15:58:59 +02:00
Michael Mueller
e2e6153e7e Renamed Genode::Node to Topology::Numa_region to avoid name clash with VFS plugin. 2022-10-13 15:56:13 +02:00
Christian Helmuth
847266d027 depot: update recipe hashes 2022-10-12 14:31:50 +02:00
Norman Feske
a77ceb6871 base: remove Trace::Session::rule RPC function
This part of the trace-session interface was merely a placeholder.

Fixes #848
2022-10-12 12:09:35 +02:00
Stefan Kalkowski
9f9a5186e0 ps2_drv: use generic platform API
Ref genodelabs/genode#4578
2022-10-12 12:09:33 +02:00
Martin Stein
c23b74e150 base-hw: problems with timeout lib in src recipe
This commit fixes two issues with the timeout lib and the base-hw src recipe:

* Add source files of timeout lib to recipe content.
  The files weren't copied to the depot until now. However, the archive
  nonetheless built successfully because of the second issue that is described
  below.

* Get rid of the usage of the BASE_DIR variable in the timeout lib.
  The BASE_DIR variable always resolves to the repos/base directory even when
  building in a depot. That said, the use of BASE_DIR in make-files that are
  not part of the build system itself must be avoided. Instead, REP_DIR,
  REP_INC_DIR, and $(call select_from_repositories, ...) should be used.

Ref #4209
2022-10-12 11:59:08 +02:00
Norman Feske
da150dbb1c Xml_node: allow whitespace around '=' characters
Fixes #4167
2022-10-12 11:59:08 +02:00
Michael Mueller
c89715f905 Make Topology service part of a component's environment, just like CPU. 2022-10-11 18:00:47 +02:00
Michael Mueller
579b4833fb Introducing new topology service to query NUMA information from within a component. 2022-10-11 17:58:24 +02:00
Christian Helmuth
3f1870841c depot: update recipe hashes 2022-09-21 12:19:10 +02:00
Johannes Schlatow
f25070d441 irq_connection: add constructor with session label
When creating an Irq connection to a component (not core), e.g. a pin
driver, we typically need a to provide a session label in order to apply
a session policy and to distinguish multiple sessions from the same
component.

genodelabs/genode#4606
2022-09-21 12:19:10 +02:00
Norman Feske
3be0136901 base: add util/dictionary.h utility
The new 'Dictionary' provides an easy way to access objects using
strings as key. The 'String' received the 'operator >' to simplify the
organization of strings in an AVL tree.

The patch removes the former definition of the 'operator >' from the
platform driver because it would be ambigious now.

Fixes #4610
2022-09-19 14:00:35 +02:00
Johannes Schlatow
7d143087c9 xml_node: change with_sub_node signature
The `with_sub_node` method is renamed to `with_optional_sub_node` to
better reflect that the non-existence of a sub node with the desired type is
ignored.
At the same time, the new `with_sub_node` now takes a second functor that is
called when no sub node of the desired type exists.

genodelabs/genode#4600
2022-09-19 14:00:33 +02:00
Norman Feske
f1f0ee3a21 base: disregard ld.lib.so stub as build artifact
The ld.lib.so stub library generated by base/lib/mk/ld.mk has no
purpose at runtime. On the contrary, it must not be integrated into the
boot image because its name collides with the kernel-specific dynamic
linker.
2022-09-19 14:00:32 +02:00
Norman Feske
9aab61f5a7 mk: allow declaration of build artifacts for libs
The build system automatically announces the names of shared libraries
as build artifacts. However, in rare cases, it is required to manually
define them. In particular, the 'ld' stub library plays no role at runtime
and should not be integrated into the boot image.

This patch adds a customization hook following the same pattern as used
for target.mk files, namely the BUILD_ARTIFACTS variable. If defined,
its value is taken as the list of boot artifacts generated by the
library-description file.

Issue #4368
2022-09-19 14:00:32 +02:00
Norman Feske
c560285d88 build: support library builds via lib/<libname>
This patch adds special handling for lib/<libname> arguments to the
build system, which supersedes the former LIB=<libname> mechanism.
Whereas the old mechanism was limited to a single library, the new
convention allows multiple library arguments, similar to regular
targets. The change brings the two immediate benefits.

First, the streamlining of library and target arguments allows for the
building of libraries via the 'build' command of the run tool.

Second, it alleviates the need for pseudo target.mk files for building
shared libraries that have no direct dependencies, in particular VFS
plugins.

Since this change eases the explicit creation of shared libraries
from run scripts, we may reconsider the automatic implicit building
of shared libraries driven by targets. E.g., while developing a Qt
application, a run script could import the Qt libraries from the
depot and combine those with the developed (fresh built) target without
triggering the build of the Qt libraries in the build directory.

When issueing 'make' without arguments, all targets are built. This
patch applies this behavior to libraries as well, thereby removing the
need for the base/src/lib/target.mk pseudo target as used by the CI
tools to build all libraries.

Note that target.mk files located under src/lib/ are no longer
reachable. Therefore, all run scripts that used to trigger the
build of a shared library via a pseudo target must be adapted.
E.g., 'build lib/vfs/tap' must be replaced by 'build lib/vfs_tap'.

With this patch, the LIB=<libname> option is no longer supported.

Fixes #4599
2022-09-19 13:59:28 +02:00
Christian Helmuth
4dddc41b71 depot: update recipe hashes 2022-08-31 09:32:09 +02:00
Norman Feske
5319f36788 util/string.h: support 'int' for 'ascii_to'
This patch complements the 'long' version of the 'ascii_to' conversion
function by an 'int' version.

Fixes #4583
2022-08-17 14:28:12 +02:00
Christian Helmuth
44e2cd14a0 depot: update recipe hashes 2022-08-17 12:03:26 +02:00
Sebastian Sumpf
b5c780993c board: Rename virt_qemu to virt_qemu_<arch>
Instead of having a generic "virt_qemu" board use "virt_qemu_<arch>" in
order to have a clean distinction between boards. Current supported
boards are "virt_qemu_arm_v7a", "virt_qemu_arm_v8a", and
"virt_qemu_riscv".

issue #4034
2022-08-17 12:03:26 +02:00
Johannes Schlatow
cee0c9858c trace_buffer: add object() accessor
genodelabs/genode#4352
2022-08-17 12:03:07 +02:00
Johannes Schlatow
086f3efef2 trace: add trace_eth_packet event
genodelabs/genode#4352
2022-08-17 12:03:07 +02:00
Johannes Schlatow
80a422e590 trace: add GENODE_TRACE_CHECKPOINT macros
genodelabs/genode#4352
2022-08-17 11:54:19 +02:00
Johannes Schlatow
73dad70356 trace: add checkpoint event
genodelabs/genode#4352
2022-08-17 11:54:19 +02:00
Johannes Schlatow
735abca1b6 nic_router: avoid marginal timeout updates
The link dissolve timeout is updated for every packet, which leads to
trigger_once() RPCs that only marginally change the scheduled timeout but
significantly slow down the packet throughput.

genodelabs/genode#4555
2022-08-10 13:33:02 +02:00
Alexander Boettcher
c81b3d4757 base: add check whether stack belongs to ep
Add method to check whether a given pointer are part of the primary stack
of the rpc entrypoint.

Issue #4540
2022-08-10 13:33:01 +02:00