genode/repos/dde_ipxe
Alexander Boettcher 5e5fe7291a nic/ipxe: add throttle RX interrupt support
The commit adds support to throttle the rate of the RX IRQs to a specified
value. The effect is, that no RX IRQs below the time threshold will fire and
therefore the CPU load gets reduced on the host. Trade-off gaming between
cpu load, throughput, overload.

Modular Sculpt 23.10 on S938 as testcase. In brackets the CPU affinity is
denoted.

ipxe (0,0) -> nic_router (1,0) -> Debian VM vbox6 (3,0) and (3,1)

VM: iperf -C X.X.X.X -t 60 -R

iperf server X.X.X.X is outside Sculpt and sends data due to '-R' to VM

Non representative measure points:

cpu load   - ipxe  - nic_router - iperf throughput
--------------------------------------------------
w/o  patch -  ~80% -       ~50% - ~706 MBit/s - 0    -> throttling off by default on S938
patch 651  -  ~20% -       ~35% - ~763 MBit/s - 651  -> 0.166ms throttle RX IRQ
patch 5580 -  ~15% -       ~25% - ~650 MBit/s - 5580 -> 1.4ms   throttle RX IRQ

Issue #5149
2024-04-12 15:00:44 +02:00
..
include/dde_ipxe nic/ipxe: batch TX requests 2024-04-12 15:00:43 +02:00
lib/mk dde_ipxe: fix build error with gcc 10 2021-05-05 11:35:30 +02:00
patches nic/ipxe: add throttle RX interrupt support 2024-04-12 15:00:44 +02:00
ports nic/ipxe: add throttle RX interrupt support 2024-04-12 15:00:44 +02:00
recipes depot: update recipe hashes 2024-02-29 11:08:28 +01:00
src nic/ipxe: batch TX requests 2024-04-12 15:00:43 +02:00
README Update README files 2023-03-13 14:32:53 +01:00

This repository contains the device-driver environment (DDE) for the
"donator OS" iPXE available from http://ipxe.org/.

For building DDE iPXE, you first need to fetch and patch the original
sources. The 'prepare_port' tool automates this task. Just issue:

! ./tool/ports/prepare_port dde_ipxe

Now, you need to include the DDE iPXE repository into your Genode
build configuration by adding the path to this directory to the
'REPOSITORIES' declaration of the 'etc/build.conf' file within your
build directory, for example

! REPOSITORIES += $(GENODE_DIR)/repos/dde_ipxe

After a successful build the DDE iPXE based ethernet driver is located
at 'bin/ipxe_nic_drv'.

The driver optionally reports the following information under the
label "devices" if requested in the config as depicted.

! <config> <report mac_address="true"/> </config>

! <devices> <nic mac_address="02:00:00:00:00:01"/> </devices>