Designing High-Performance Networking Applications: Essential Insights for Developers of IXP2XXX Network Processor-based Systems

All we owe the public is a good performance.
Humphrey Bogart
Performance analysis is a critical and integral part of developing applications for Intel IXP2XXX network processors. In this chapter, which is the first of three chapters in this section devoted to performance analysis, we examine in detail how application performance can be characterized, what are the relevant performance metrics to measure performance of IXP2XXX network processors and how the metrics can be computed in a back-of-the-envelope calculation to give a first-order estimate of application performance.
In the next chapter, we discuss the use of the IXP2XXX Architecture Tool and show how a more detailed and accurate performance analysis can be performed using the tool. In the last chapter of this section, we look at how to use the results of the performance analysis to performance tune and develop a high-performing, efficient application design.
Performance analysis plays an important role through all the phases of developing applications for IXP2XXX network processors: design, development, testing, and tuning. It is particularly important in the design and evaluation phase. In this phase, you use performance analysis to do the following tasks:
Selecting an NPU: In many cases, you have a choice of NPUs both within the same NPU family and across different NPU vendors. The selection of a particular NPU for an application is a complex process and involves several trade-off analyses using power, cost, and performance as key metrics. Performance analysis can be used to evaluate the...