[libvirt] [PATCH] Extend l3 cache to nodeinfo

Qiao, Liyong liyong.qiao at intel.com
Tue Jan 10 12:05:00 UTC 2017


Hi Daniel,

Thanks for your comments.

I will not change public ABI nor break RPC.

I wonder if you would agree with extend virHostCPUGetInfoPopulateLinux to get l3 cache size ?
Such as:
virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
                               virArch arch,
                               unsigned int *cpus,
                               unsigned int *mhz,
                               unsigned int *nodes,
                               unsigned int *sockets,
                               unsigned int *cores,
                               unsigned int *threads,
                               unsigned int *l3_cache)  ←---------

virHostCPUGetInfoPopulateLinux is doing parsing /proc/cpuinfo , so I think it’s the best way to get l3 cache size.

cat /proc/cpuinfo

…
cpu MHz		: 2821.435
cache size	: 56320 KB
…


Best Regards

Eli Qiao(乔立勇)OpenStack Core team OTC Intel.
-- 


On 10/01/2017, 5:44 PM, "Daniel P. Berrange" <berrange at redhat.com> wrote:

    On Tue, Jan 10, 2017 at 04:11:03PM +0800, Eli Qiao wrote:
    > This patch extends l3 cache infomation to nodeinfo output.
    > 
    > Signed-off-by: Eli Qiao <liyong.qiao at intel.com>
    > ---
    >  include/libvirt/libvirt-host.h |  1 +
    >  src/nodeinfo.c                 |  3 ++-
    >  src/remote/remote_protocol.x   |  1 +
    >  src/test/test_driver.c         |  1 +
    >  src/util/virhostcpu.c          | 29 +++++++++++++++++++++++++----
    >  src/util/virhostcpu.h          |  3 ++-
    >  src/util/virhostcpupriv.h      |  3 ++-
    >  tests/virhostcputest.c         |  3 ++-
    >  tools/virsh-host.c             |  1 +
    >  9 files changed, 37 insertions(+), 8 deletions(-)
    > 
    > diff --git a/include/libvirt/libvirt-host.h b/include/libvirt/libvirt-host.h
    > index 07b5d15..ba926df 100644
    > --- a/include/libvirt/libvirt-host.h
    > +++ b/include/libvirt/libvirt-host.h
    > @@ -167,6 +167,7 @@ struct _virNodeInfo {
    >                               processors in case of unusual NUMA topology*/
    >      unsigned int threads; /* number of threads per core, 1 in case of
    >                               unusual numa topology */
    > +    unsigned int l3_cache; /* l3 cache in kilobytes */
    >  };
    
    NACK, it is *forbidden* to change public structs as this breaks
    ABI compatibility.

Okay, get it.    
    
    > diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
    > index b846ef2..6a16b4e 100644
    > --- a/src/remote/remote_protocol.x
    > +++ b/src/remote/remote_protocol.x
    > @@ -489,6 +489,7 @@ struct remote_node_get_info_ret { /* insert at 1 */
    >      int sockets;
    >      int cores;
    >      int threads;
    > +    int l3_cache;
    >  };
    
    Likewise this breaks RPC compatibility.
    
  This info wil need to be reported in the capabilities XML instead.

Sure.
    
    Regards,
    Daniel
    -- 
    |: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
    |: http://libvirt.org              -o-             http://virt-manager.org :|
    |: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|
    





More information about the libvir-list mailing list