genode/repos/os
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
..
doc Remove <configfile> feature from init 2020-05-18 10:16:13 +02:00
include os: Refactor VirtIO::Queue implementation. 2021-12-17 15:04:48 +01:00
lib os: avoid implicit conversions 2021-12-17 15:04:45 +01:00
recipes recipes: don't declare implemented API in used_apis 2021-12-17 15:06:38 +01:00
run autopilot: automated stress test for platform_drv 2021-12-17 14:56:53 +01:00
src base: tighten affinity handling 2021-12-17 15:06:38 +01:00
xsd nic drivers: provide optional Uplink-client mode 2021-01-25 13:58:09 +01:00
README API documentation refinements 2017-05-31 13:16:21 +02:00

This source-code repository contains genuine low-level OS components and
interfaces of Genode. It solely depends on the framework's base API.