mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 18:56:29 +00:00
28004bc9e6
Ensure that the timer does not handle timeouts again within 1000 microseconds after the last handling of timeouts. This makes denial of service attacks harder. This commit does not limit the rate of timeout signals handled inside the timer but it causes the timer to do it less often. If a client continuously installs a very small timeout at the timer it still causes a signal to be submitted to the timer each time and some extra CPU time to be spent in the internal handling method. But only every 1000 microseconds this internal handling causes user timeouts to trigger. If we would want to limit also the call of the internal handling method to ensure that CPU time is spent beside the RPCs only every 1000 microseconds, things would get more complex. For instance, on NOVA Time_source::schedule_timeout(0) must be called each time a new timeout gets installed and becomes head of the scheduling queue. We cannot simply overwrite the already running timeout with the new one. Ref #2490 |
||
---|---|---|
.. | ||
etc | ||
include | ||
lib | ||
mk | ||
recipes | ||
run | ||
src | ||
README |
This is generic part of the Genode implementation. It consists of two parts: :_Core_: is the ultimate root of the Genode application tree and provides abstractions for the lowest-level hardware resources such as RAM, ROM, CPU, and generic device access. All generic parts of Core can be found here - for system-specific implementations refer to the appropriate 'base-<system>' directory. :_Base libraries and protocols_: that are used by each Genode component to interact with other components. This is the glue that holds everything together. _Core_ may export information about the hardware platform by an ROM called 'platform_info'. Depending on the platform, e.g. ARM or x86 or riscv, and depending on the boot mode and boot loader and kernel, some nodes may not be populated. !<platform_info> ! <acpi revision="2" rsdt="0x1fe93074" xsdt="0x1fe930e8"/> ! <boot> ! <framebuffer phys="0x7300000" width="1024" height="768" bpp="32"/> ! </boot> !</platform_info> If the ACPI RSDT and XSDT physical pointer is reported by the used kernel and/or bootloader, _Core_ may provide this information by the ROM. If the graphic device is initialised and can be directly used by a framebuffer driver, _Core_ may provide the physical pointer to the framebuffer, the resolution and color depth in bits.