Elad Lahav wrote: > Hi Jonathan, > > I am currently looking into different affinity policies on the Niagara > architecture, including the application threads and interrupt handlers.
We are interested in affinity scheduling too. > An important aspect of this work is the hierarchy of processing units > (chips, cores, threads) with respect to cache sharing, resource > utilisation, etc. I believe this quite relevant to what you have in mind. I'm not sure whether you know much about what we have available in OpenSolaris already, but we have a "Processor Group (PG)" abstraction inside the kernel for keeping track of which CPUs share performance relevant hardware components (eg. execution pipeline, cache, etc.) now. The Processor Groups are organized into a hierarchy (tree) where each leaf corresponds to each CPU (eg. strand) and its ancestors are groups of processors ordered from the ones that share the most with the CPU (eg. CPUs that share execution pipeline with the leaf CPU) to the ones that share the least (eg. all the CPUs in the machine). > I'll be more than willing to co-operate with you, or anyone else in > the OpenSolaris community, on this subject. That sounds great! Can you please tell me more about your work or point me at any relevant papers or docs? Jonathan > > > Jonathan Chew wrote: >> I would like to get sponsorship from the OpenSolaris performance >> community to host a CMT project which will focus on observability, >> performance enhancements, and potentially more in OpenSolaris for >> Chip Multi-Threaded (CMT) processors (including SMT, CMP, etc.). >> >> Specifically, the project will try to do the following in OpenSolaris: >> >> - 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 >> >> >> In the process of doing all of this, I'm hoping that the project will >> facilitate collaboration in this area as well as a better >> understanding and appreciation of CMT and OpenSolaris. >> >> >> Jonathan >> >> >> _______________________________________________ >> perf-discuss mailing list >> perf-discuss@opensolaris.org > > _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org