On 11/24/2015 11:12 PM, Aline Manera wrote:
On 24/11/2015 06:26, Suresh Babu Angadi wrote:
>
>
> On 11/24/2015 12:25 AM, Aline Manera wrote:
>>
>> Hi Suresh,
>>
>> We should keep the API consistent across platforms, that means if
>> the 'memory' parameter is a 'string' in one platform we should be
a
>> string across all them.
>>
>> With this patch, we will have different results depend on arch,
>> which make hard on how to expect from the output.
>>
>> For x86, we will have: 'cpus' as a dict and 'memory' as a number
>> {
>> "cpus":{
>> "offline":0,
>> "online":4
>> },
>> "memory":7933902848
>> }
>>
>> For s390x, we will have 'cpus' as 'memory' as a dict.
>>
>> {
>> "cpus":{
>> "shared":2,
>> "offline":2,
>> "dedicated":0,
>> "online":2
>> },
>> "memory":{
>> "offline":2147483648,
>> "online":2147483648
>> },
>> "virtualization":{
>> "lpar_name":"CSTLIN1",
>> "hypervisor":"PR/SM",
>> "lpar_number":55,
>> "hypervisor_vendor":"IBM"
>> }
>> }
>>
>> And for ppc, we will have 'cpus' and 'memory' as a number.
>> {
>> "cpus":<cpu count>,
>> "memory":<memory>
>> }
>>
>> My suggestion is to user dict for 'memory' and 'cpus' for all
both
>> platforms.
>>
>> *For 'memory':*
>>
>> memory: {online: ..., offline:...}
>>
>> By 'online' memory, do you mean the memory current in the host? If
>> so, we can use those 2 values for all the platforms and assume to
>> total memory as online and 0 (zero) for offline memory for x86 and ppc.
> Hi Aline,
> Yes, I agree with your suggestion. Only s390x will have online and
> offline memory, for x86 and ppc - it is total memory in host, will
> keep offline memory as zero for x86 and ppc.
>>
>> *For 'cpus':*
>>
>> cpus: {online: ..., offline: ..., shared:..., dedicated:...}
>>
>> shared and dedicated only make sense for s390x, but online and
>> offline make sense for all the platforms so we can use them overall.
>>
>> What do you think about it?
> Agreed. I am currently using lscpu o/p to fetch total cpus and
> difference of total cpus and online cpus(fetched using psutil) will
> be taken as offline cpus.
> I searched in google for sample lscpu o/p in ppc, it has CPU(s) field
> in lscpu which is the total cpu count. Please let me know if it
> doesn't provide this information in lscpu, otherwise we are good here.
I've just confirmed and lscpu also returns the CPU(s) on PPC.
Thanks Aline for
the confirmation. I have sent V2 patch.
> ===sample lscpu o/p of linux on ppc====
> CPU(s): 16
> On-line CPU(s) list: 0-15
> Thread(s) per core: 4
> Core(s) per socket: 1
> Socket(s): 4
> NUMA node(s): 1
> Model: IBM,8233-E8B
> L1d cache: 32K
> L1i cache: 32K
> NUMA node0 CPU(s): 0-15
> ........
> .......
>>
>> Regards,
>> Aline Manera
>>
>> On 23/11/2015 10:03, sureshab(a)linux.vnet.ibm.com wrote:
>>> From: Suresh Babu Angadi<sureshab(a)in.ibm.com>
>>>
>>> As per RFC mail thread -
>>> [Kimchi-devel] RFC - #728 - Processor Info in s390 architecture
>>> this patch set adds functionality in back-end to add
>>> architecture, and host name(for all architecture),
>>> split CPUs to online and offline(x86, s390x),
>>> additional virtualization details(for s390x)
>>>
>>> Note: Subsequent patch set for UI changes will follow
>>> to accommodate these changes
>>>
>>> Test Cases Executed:
>>> ====================
>>> 1) On x86 machine:
>>> curl -k -u suresh -H "Content-Type: application/json" -H
"Accept: application/json" -X GET
'https://127.0.0.1:8001/plugins/gingerbase/host'
>>> {
>>> "os_distro":"Fedora",
>>> "cpus":{
>>> "offline":0,
>>> "online":4
>>> },
>>> "cpu_model":"Intel(R) Core(TM) i5-3320M CPU @
2.60GHz",
>>> "os_version":"21",
>>> "host":"localhost.localdomain",
>>> "os_codename":"Twenty One",
>>> "architecture":"x86_64",
>>> "memory":7933902848
>>> }
>>>
>>> 2) On s390x machine:
>>> curl -k -u root -H "Content-Type: application/json" -H
"Accept: application/json" -X GET
'https://127.0.0.1:8001/plugins/gingerbase/host'
>>> {
>>> "os_distro":"KVM for IBM z Systems",
>>> "cpus":{
>>> "shared":2,
>>> "offline":2,
>>> "dedicated":0,
>>> "online":2
>>> },
>>> "cpu_model":"IBM/2827/743 H43",
>>> "os_version":"1.1.1",
>>> "host":"zfwcec103",
>>> "os_codename":"Z",
>>> "architecture":"s390x",
>>> "memory":{
>>> "offline":2147483648,
>>> "online":2147483648
>>> },
>>> "virtualization":{
>>> "lpar_name":"CSTLIN1",
>>> "hypervisor":"PR/SM",
>>> "lpar_number":55,
>>> "hypervisor_vendor":"IBM"
>>> }
>>> }
>>>
>>> 3) For Power(Expected Output):
>>> {
>>> "os_distro":<os distro>,
>>> "cpus":<cpu count>,
>>> "cpu_model":<cpu model>,
>>> "os_version":<os version>,
>>> "host":<host name>,
>>> "os_codename":<os codename>,
>>> "architecture":"ppc",
>>> "memory":<memory>
>>> }
>>>
>>>
>>> Suresh Babu Angadi (1):
>>> Fix for issue 728: processor info displays blank for system z this
>>> patch set also adds additional capability: retrieving
>>> architecture and host name (for all architecture) split CPUs to
>>> show online and offline cpus(for x86 and s390x) split memory to
>>> show online and offline memory(for s390x) additional
>>> virtualization details(for s390x): virtualization will have
>>> hypervisor details and lpar details
>>>
>>> src/wok/plugins/gingerbase/docs/API.md | 22 ++-
>>> src/wok/plugins/gingerbase/i18n.py | 1 +
>>> src/wok/plugins/gingerbase/lscpu.py | 59 ++++++
>>> src/wok/plugins/gingerbase/model/host.py | 256
+++++++++++++++++++++++---
>>> src/wok/plugins/gingerbase/tests/test_host.py | 12 +-
>>> 5 files changed, 320 insertions(+), 30 deletions(-)
>>>
>>
>
> --
> Regards,
> Suresh Babu Angadi
--
Regards,
Suresh Babu Angadi