genode/repos/base-nova
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
..
etc base: remove SPEC variables of boards (fix #3971) 2021-01-25 13:58:09 +01:00
include base: avoid implicit conversions 2021-12-17 15:04:44 +01:00
lib/mk base: lay groundwork for base-linux caps change 2020-02-27 14:46:58 +01:00
mk/spec Disambiguate kernel-specific file names 2016-12-23 16:51:32 +01:00
patches Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
ports nova: support transfer of IA32_TSC_AUX MSR for vCPUs 2021-11-29 15:10:52 +01:00
recipes depot: update recipe hashes 2021-11-30 12:08:54 +01:00
run base: rm first-class support for static binaries 2018-08-02 14:36:38 +02:00
src base: tighten affinity handling 2021-12-17 15:06:38 +01:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

This repository contains the port of Genode to the NOVA microhypervisor.

For more information on this base platform, please refer to the official
website.

:[http://hypervisor.org]: Official website for the NOVA microhypervisor.

For information on using Genode on NOVA, please revisit the documentation at
'base-nova/doc/nova.txt':