lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] Optimizations for applications requiringlimitedfunction


From: Roger Cover
Subject: RE: [lwip-users] Optimizations for applications requiringlimitedfunctionality.
Date: Tue, 17 Apr 2007 09:13:08 -0700

Greetings Simon,

The 80% includes the netif->output() call. My system uses both UDP and
TCP. I have probed the UDP code more, so I know a bit more about it. The
measured performance change is about the same for UDP and TCP. As I
mentioned earlier, I am using the same driver code with minor API
alterations for both versions of lwIP. I would not expect the driver's
behavior to have changed.

My system is not running out of memory. I have been watching that very
carefully.

Regards,
Roger
-----Original Message-----
From: address@hidden
[mailto:address@hidden On Behalf Of
Goldschmidt Simon
Sent: Tuesday, April 17, 2007 8:51 AM
To: Mailing list for lwIP users
Subject: RE: [lwip-users] Optimizations for applications
requiringlimitedfunctionality.



> I have not looked very far into what lwIP is doing 
> internally. I know that the function ip_output_if() is where 
> my CPU is spending over 80% of its time during my UDP 
> transfers. I am using a Gigabit MAC/PHY, so lwIP's 
> transmission speed is no where near what the hardware can 
> sustain. There should not be any waiting for the hardware.

OK, I seem to have overread the fact that you are using UDP, I was
thinking of TCP.
However, spending 80% of the time in ip_output_if() seems a little
strange to me,
since there is nothing in that function which could be consuming cycles
(no loop,
just a checksum calculation over 20 bytes).

How did you measure the 80% and are you sure that netif->output() and
nested
calls don't count into the time of ip_output_if()? I'd imagine the
cycles are
going into your network driver instead of ip_output_if()...

> In fact, the Xilinx driver I have, from the reference design 
> I started with, does not even check to see if the MAC's FIFO 
> is full. It just blindly sends data to the MAC presuming the 
> FIFO will be emptied faster than it can be filled. This 
> presumption is justified if the PHY has negotiated a Gigabit 
> connection. In my test setup, it has.
> 
> Is there something in particular you would like me to look into?

Hm, checking if the 80% are including netif->output() or not. Oh, did
you check
you aren't running out of memory? Aside from that, I'm afraid I don't
think I
can help much.


Simon


_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users




reply via email to

[Prev in Thread] Current Thread [Next in Thread]