When an io-net self function is called, when does the function return? For
example, when the down-producer calls tx_down(), will the convert, filter,
and Ethernet driver all act (rx_down(), tx_down()) before the
down-producer’s tx_down() returns? I expect this is the way it works, but
I’m doing some timing analysis of my code and want to make sure I understand
the model correctly.
Also, when the last layer (a filter in my case) calls tx_down(), the next
step will be the Ethernet driver. How much work is done before tx_down()
returns? Is the packet simply queued in software at this point, or has it
been written to the NIC already?
I’ll give you some background on the reasons for my questions. I developed
my io-net module on a PIII-750 and it worked fine. Now I’m trying to move it
to an embedded P-266 and am running into performance bottlenecks. I’m not
sure if it’s related to CPU, bus, or NIC, but it’s hurting me. I used
ClockCycles() to time the execution time of tx_down() in the down-producer.
On the PIII-750 it takes 3us on average. On the P-266 it takes 40us on
average. This difference seems far greater than I expected.