TCP IP Stack Issues on Genode

Norman Feske norman.feske at ...1...
Fri Aug 9 11:04:56 CEST 2013


Hello Venkada,

welcome to the mailing list! It is good to hear that you'd like to help
out with improving TCP/IP on Genode. For TCP/IP we are using the lwIP
stack. You can find it as package of the 'libports' repository.

For working on performance improvements, you need to get a profound
understanding of the software stack, which is quite complex:

* Device-driver level (operation of the NIC driver)
* Communication of network packets from the driver to the TCP/IP stack
* Inner working of lwIP
* Interaction between lwIP and the C runtime
* Application-performance benchmark

This list does not even cover topics that are important across all those
places, in particular the implementation of Genode's base libraries
(such as the C++ runtime, or memcpy) as well as the behavior of the
kernel (e.g., latency of inter-process communication depending on the
kernel's scheduling policy).

To optimize performance, two intermediate steps are needed, the
provision of a useful benchmark and tooling that helps to find suitable
attack points for optimization. We have addressed the former point
(benchmarking) recently. You can find a suite of ready-to-use low-level
benchmarks in libports, and you can find a port of netperf in the ports
repository. The latter point (tooling) is more tricky. Without knowing
where the bottlenecks are, you have to optimize by chance. Given the
complexity of the software stack, chances are low to hit the real hot
spot this way. For this reason, there is current work under way to equip
Genode with a high-performance event tracing framework, which will
enable us to gather traces of events across the while software stack.

So what is a good point to start? I'd recommend you to explore the
benchmarks that we already have, get them running, and compare your
results with those of Linux.

Alternatively, you may consider adding functionality. For example, right
now, we are using IPv4 only. It would be interesting to look at enabling
IPv6 as well (which seems to be principally supported by lwIP).

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list