On 7/9/07, Alexander Kolbasov <[EMAIL PROTECTED]> wrote:
Hello, I would like to propose a new "CPUfs" project aimed at providing extended observability for the CPUs in the system and their sharing relationships. The main objective is to provide stable infrastructure for representing CPU properties for user-land applications. Currently some CPU-related information can be obtained using prtconf(1M) and psrinfo(1M) which just a wrapper around the kstat (1M) framework. The kstat framework is usable for representing simple "flat" CPU properties, but using it becomes more and more of a stretch in the CMT world. The purpose of the CPUfs project is to explore using the file system abstraction to represent CPU properties. File system abstraction supports hierarchy and convenient name space. I suggest hosting the project under either Observability or Performance community.
As a sysadmin, I would find this functionality very useful. Currently I have to resort to parsing a combination of psrconf and psrinfo, and the format of the output is inconsistent, so I have to keep updating my code every time that a new CPU type is added to Solaris. One concern is to make sure that this is designed as a "stable interface" that can scale to handle most CPU configurations looking down the road. We will probably need to handle the virtualization extensions properly as well. (As related to Xen, Zones and VMWare). I'm thinking that we need to focus on creating a standard format "feature matrix". This would allow new features to be added down the road, while allowing code to check for the existence of features, without knowing or caring what particular model of chip. (I know I am probably stating the obvious). One question to consider is do we want to also support something similar to Linux's "/proc/cpuinfo"? e.g.: debian-macbook:/usr/src# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2500 @ 2.00GHz stepping : 8 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr bogomips : 3999.30 processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2500 @ 2.00GHz stepping : 8 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr bogomips : 3994.61 Thanks, --brian
_______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org