[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