From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhiguo Subject: [PATCH] xl: Fix missing memory target in xenstore Date: Fri, 14 May 2010 10:15:15 +0800 Message-ID: <4BECB233.9040300@cn.fujitsu.com> References: <4BE3DFBE.2010901@cn.fujitsu.com> <19428.20752.717993.453216@mariner.uk.xensource.com> <4BE67620.7010803@cn.fujitsu.com> <4BEA4A13.3000801@cn.fujitsu.com> <4BEA4D81.40908@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4BEA4D81.40908@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Jackson , Stefano Stabellini Cc: "xen-devel@lists.xensource.com" , Keir Fraser List-Id: xen-devel@lists.xenproject.org Yu Zhiguo wrote: > > It seems than /local/domain/$domid/memory/target cannot be created when use 'xl create', > only /local/domain/0/memory/static-max is existent. > Isn't it a bug? I'll check the code. > > I think it should be created like static-max. > * memory/target can be created when use 'xm create' /local/domain/$domid/memory/target should be created in xenstore when domain is created. Signed-off-by: Yu Zhiguo diff -r d77a88f938c6 -r 3b473b9417e9 tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Tue May 11 14:05:28 2010 +0100 +++ b/tools/libxl/libxl_dom.c Fri May 14 18:15:02 2010 +0800 @@ -100,22 +100,22 @@ xc_cpuid_apply_policy(ctx->xch, domid); #endif - ents = libxl_calloc(ctx, (10 + info->max_vcpus) * 2, sizeof(char *)); + ents = libxl_calloc(ctx, (12 + info->max_vcpus) * 2, sizeof(char *)); ents[0] = "memory/static-max"; ents[1] = libxl_sprintf(ctx, "%d", info->max_memkb); ents[2] = "memory/target"; ents[3] = libxl_sprintf(ctx, "%d", info->target_memkb); - ents[2] = "memory/videoram"; - ents[3] = libxl_sprintf(ctx, "%d", info->video_memkb); - ents[4] = "domid"; - ents[5] = libxl_sprintf(ctx, "%d", domid); - ents[6] = "store/port"; - ents[7] = libxl_sprintf(ctx, "%"PRIu32, state->store_port); - ents[8] = "store/ring-ref"; - ents[9] = libxl_sprintf(ctx, "%lu", state->store_mfn); + ents[4] = "memory/videoram"; + ents[5] = libxl_sprintf(ctx, "%d", info->video_memkb); + ents[6] = "domid"; + ents[7] = libxl_sprintf(ctx, "%d", domid); + ents[8] = "store/port"; + ents[9] = libxl_sprintf(ctx, "%"PRIu32, state->store_port); + ents[10] = "store/ring-ref"; + ents[11] = libxl_sprintf(ctx, "%lu", state->store_mfn); for (i = 0; i < info->max_vcpus; i++) { - ents[10+(i*2)] = libxl_sprintf(ctx, "cpu/%d/availability", i); - ents[10+(i*2)+1] = (i && info->cur_vcpus && (i >= info->cur_vcpus)) + ents[12+(i*2)] = libxl_sprintf(ctx, "cpu/%d/availability", i); + ents[12+(i*2)+1] = (i && info->cur_vcpus && (i >= info->cur_vcpus)) ? "offline" : "online"; }