This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
lwIP vs. FreeBSD performance tip
- From: "Øyvind Harboe" <oyvind dot harboe at zylin dot com>
- To: "eCos Discussion" <ecos-discuss at ecos dot sourceware dot org>
- Date: Tue, 16 Oct 2007 08:21:13 +0200
- Subject: [ECOS] lwIP vs. FreeBSD performance tip
Tip: use eCos gprof
Note to self: optimisation is 90% profiling and 10% programming. :-)
After running eCos gprof, it turned out that FreeBSD spent 90% in
idle_thread. No wonder that there was no observable difference between
lwIP and FreeBSD.
The problem turned out to be a classic TCP_NODELAY problem.
The PC sent a packet to our card and then waits for ACK. We'll have no
stinking sliding windows in our app! :-)
The eCos application would then send out the ack and FreeBSD/lwIP
would have TCP_NODELAY cleared by default and just sit there waiting
for something else to send out.
The eCos application code was ported from a PC app and I wonder if
Linux/Windows have smarts to deal with this sort of problem.
We may yet use lwIP as it fits within SRAM entirely, but until we
observe real performance problems in our application, lwIP is on hold.
--
Øyvind Harboe
http://www.zylin.com - eCos ARM & FPGA developer kit
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss