mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 10:46:25 +00:00
31e8b50b7c
A bunch of transmit requests received by the Uplink server (nic_router) are currently added one by one to the ring buffer and every time the hardware is notified to process each single request. Instead, add as many as possible transmit requests in the ring buffer of the hardware and when done trigger the hardware to process the ring. Additionally, don't receive an "processed" TX IRQ for each element in the ring, which causes high CPU load. With this commit the TX IRQs in the ipxe driver for a iperf -c X.X.X.X -t 60 from within a VM to the outside iperf server is reduced from about ~2'600'000 IRQs to about ~200'000. The overall CPU load for the driver (when executed alone on CPU 0) is reduced from ~85 percent load to ~45 percent load. Issue #5149 |
||
---|---|---|
.. | ||
include/dde_ipxe | ||
lib/mk | ||
patches | ||
ports | ||
recipes | ||
src | ||
README |
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>