...
IPerf Test Case
...
Buffer leaks
Anchor
Buffer leaks can happen in many cases. The root cause of a buffer leak is when the program loses track of memory allocation pointers. Assigning a newly allocated buffer to a pointer without deallocating the previous memory block that the pointer associated with will also cause a buffer leak. If no other pointer refers to that memory location, then there is no way it can be deallocated in the future, and that memory block will remain unusable unless the system is reset. Anchor
Transmit buffer leaks can be detected by having the target transmit a large buffer to the test station using TCP. A good example would be an FTP test. If a given buffer is not transmitted because it has leaked, the test station will request its retransmission by the target. This operation should fail since the leaked buffer is lost.
Anchor
...
Figure 8-6 Transmission Buffer Leak Example Anchor
No retransmission
...
Retransmissions should never happen unless they are requested by the communication protocol. Erroneous retransmissions can happen if a transmitted buffer remains assigned to a descriptor, and the buffer is not deallocated. Anchor
While performing performance tests on the target, you should use Wireshark or another packet capture tool to monitoring the trafic. Unrequested packets retransmission can be detected by searching for frames marked with “[This frame is a (suspected) retransmission]” in Wireshark.anchor
Advertised window size
Anchor
Performance results
...
Anchor
net_cfg.h
. ...
rowspan | 11 |
---|
...
Listing 8-5 Net Configuration for optimal performances
...
1014663 Anchor
Task Priorities
Anchor
When setting up task priorities, we recommend that tasks that use μC/TCP-IP’s services be given higher priorities than μC/TCP-IP’s internal tasks. However, application tasks that use μC/TCP-IP should voluntarily relinquish the CPU on a regular basis. For example, they can delay or suspend the tasks, or wait on μC/TCP-IP services. The purpose is to reduce starvation issues when an application task sends a substantial amount of data.
Anchor
Listing 8-6 shows an example of task priorities and stack sizes for a typical device performance measurement application.
anchor
...
rowspan | 33 |
---|
...
Listing 8-6 Example of task priorities and stack sizes