2 thread or ! 2 thread
By randyf on Jun 14, 2005
There have been plenty of driver developers out there who upon looking at the CPU loads note that one CPU is fully loaded, and the others are mostly idle. RELAX, this is OK. There is no need to go to extreme lenghts to call thread_create or ddi_taskq_create, the system is working as designed.
The Solaris network stack has been optimized to take as much advantage as possible of data locality on a CPU. It costs time and resources to migrate data from one CPU to another. The network stack is trying real hard to keep relevant data in caches and have reasonable locality to the interface the data is coming from or going to. So by migrating this data to another thread, the driver developer makes it more difficult for the stack to optimize the data, and the result is higher latencies, and/or lower performance. And it always means more total cpu utilization.
So relax, have a homebrew (maybe a cold american pilsner - you choose the brand), and let the framework do it's job. Besides, while one CPU is happily pushing data on the wire, the other CPU's can be used to compile OpenSolaris and really get yourself off to a good start.
Technorati Tag: OpenSolaris
Technorati Tag: Solaris