genode/repos/dde_ipxe/ports/dde_ipxe.port
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

20 lines
519 B
Makefile

LICENSE := GPLv2
VERSION := git
DOWNLOADS := ipxe.git
URL(ipxe) := https://github.com/ipxe/ipxe.git
REV(ipxe) := c4bce43c3c4d3c5ebb2d926b58ad16dc9642c19d
DIR(ipxe) := src/lib/dde_ipxe
PATCHES := patches/dde_ipxe.patch \
patches/intel.patch \
patches/intel_update.patch \
patches/tg3.patch \
patches/realtek.patch \
patches/intel_tx_batch.patch \
patches/intel_rx_throttle.patch
PATCH_OPT := -p1 -d ${DIR(ipxe)}
# vi: set ft=make :