xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Yang Hongyang <yanghy@cn.fujitsu.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH]xl: Some small fixes to xl
Date: Mon, 24 May 2010 08:48:46 +0800	[thread overview]
Message-ID: <4BF9CCEE.9010300@cn.fujitsu.com> (raw)
In-Reply-To: <4BF6DE1D.6070904@goop.org>

Hi jeremy,

Thank you for your review.

On 05/22/2010 03:25 AM, Jeremy Fitzhardinge wrote:
> On 05/21/2010 12:01 AM, Yang Hongyang wrote:
>> The patch fixes following problems:
>> -When use mem-set, I got suspicious error output:
>>  # xl mem-set 1 256g
>>  setting domid 1 memory to : 268435456
>>  [0] libxl.c:2535:libxl_set_memory_target: memory_dynamic_max must be less than or equal to memory_static_max
>>  : Success
>> -parse_mem_size_kb() returns type int64_t
>> -String generated by strdup() should be freed
>> -When using 'xl help', mem-max and mem-set's output is not as intend, and it's also
>>  breaks bash completion, fix it.
>>
>> diff -r 840f269d95fb tools/libxl/libxl.c
>> --- a/tools/libxl/libxl.c	Wed May 19 22:59:52 2010 +0100
>> +++ b/tools/libxl/libxl.c	Fri May 21 22:56:02 2010 +0800
...snip...
>>      }
>>  
>> -    printf("setting domid %d memory to : %lld\n", domid, memorykb);
>> +    printf("setting domid %d memory to : %ld\n", domid, memorykb);
>>   
> 
> This is wrong; "int64_t" isn't necessarily long.  What was wrong with
> the previous version?

There's a problem. libxl_set_memory_target() takes memorykb as uint32_t,
so, if you want set as 'long long int', you should also modify this lib
function I think.
For this reason, when I set the memory to 100t, libxl_set_memory_target()
will take the memorykb as 0...

> 
>     J
> 
>>      libxl_set_memory_target(&ctx, domid, memorykb, /* enforce */ 1);
>>  }
>>  
>> @@ -3644,7 +3644,8 @@
>>      int fd;
>>      char buf[512];
>>      uint32_t uptime = 0;
>> -    char *uptime_str = 0;
>> +    char *uptime_str = NULL;
>> +    char *now_str = NULL;
>>  
>>      fd = open("/proc/uptime", O_RDONLY);
>>      if (fd == -1)
>> @@ -3661,9 +3662,10 @@
>>  
>>      if (short_mode)
>>      {
>> +        now_str = current_time_to_string(now);
>>          uptime_str = uptime_to_string(uptime, 1);
>> -        printf(" %s up %s, %s (%d)\n", current_time_to_string(now),
>> -               uptime_str, libxl_domid_to_name(&ctx, 0), 0);
>> +        printf(" %s up %s, %s (%d)\n", now_str, uptime_str,
>> +               libxl_domid_to_name(&ctx, 0), 0);
>>      }
>>      else
>>      {
>> @@ -3672,6 +3674,8 @@
>>                 0, uptime_str);
>>      }
>>  
>> +    if (now_str)
>> +        free(now_str);
>>      if (uptime_str)
>>          free(uptime_str);
>>      return;
>> @@ -3684,7 +3688,8 @@
>>  {
>>      uint32_t s_time = 0;
>>      uint32_t uptime = 0;
>> -    char *uptime_str = 0;
>> +    char *uptime_str = NULL;
>> +    char *now_str = NULL;
>>  
>>      s_time = libxl_vm_get_start_time(&ctx, domuid);
>>      if (s_time == -1)
>> @@ -3692,9 +3697,10 @@
>>      uptime = now - s_time;
>>      if (short_mode)
>>      {
>> +        now_str = current_time_to_string(now);
>>          uptime_str = uptime_to_string(uptime, 1);
>> -        printf(" %s up %s, %s (%d)\n", current_time_to_string(now),
>> -               uptime_str, libxl_domid_to_name(&ctx, domuid), domuid);
>> +        printf(" %s up %s, %s (%d)\n", now_str, uptime_str,
>> +               libxl_domid_to_name(&ctx, domuid), domuid);
>>      }
>>      else
>>      {
>> @@ -3703,6 +3709,8 @@
>>                 domuid, uptime_str);
>>      }
>>  
>> +    if (now_str)
>> +        free(now_str);
>>      if (uptime_str)
>>          free(uptime_str);
>>      return;
>> diff -r 840f269d95fb tools/libxl/xl_cmdtable.c
>> --- a/tools/libxl/xl_cmdtable.c	Wed May 19 22:59:52 2010 +0100
>> +++ b/tools/libxl/xl_cmdtable.c	Fri May 21 22:56:02 2010 +0800
>> @@ -110,17 +110,13 @@
>>      },
>>      { "mem-max",
>>        &main_memmax,
>> -      "Set the maximum amount reservation for a domain.\n"
>> -      "Units default to kilobytes, but can be suffixed with\n"
>> -      "'b' (bytes), 'k' (KB), 'm' (MB), 'g' (GB) or 't' (TB)",
>> -      "<Domain> <MemKB>",
>> +      "Set the maximum amount reservation for a domain",
>> +      "<Domain> <MemKB['b'[bytes]|'k'[KB]|'m'[MB]|'g'[GB]|'t'[TB]]>",
>>      },
>>      { "mem-set",
>>        &main_memset,
>> -      "Set the current memory usage for a domain.\n"
>> -      "Units default to kilobytes, but can be suffixed with\n"
>> -      "'b' (bytes), 'k' (KB), 'm' (MB), 'g' (GB) or 't' (TB)",
>> -      "<Domain> <MemKB>",
>> +      "Set the current memory usage for a domain",
>> +      "<Domain> <MemKB['b'[bytes]|'k'[KB]|'m'[MB]|'g'[GB]|'t'[TB]]>",
>>      },
>>      { "button-press",
>>        &main_button_press,
>>
>>   
> 
> 
> 


-- 
Regards
Yang Hongyang

  reply	other threads:[~2010-05-24  0:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-21  7:01 [PATCH]xl: Some small fixes to xl Yang Hongyang
2010-05-21 14:26 ` Keir Fraser
2010-05-26  0:55   ` Yang Hongyang
2010-05-21 19:25 ` Jeremy Fitzhardinge
2010-05-24  0:48   ` Yang Hongyang [this message]
2010-05-24  9:16     ` Stefano Stabellini
2010-05-24 10:24       ` Ian Jackson
2010-05-24 10:31         ` Stefano Stabellini
2010-05-24 17:32           ` Jeremy Fitzhardinge
2010-05-26  1:02       ` Yang Hongyang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BF9CCEE.9010300@cn.fujitsu.com \
    --to=yanghy@cn.fujitsu.com \
    --cc=jeremy@goop.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).