[Libvirt-cim] [PATCH] (#2) Fix MemoryPool.Reserved to show only actively allocated memory

Chip Vincent cvincent at linux.vnet.ibm.com
Mon Jun 27 14:25:14 UTC 2011


Thanks. Pushed.

On 06/26/2011 01:30 PM, Sharad Mishra wrote:
> code looks fine.
> please test and push.
>
> +1
>
> Sharad Mishra
> Open Virtualization
> Linux Technology Center
> IBM
>
> libvirt-cim-bounces at redhat.com wrote on 06/22/2011 08:33:03 AM:
>
>  > Chip Vincent <cvincent at linux.vnet.ibm.com>
>  > Sent by: libvirt-cim-bounces at redhat.com
>  >
>  > 06/22/11 08:33 AM
>  >
>  > Please respond to
>  > List for discussion and development of libvirt CIM
> <libvirt-cim at redhat.com>
>  >
>  > To
>  >
>  > libvirt-cim at redhat.com
>  >
>  > cc
>  >
>  > Subject
>  >
>  > [Libvirt-cim] [PATCH] (#2) Fix MemoryPool.Reserved to show only
>  > actively allocated memory
>  >
>  > # HG changeset patch
>  > # User Chip Vincent <cvincent at us.ibm.com>
>  > # Date 1308756569 14400
>  > # Node ID c5a9510b6bd1569c6ab0966624306e29ecd81727
>  > # Parent 6c29c5b284443e226e7d97e7e5f11848b0c4e761
>  > (#2) Fix MemoryPool.Reserved to show only actively allocated memory.
>  >
>  > It appears Reserved is meant to show memory that is taken (actively
> in use by
>  > VMs) as opposed to memory that is potentially taken (assigned to
> defined, but
>  > not running VMs).
>  > Also added CurrentlyConsumedResource (a much clearer name for the
> same thing)
>  > and ConsumedResourceUnits, fixed units to conform with DSP1045, and
> cleaned
>  > up some extraneous whitespace.
>  >
>  > Changes from #1:
>  > - Fix return code checking
>  >
>  > Signed-off-by: Chip Vincent <cvincent at us.ibm.com>
>  >
>  > diff --git a/src/Virt_DevicePool.c b/src/Virt_DevicePool.c
>  > --- a/src/Virt_DevicePool.c
>  > +++ b/src/Virt_DevicePool.c
>  > @@ -676,17 +676,47 @@
>  > return memory != 0;
>  > }
>  >
>  > -static bool mempool_set_reserved(CMPIInstance *inst, virConnectPtr conn)
>  > +static bool mempool_set_consumed(CMPIInstance *inst, virConnectPtr conn)
>  > {
>  > - uint64_t memory;
>  > + uint64_t memory = 0;
>  > + int *domain_ids = NULL;
>  > + int count, i = 0;
>  >
>  > - /* NB: This doesn't account for memory to be claimed
>  > - * by ballooning dom0
>  > - */
>  > - memory = allocated_memory(conn);
>  > + count = virConnectNumOfDomains(conn);
>  > + if (count <= 0)
>  > + goto out;
>  > +
>  > + domain_ids = calloc(count, sizeof(domain_ids[0]));
>  > + if (domain_ids == NULL)
>  > + goto out;
>  > +
>  > + if (virConnectListDomains(conn, domain_ids, count) == -1)
>  > + goto out;
>  > +
>  > + for (i = 0; i < count; i++) {
>  > + virDomainPtr dom = NULL;
>  > + virDomainInfo dom_info;
>  > +
>  > + dom = virDomainLookupByID(conn, domain_ids[i]);
>  > + if (dom == NULL) {
>  > + CU_DEBUG("Cannot connect to domain %n: excluding",
>  > + domain_ids[i]);
>  > + continue;
>  > + }
>  > +
>  > + if (virDomainGetInfo(dom, &dom_info) == 0)
>  > + memory += dom_info.memory;
>  > +
>  > + virDomainFree(dom);
>  > + }
>  > +
>  > + out:
>  > + free(domain_ids);
>  >
>  > CMSetProperty(inst, "Reserved",
>  > (CMPIValue *)&memory, CMPI_uint64);
>  > + CMSetProperty(inst, "CurrentlyConsumedResource",
>  > + (CMPIValue *)&memory, CMPI_uint64);
>  >
>  > return memory != 0;
>  > }
>  > @@ -726,10 +756,14 @@
>  > CMSetProperty(inst, "ResourceType",
>  > (CMPIValue *)&type, CMPI_uint16);
>  >
>  > - if (units != NULL)
>  > + if (units != NULL) {
>  > CMSetProperty(inst, "AllocationUnits",
>  > (CMPIValue *)units, CMPI_chars);
>  >
>  > + CMSetProperty(inst, "ConsumedResourceUnits",
>  > + (CMPIValue *)units, CMPI_chars);
>  > + }
>  > +
>  > if (caption != NULL)
>  > CMSetProperty(inst, "Caption",
>  > (CMPIValue *)caption, CMPI_chars);
>  > @@ -761,9 +795,9 @@
>  > ns);
>  >
>  > mempool_set_total(inst, conn);
>  > - mempool_set_reserved(inst, conn);
>  > + mempool_set_consumed(inst, conn);
>  >
>  > - set_params(inst, CIM_RES_TYPE_MEM, id, "KiloBytes", NULL, true);
>  > + set_params(inst, CIM_RES_TYPE_MEM, id, "byte*2^10", NULL, true);
>  >
>  > inst_list_add(list, inst);
>  >
>  >
>  > _______________________________________________
>  > Libvirt-cim mailing list
>  > Libvirt-cim at redhat.com
>  > https://www.redhat.com/mailman/listinfo/libvirt-cim
>
>
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim

-- 
Chip Vincent
Open Virtualization
IBM Linux Technology Center
cvincent at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list