Re: [libvirt] [PATCHv2] virsh: fix range of memtune command

2010-10-26 Thread Eric Blake

On 10/25/2010 11:06 PM, Nikunj A. Dadhania wrote:

On Wed, 20 Oct 2010 13:29:45 -0600, Eric Blakeebl...@redhat.com  wrote:

* tools/virsh.c (cmdMemtune): Use long long for memory
sizes. Simplify allocation, and plug memory leak.


ACK


Thanks; pushed.

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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv2] virsh: fix range of memtune command

2010-10-25 Thread Stefan Berger

 On 10/20/2010 03:29 PM, Eric Blake wrote:

* tools/virsh.c (cmdMemtune): Use long long for memory
sizes. Simplify allocation, and plug memory leak.
---

No need to cripple virsh with a 32-bit limit.

Change from v1:
fix compilation failure, rebase on top of other recent memtune fixes

  tools/virsh.c |   19 ---
  1 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index ca9a61e..6a11a7a 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -2905,7 +2905,7 @@ static int
  cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  {
  virDomainPtr dom;
-int hard_limit, soft_limit, swap_hard_limit, min_guarantee;
+long long hard_limit, soft_limit, swap_hard_limit, min_guarantee;
  int nparams = 0;
  unsigned int i = 0;
  virMemoryParameterPtr params = NULL, temp = NULL;
@@ -2918,24 +2918,22 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  return FALSE;

  hard_limit =
-vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_HARD_LIMIT,hard_limit);
+vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_HARD_LIMIT, NULL);
  if (hard_limit)
  nparams++;

  soft_limit =
-vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_SOFT_LIMIT,soft_limit);
+vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_SOFT_LIMIT, NULL);
  if (soft_limit)
  nparams++;

  swap_hard_limit =
-vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT,
-swap_hard_limit);
+vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT, NULL);
  if (swap_hard_limit)
  nparams++;

  min_guarantee =
-vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_MIN_GUARANTEE,
-min_guarantee);
+vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_MIN_GUARANTEE, NULL);
  if (min_guarantee)
  nparams++;

@@ -2954,8 +2952,7 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  }

  /* now go get all the memory parameters */
-params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams);
-memset(params, 0, sizeof(virMemoryParameter) * nparams);
+params = vshCalloc(ctl, nparams, sizeof(*params));
  if (virDomainGetMemoryParameters(dom, params,nparams, 0) != 0) {
  vshError(ctl, %s, _(Unable to get memory parameters));
  goto cleanup;
@@ -2995,9 +2992,8 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  ret = TRUE;
  } else {
  /* set the memory parameters */
-params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams);
+params = vshCalloc(ctl, nparams, sizeof(*params));

-memset(params, 0, sizeof(virMemoryParameter) * nparams);
  for (i = 0; i  nparams; i++) {
  temp =params[i];
  temp-type = VIR_DOMAIN_MEMORY_PARAM_ULLONG;
@@ -3037,6 +3033,7 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  }

cleanup:
+VIR_FREE(params);
  virDomainFree(dom);
  return ret;
  }

ACK.
   Stefan

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv2] virsh: fix range of memtune command

2010-10-25 Thread Nikunj A. Dadhania
On Wed, 20 Oct 2010 13:29:45 -0600, Eric Blake ebl...@redhat.com wrote:
 * tools/virsh.c (cmdMemtune): Use long long for memory
 sizes. Simplify allocation, and plug memory leak.
 ---
 
 No need to cripple virsh with a 32-bit limit.
 
 Change from v1:
 fix compilation failure, rebase on top of other recent memtune fixes
 
  tools/virsh.c |   19 ---
  1 files changed, 8 insertions(+), 11 deletions(-)
 
 diff --git a/tools/virsh.c b/tools/virsh.c
 index ca9a61e..6a11a7a 100644
 --- a/tools/virsh.c
 +++ b/tools/virsh.c
 @@ -2905,7 +2905,7 @@ static int
  cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  {
  virDomainPtr dom;
 -int hard_limit, soft_limit, swap_hard_limit, min_guarantee;
 +long long hard_limit, soft_limit, swap_hard_limit, min_guarantee;
  int nparams = 0;
  unsigned int i = 0;
  virMemoryParameterPtr params = NULL, temp = NULL;
 @@ -2918,24 +2918,22 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  return FALSE;
 
  hard_limit =
 -vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_HARD_LIMIT, hard_limit);
 +vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_HARD_LIMIT, NULL);
  if (hard_limit)
  nparams++;
 
  soft_limit =
 -vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_SOFT_LIMIT, soft_limit);
 +vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_SOFT_LIMIT, NULL);
  if (soft_limit)
  nparams++;
 
  swap_hard_limit =
 -vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT,
 - swap_hard_limit);
 +vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT, NULL);
  if (swap_hard_limit)
  nparams++;
 
  min_guarantee =
 -vshCommandOptInt(cmd, VIR_DOMAIN_MEMORY_MIN_GUARANTEE,
 - min_guarantee);
 +vshCommandOptLongLong(cmd, VIR_DOMAIN_MEMORY_MIN_GUARANTEE, NULL);
  if (min_guarantee)
  nparams++;
 
 @@ -2954,8 +2952,7 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  }
 
  /* now go get all the memory parameters */
 -params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams);
 -memset(params, 0, sizeof(virMemoryParameter) * nparams);
 +params = vshCalloc(ctl, nparams, sizeof(*params));
  if (virDomainGetMemoryParameters(dom, params, nparams, 0) != 0) {
  vshError(ctl, %s, _(Unable to get memory parameters));
  goto cleanup;
 @@ -2995,9 +2992,8 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  ret = TRUE;
  } else {
  /* set the memory parameters */
 -params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams);
 +params = vshCalloc(ctl, nparams, sizeof(*params));
 
 -memset(params, 0, sizeof(virMemoryParameter) * nparams);
  for (i = 0; i  nparams; i++) {
  temp = params[i];
  temp-type = VIR_DOMAIN_MEMORY_PARAM_ULLONG;
 @@ -3037,6 +3033,7 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
  }
 
cleanup:
 +VIR_FREE(params);
  virDomainFree(dom);
  return ret;
  }

ACK

Nikunj

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list