This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]