[libvirt] [RFD] Add/Modify some API functions about Host Information

Minoru Usui usui at mxm.nes.nec.co.jp
Thu Jan 20 08:34:28 UTC 2011


Hi, everyone

In an environment with multiple host machines, I want to select a suitable
host automatically on which I run a VM depending on machine's load.

Libvirt has APIs to get host machine's information,
but I think these APIs aren't enough for above purpose.
So I suggest below changes. What do you think?

  * virNodeGetInfo()
      This API can get "CPU frequency"(mhz member of virNodeInfo) from
      "cpu MHz" of /proc/cpuinfo. 
      This value isn't constant, because it may be decrease by
      power saving feature.(cf. cpuspeed on RHEL)

      This value is very useful for getting *present* cpu frequency, but I
      want to get Maximum CPU frequency, too.
      I want to add max_mhz member in struct virNodeInfo from
      /sys/device/system/cpu/cpuXX/cpufreq/cpuinfo_max_freq.

  * virNodeGetFreeMemory()
    This API returns amount of free memory of the host machine's all
    node, but this value doesn't include host's cache/buffer memory.
    For above purpose, it would be more suitable to account cache/buffer 
    as free memory, because most of cache/buffer memory are reclaimable.
    But I think virNodeGetFreeMemory()'s ABI should not change easily.
 
    I want to add function virNodeGetCacheBufferMemory(). It returns 
    amount of cache + buffer memory from /proc/meminfo.

  * virSysinfoRead()
    This API is completely internal.
    But DMI type1 information(dmidecode -t1) is useful for above
    purpose, because it's one of the information which suppose to
    processing capacity about host machine.
    
    I want to export virSysinfoRead() to user.
-- 
Minoru Usui <usui at mxm.nes.nec.co.jp>




More information about the libvir-list mailing list