Computing is now shifting towards multiprocessing. The fundamental goal of multiprocessing is improved performance through the introduction of additional hardware threads or cores (referred to as “cores” for simplicity). Modern network stacks can exploit parallel cores to allow either message-based parallelism or connection-based parallelism as a means to enhance performance. OpenSolaris has redesigned and parallelized to better utilize additional cores. Three special technologies, named Softring Set, Soft ring and Squeue are introduced in OpenSolaris for stack parallelization. In this paper, we study the OpenSolaris packet receiving process and its core parallelism optimization techniques. Experiment results show that these techniques allow OpenSolaris to achieve better network I/O performance in multiprocessing environments; however, network stack parallelization has also brought extra overheads for system. An effective and efficient network I/O optimization in multiprocessing environments is required to cross all levers of the network stack from network interface to application.
[1]
Sunay Tripathi,et al.
Crossbow: a vertically integrated QoS stack
,
2009,
WREN '09.
[2]
Richard McDougall,et al.
Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture
,
2006
.
[3]
Wenji Wu,et al.
The performance analysis of linux networking - Packet receiving
,
2007,
Comput. Commun..
[4]
Donald Newell,et al.
Architectural Characterization of Processor Affinity in Network Processing
,
2005,
IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..
[5]
Alan L. Cox,et al.
An Evaluation of Network Stack Parallelization Strategies in Modern Operating Systems
,
2006,
USENIX Annual Technical Conference, General Track.