genode/repos/base/include
Norman Feske 3cc6df3116 base: tighten affinity handling
This patch improves the robustness of the CPU-affinity handling.

- The types in base/affinity.h received the accessors
  'Location::within(space)' and 'Affinity::valid', which alleviates
  the fiddling with coordinates when sanity checking the values,
  in init or core.

- The 'Affinity::Location::valid' method got removed because its
  meaning was too vague. For sanity checks of affinity configurations,
  the new 'within' method is approriate. In cases where only the x,y
  values are used for selecting a physical CPU (during thread creation),
  the validity check (width*height > 0) was not meaningful anyway.

- The 'Affinity::Location::from_xml' requires a 'Affinity::Space'
  as argument because a location always relates to the bounds of
  a specific space. This function now implements the selection of
  whole rows or columns, which has previously a feature of the
  sandbox library only.

- Whenever the sandbox library (init) encounters an invalid affinity
  configuration, it prints a warning message as a diagnostic aid.

- A new 'Affinity::unrestricted' function constructs an affinity that
  covers the whole affinity space. The named functions clarifies
  the meaning over the previous use of the default constructor.

- Core's CPU service denies session requests with an invalid
  affinity parameter. Previously, it would fall back to an
  unrestricted affinity.

Issue #4300
2021-12-17 15:06:38 +01:00
..
base base: tighten affinity handling 2021-12-17 15:06:38 +01:00
cpu base: extend cache maintainance functionality 2021-06-25 11:43:41 +02:00
cpu_session base: avoid implicit conversions 2021-12-17 15:04:44 +01:00
cpu_thread base: remove deprecated cancel_blocking() support 2020-07-13 11:33:12 +02:00
dataspace Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
deprecated base: remove Cancelable_lock 2020-07-30 08:49:23 +02:00
drivers base: avoid implicit conversions 2021-12-17 15:04:44 +01:00
io_mem_session Annotate io_mem session interface with RAM_QUOTA 2020-05-27 11:56:46 +02:00
io_port_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
irq_session Annotate irq session interface with RAM_QUOTA 2020-05-27 11:56:46 +02:00
log_session Remove return value of Log_session::write 2020-05-05 13:51:05 +02:00
parent base: mark Parent::Close_result with [[nodiscard]] 2020-01-03 14:44:15 +01:00
pd_session base: introduce Ram_allocator::try_alloc 2021-11-29 15:10:53 +01:00
region_map base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rm_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rom_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
root Replace Genode::strncpy by Genode::copy_cstring 2020-05-27 11:56:45 +02:00
session Streamline exception types 2017-05-31 13:16:07 +02:00
spec base: avoid implicit conversions 2021-12-17 15:04:44 +01:00
timer timeout: rework timeout framework 2020-10-09 13:35:56 +02:00
timer_session timer: restore semantics of periodic timeout 0 2021-04-20 12:03:03 +02:00
trace_session Remove obsolete Trace::Session::subject_info RPC 2021-12-17 15:04:49 +01:00
util base: avoid implicit conversions 2021-12-17 15:04:44 +01:00
vm_session base: refactor VM/vCPU API 2021-02-23 12:07:18 +01:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.