Introduction
The OpenSolaris CMT project is will focus on observability, performance enhancements, and potentially more in OpenSolaris for Chip Multi-Threaded (CMT) processors (including SMT, CMP, etc.).
Background
In the past, the processors supported by Solaris have consisted of a single processor core with a single strand of execution per chip. Today, processor technology has advanced to have a multiprocessor per chip with multiple strands of execution and potentially multiple processor cores.
In fact, most new computers contain one of the following multiprocessor chip architectures:
- Chip Multi-Processors (CMP) contain multiple processor cores
- Symmetric Multi-Threaded (SMT) processors typically contain a single processor core with multiple strands of execution
- Chip Multi-Threaded (CMT) processors combine both CMP and SMT processor technologies and contain multiple cores each with multiple strands
For simplicity, CMT is used to refer CMP, SMT, and CMT processors.
Motivation
Besides the additional parallelism provided, the most interesting things about CMT processors that affect performance are the following:
- Each strand within each CMT processor chip shares one or more performance relevant processor components with other strands in the chip
- Utilization of a shared hardware component by one strand can affect the performance of the other strands sharing the same component
Goals
- Further develop a processor group abstraction for capturing the CMT processor sharing relationhips of performance relevant hardware components (eg. execution pipeline, cache, etc.)
- Create an interface for determining which CPUs share what performance relevant hardware and the characteristics of these performance relevant hardware components
- Add more performance optimizations to Solaris for CMT (eg. scheduling, I/O, etc.)
- Improve load balancing for maximizing performance and potentially minimizing power consumption
- Create APIs to facilitate performance optimizations for CMT
- Make changes needed to make all of the above work well with virtualization
- Improve upon the existing Solaris CMT enhancements
- Add support for new CMT hardware as needed
- Address any OpenSolaris CMT issues as they arise
Status
Please see our Project Efforts web page for what we are currently working on.
Getting Involved
Project Mail Aliases
perf dash discuss at opensolaris dot org is the mailing list currently used for CMT discussion. We're in the process of requesting a dedicated project alias (likely cmt dash dev at opensolaris dot org) For now, please feel free to subscribe to the performance community wide mailing alias, and check back for availability of the CMT project dev alias.
Documents
- Overview Presentation
Source Repositories
Information about the various source repositories that house our in-development work is available on the pages describing that work. See the Project Efforts page for a list.