WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH]xl: Some small fixes to xl

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] [PATCH]xl: Some small fixes to xl
From: Yang Hongyang <yanghy@xxxxxxxxxxxxxx>
Date: Mon, 24 May 2010 08:48:46 +0800
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Sun, 23 May 2010 17:47:35 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4BF6DE1D.6070904@xxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4BF62FB9.40008@xxxxxxxxxxxxxx> <4BF6DE1D.6070904@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100423 Thunderbird/3.0.4
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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel