[libvirt] [PATCH 0/3] Add Processor/MemoryDevice information to virSysinfoRead() API

Daniel Veillard veillard at redhat.com
Fri Jun 24 07:20:29 UTC 2011


On Thu, Jun 23, 2011 at 01:16:36PM +0900, Minoru Usui wrote:
> Hi, Daniel
> 
> Thank you for you reply.
[...]
> I'm sorry for late posting and lack explanation.
> Expected output is below.
> 
> I add "<processor>" and "<memory_device>" part.
> "<processor>" part gets "Processor Information" part of dmidecode -t4,
> and "<memory_device>" part gets existing "Memory Device" part of dmidecode -t17.
> Existing "Memory Device" part means "Size" member is not "No Module Installed". 
> 
> How about this?
> 
> -------------------------------------------------------------
> # ./build/tools/virsh sysinfo
> <sysinfo type='smbios'>
>   <bios>
>     <entry name='vendor'>Phoenix Technologies LTD</entry>
>     <entry name='version'>1.0.5S46</entry>
>     <entry name='date'>12/21/2006</entry>
>   </bios>
>   <system>
>     <entry name='manufacturer'>NEC</entry>
>     <entry name='product'>Express5800/120Rg-1 [N8100-1241]</entry>
>     <entry name='version'>FR1.5</entry>
>     <entry name='serial'>6800109</entry>
>     <entry name='uuid'>BC466200-2232-11DB-8001-001617617E41</entry>
>     <entry name='sku'>Not Specified</entry>
>     <entry name='family'>Not Specified</entry>
>   </system>
[...]
>   <processor>
>     <entry name='socket_destination'>CPU#2     </entry>
>     <entry name='type'>Central Processor</entry>
>     <entry name='family'>Xeon</entry>
>     <entry name='manufacturer'>Intel Corporation</entry>
>     <entry name='signature'>Type 0, Family 6, Model 15, Stepping 7</entry>
>     <entry name='version'>Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz                 </entry>
>     <entry name='external_clock'>333 MHz</entry>
>     <entry name='max_speed'>3000 MHz</entry>
>     <entry name='status'>Populated, Enabled</entry>
>     <entry name='serial_number'> </entry>
>     <entry name='part_number'> </entry>
>   </processor>
[...]
>   <memory_device>
>     <entry name='size'>1024 MB</entry>
>     <entry name='form_factor'>DIMM</entry>
>     <entry name='locator'>DIMM 21</entry>
>     <entry name='bank_locator'>BANK 1</entry>
>     <entry name='type'>DDR2</entry>
>     <entry name='type_detail'>Synchronous</entry>
>     <entry name='speed'>533 MHz</entry>
>     <entry name='manufacturer'>80CE   </entry>
>     <entry name='serial_number'>030C5638</entry>
>     <entry name='part_number'>M395T2953CZ4-CE61 </entry>
>   </memory_device>

  Okay, I reviewed the patches, they are okay, except the freeing was
leaking all the strings from the memory and processor arrays. it was
easy to fix.
  I think it's okay to add this based on the fact we want extend libvirt
toward being an entry point for management tools, but that's on the
edge since it's not really specific to virtualization (and where needed
i.e. CPU flags and memory hierarchy) those informations are already
provided.
  My question is "do you need all those informations ???", my concern
is that already on my small desktop the output is 3KB and I assume on a
very large box we could hit hundreds of kilobytes.
  Also empty entries (i.e. zero lenght or spaces) should IMHO be
removed.

  I'm ready to commit those with the memory leak fixes, but a bit more
feedback would be welcome :-)

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list