[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [lwip-users] Optimizations for applications requiring limitedfunctio
From: |
Goldschmidt Simon |
Subject: |
RE: [lwip-users] Optimizations for applications requiring limitedfunctionality. |
Date: |
Tue, 17 Apr 2007 17:50:57 +0200 |
> 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