[libvirt] [PATCH 09/12] [v2] virNodeGetMemoryStats: Implement public API

Eric Blake eblake at redhat.com
Tue Jun 14 22:21:21 UTC 2011


On 06/14/2011 03:17 AM, Daniel P. Berrange wrote:
> On Tue, Jun 07, 2011 at 10:04:54AM +0900, Minoru Usui wrote:
>> virNodeGetMemoryStats: Implement public API
>>
>> Signed-off-by: Minoru Usui <usui at mxm.nes.nec.co.jp>
>> ---
>>  include/libvirt/libvirt.h.in |    2 +-
>>  src/libvirt.c                |   87 ++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 88 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
>> index 885db25..b7772ba 100644
>> --- a/include/libvirt/libvirt.h.in
>> +++ b/include/libvirt/libvirt.h.in
>> @@ -824,7 +824,7 @@ int                     virNodeGetCPUStats (virConnectPtr conn,
>>  
>>  int                     virNodeGetMemoryStats (virConnectPtr conn,
>>                                                 int cellNum,
>> -                                               virCPUStatsPtr params,
>> +                                               virMemoryStatsPtr params,
>>                                                 int *nparams,
>>                                                 unsigned int flags);
> 
> 
> Opps, I think this chunk should be in your first patch.

Aargh - too late (I already pushed the broken version).  Oh well, it
goes to prove that we have ABI compatible structs, and that perhaps a
consolidated common struct definition before 0.9.3 would be wise.

>> + * Here is the sample code snippet:
>> + *
>> + * if ((virNodeGetMemoryStats(conn, cellNum, NULL, &nparams, 0) == 0) &&
>> + *     (nparams != 0)) {
>> + *     params = vshMalloc(ctl, sizeof(virMemoryStats) * nparams);
>> + *     memset(params, cellNum, 0, sizeof(virMemoryStats) * nparams);
>> + *     if (virNodeGetMemoryStats(conn, params, &nparams, 0)) {
>> + *         vshError(ctl, "%s", _("Unable to get node memory stats"));
>> + *         goto error;
>> + *     }
>> + * }
> 
> 
> Same comment as the earlier patch - use malloc() and fprintf(stderr)
> here.
> 
>> + *
>> + * This function doesn't requires privileged access to the hypervisor.

and same typo here.

> 
> ACK, if those 2 points above are addressed

Pushed with this squashed in.

diff --git i/src/libvirt.c w/src/libvirt.c
index 54d7699..d455e1e 100644
--- i/src/libvirt.c
+++ w/src/libvirt.c
@@ -5400,15 +5400,14 @@ error:
  *
  * if ((virNodeGetMemoryStats(conn, cellNum, NULL, &nparams, 0) == 0) &&
  *     (nparams != 0)) {
- *     params = vshMalloc(ctl, sizeof(virMemoryStats) * nparams);
+ *     if ((params = malloc(sizeof(virMemoryStats) * nparams)) == NULL)
+ *         goto error;
  *     memset(params, cellNum, 0, sizeof(virMemoryStats) * nparams);
- *     if (virNodeGetMemoryStats(conn, params, &nparams, 0)) {
- *         vshError(ctl, "%s", _("Unable to get node memory stats"));
+ *     if (virNodeGetMemoryStats(conn, params, &nparams, 0))
  *         goto error;
- *     }
  * }
  *
- * This function doesn't requires privileged access to the hypervisor.
+ * This function doesn't require privileged access to the hypervisor.
  * This function expects the caller to allocate the @params.
  *
  * Memory Stats:

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110614/bc0504b5/attachment-0001.sig>


More information about the libvir-list mailing list