Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] CPU Model and type
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2011-09-13 09:54:37


Le 13/09/2011 21:51, TERRY DONTJE a écrit :
>
>
> On 9/13/2011 9:23 AM, Brice Goglin wrote:
>> Le 12/09/2011 21:01, Brice Goglin a écrit :
>>> Le 09/09/2011 13:25, TERRY DONTJE a écrit :
>>>> On 9/8/2011 3:10 PM, Brice Goglin wrote:
>>>>> Hello Terry,
>>>>>
>>>>> Indeed there's nothing like this as of today. We talked about it
>>>>> in the past but it's not very easy to implement on Linux (see
>>>>> below) so we forgot about it until somebody complained.
>>>>>
>>>>> Adding infos would certainly be fine. I think it should rather be
>>>>> "CPUType" and "CPUModel" since existing infos have no underscore
>>>>> in their name if I remember correctly. You could also set
>>>>> object->name to a combination of type and model. Socket looks like
>>>>> the right object to put this. Maybe even use "Model" and "Type" as
>>>>> the info names then?
>>>>>
>>>>> The reason it's not easy on Linux is that we usually take infos
>>>>> from either sysfs, or /proc/cpuinfo if sysfs isn't available, but
>>>>> not from both. Processor names are only in /proc/cpuinfo IIRC. So
>>>>> we'd need to mix sysfs and /proc/cpuinfo. Not easy with the
>>>>> current code, especially if you can't assume that all sockets are
>>>>> similar. But definitely something that I will do at some point.
>>>>>
>>>>> Brice
>>>>>
>>>> The way info objects would be attached to a Socket object I assume
>>>> it would be ok to just attach such an object under Solaris but not
>>>> not for the other OSes. Since one can look for the named object
>>>> and it is either going to be there or not :-).
>>>>
>>>> Anyway, I'll play around with this for Solaris.
>>>
>>> Looking at the code, you might want to drop hwloc_setup_level() and
>>> copy it back into the caller. It will make the addition of info
>>> attributes much easier. I am looking at the Linux side.
>>
>> I just pushed some code that will make this much easier on Linux (I
>> may change the Solaris code similarly when I'll take time to test on
>> a real solaris machine).
>>
>> Now I have a patch that reads the CPU vendor and model in
>> /proc/cpuinfo (x86 only for now) and use them to set Socket info
>> attributes (CPUVendor and CPUModel) and name (CPUVendor+CPUModel).
>>
>> Before I push this, we need to clarify what we want. You were talking
>> about "CPUType" and "CPUModel". Can you give some example of what it
>> would look like under Solaris? I want to compare to what I can get on
>> Linux.
>>
> Both type and model are character strings. An example of what I
> currently store in the sysinfo structures are:
>
> type = "SPARC"
> model = "SPARC64_VI"
>
> Other values for model are "T1", "T2", "SPARC64_VII"...

What about Solaris on non-sparc machines ?

Brice