mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-24 15:56:41 +00:00
a6a856cb70
Under high TX load, 'irq_handler()' is rarely executed but packets are still received since 'netdev_poll()' is called for every TX packet. 'netdev_poll()' not only handles completed transmissions but also puts the IO buffers of received packets into the RX queue and refills the RX ring by allocating more IO buffers. However, the IO buffers can only be freed after they have been dequeued and passed to the 'rx_callback()'. Since this was only done by 'irq_handler()', we exhaust the slab allocator under high TX load. A fix for this is to process the RX queue not only in the IRQ handler but also when transmitting packets. genodelabs/genode#4555 |
||
---|---|---|
.. | ||
include/dde_ipxe | ||
lib/mk | ||
patches | ||
ports | ||
recipes | ||
src | ||
README |
This repository contains the Device Driver Environment 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 process. Just add 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 successful build the DDE iPXE based ethernet driver is located at 'bin/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>