All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Ian Jackson <ian.jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH v3 09/32] libxl: switch HVM domain building to use xc_dom_* helpers
Date: Tue, 28 Jul 2015 16:26:15 +0200	[thread overview]
Message-ID: <55B79107.3030402@citrix.com> (raw)
In-Reply-To: <20150728112239.GL5111@zion.uk.xensource.com>

El 28/07/15 a les 13.22, Wei Liu ha escrit:
> On Fri, Jul 03, 2015 at 01:34:47PM +0200, Roger Pau Monne wrote:
>> Now that we have all the code in place HVM domain building in libxl can be
>> switched to use the xc_dom_* family of functions, just like they are used in
>> order to build PV guests.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>> Cc: Ian Campbell <ian.campbell@citrix.com>
>> Cc: Wei Liu <wei.liu2@citrix.com>
> 
> Mostly looks good. Some nits below.

Thanks for the review.

>> ---
>>  tools/libxl/libxl_dom.c      | 224 +++++++++++++++++++++++++------------------
>>  tools/libxl/libxl_internal.h |   2 +-
>>  tools/libxl/libxl_vnuma.c    |  12 ++-
>>  3 files changed, 139 insertions(+), 99 deletions(-)
>>
>> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
>> index 2bae277..480b7e7 100644
>> --- a/tools/libxl/libxl_dom.c
>> +++ b/tools/libxl/libxl_dom.c
>> @@ -609,6 +609,64 @@ static int set_vnuma_info(libxl__gc *gc, uint32_t domid,
>>      return rc;
>>  }
>>  
>> +static int libxl__build_dom(libxl__gc *gc, uint32_t domid,
>> +             libxl_domain_build_info *info, libxl__domain_build_state *state,
>> +             struct xc_dom_image *dom)
>> +{
>> +    libxl_ctx *ctx = libxl__gc_owner(gc);
> 
> No need to have this line.

But ctx is needed...

>> +    uint64_t mem_kb;
>> +    int ret;
>> +
>> +    if ( (ret = xc_dom_boot_xen_init(dom, ctx->xch, domid)) != 0 ) {
                                              ^ here.
>> +        LOGE(ERROR, "xc_dom_boot_xen_init failed");
>> +        goto out;
>> +    }
>> +#ifdef GUEST_RAM_BASE
>> +    if ( (ret = xc_dom_rambase_init(dom, GUEST_RAM_BASE)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_rambase failed");
>> +        goto out;
>> +    }
>> +#endif
>> +    if ( (ret = xc_dom_parse_image(dom)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_parse_image failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = libxl__arch_domain_init_hw_description(gc, info, state, dom)) != 0 ) {
>> +        LOGE(ERROR, "libxl__arch_domain_init_hw_description failed");
>> +        goto out;
>> +    }
>> +
>> +    mem_kb = dom->container_type == XC_DOM_HVM_CONTAINER ?
>> +             (info->max_memkb - info->video_memkb) : info->target_memkb;
>> +    if ( (ret = xc_dom_mem_init(dom, mem_kb / 1024)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_mem_init failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = xc_dom_boot_mem_init(dom)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_boot_mem_init failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = libxl__arch_domain_finalise_hw_description(gc, info, dom)) != 0 ) {
>> +        LOGE(ERROR, "libxl__arch_domain_finalise_hw_description failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = xc_dom_build_image(dom)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_build_image failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = xc_dom_boot_image(dom)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_boot_image failed");
>> +        goto out;
>> +    }
>> +    if ( (ret = xc_dom_gnttab_init(dom)) != 0 ) {
>> +        LOGE(ERROR, "xc_dom_gnttab_init failed");
>> +        goto out;
>> +    }
>> +
>> +out:
>> +    return ret;
> 
> Please translate libxc error code to libxl error code.

Done, I have however just done:

return ret != 0 ? ERROR_FAIL : 0;

Not sure if we need/want a more complex error code translation here.

>> +}
>> +
>>  int libxl__build_pv(libxl__gc *gc, uint32_t domid,
>>               libxl_domain_build_info *info, libxl__domain_build_state *state)
>>  {
>> @@ -699,48 +757,9 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid,
>>              dom->vnode_to_pnode[i] = info->vnuma_nodes[i].pnode;
>>      }
>>  
> [...]
>>      }
>>  
>> @@ -919,50 +943,60 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
>>                libxl__domain_build_state *state)
>>  {
>>      libxl_ctx *ctx = libxl__gc_owner(gc);
>> -    struct xc_hvm_build_args args = {};
>> -    int ret, rc = ERROR_FAIL;
>> -    uint64_t mmio_start, lowmem_end, highmem_end;
>> +    int ret;
> 
> This should be rc.

Right, we don't call any libxc functions directly any longer, so only rc
should be used.

Roger.

  reply	other threads:[~2015-07-28 14:26 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-03 11:34 [PATCH v3 00/32] Introduce HVM without dm and new boot ABI Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 01/32] libxc: split x86 HVM setup_guest into smaller logical functions Roger Pau Monne
2015-07-06 10:45   ` Andrew Cooper
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 02/32] libxc: unify xc_dom_p2m_{host/guest} Roger Pau Monne
2015-07-06 10:49   ` Andrew Cooper
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 03/32] libxc: introduce the notion of a container type Roger Pau Monne
2015-07-06 12:01   ` Andrew Cooper
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 04/32] libxc: introduce a domain loader for HVM guest firmware Roger Pau Monne
2015-07-06 12:11   ` Andrew Cooper
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 05/32] libxc: make arch_setup_meminit a xc_dom_arch hook Roger Pau Monne
2015-07-06 12:23   ` Andrew Cooper
2015-07-27 10:40     ` Roger Pau Monné
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 06/32] libxc: make arch_setup_boot{init/late} xc_dom_arch hooks Roger Pau Monne
2015-07-06 12:27   ` Andrew Cooper
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 07/32] xen/x86: fix arch_set_info_guest for HVM guests Roger Pau Monne
2015-07-06 12:58   ` Andrew Cooper
2015-07-23 10:14     ` Roger Pau Monné
2015-07-10 18:39   ` Konrad Rzeszutek Wilk
2015-07-10 18:47   ` Konrad Rzeszutek Wilk
2015-07-23 10:17     ` Roger Pau Monné
2015-07-13 14:01   ` Jan Beulich
2015-07-23 10:25     ` Roger Pau Monné
2015-07-23 11:29       ` Jan Beulich
2015-07-23 11:41         ` Ian Campbell
2015-07-23 15:10           ` Roger Pau Monné
2015-07-23 15:32             ` Jan Beulich
2015-07-23 15:48               ` Roger Pau Monné
2015-07-23 15:58                 ` Jan Beulich
2015-07-23 16:00                 ` Ian Campbell
2015-07-23 16:15                   ` Andrew Cooper
2015-07-23 16:19                     ` Jan Beulich
2015-07-23 16:49                       ` Andrew Cooper
2015-07-23 17:06                         ` Roger Pau Monné
2015-07-23 16:56                       ` Roger Pau Monné
2015-07-23 17:12                         ` Andrew Cooper
2015-07-24  8:22                           ` Jan Beulich
2015-07-24  9:59                             ` Roger Pau Monné
2015-07-24 10:46                               ` Jan Beulich
2015-07-24 12:11                                 ` Roger Pau Monné
2015-07-24 12:44                                   ` Jan Beulich
2015-07-24 15:26                                     ` Roger Pau Monné
2015-07-24 15:49                                       ` Jan Beulich
2015-07-24 16:54                                         ` Roger Pau Monné
2015-07-24 17:36                                           ` Konrad Rzeszutek Wilk
2015-07-27 11:55                                             ` Roger Pau Monné
2015-08-03 16:55                                           ` Andrew Cooper
2015-08-03 17:31                                             ` Roger Pau Monné
2015-08-04 18:08                                               ` Andrew Cooper
2015-08-05  9:53                                                 ` Roger Pau Monné
2015-08-05 15:39                                                   ` Andrew Cooper
2015-08-05 16:40                                                     ` Roger Pau Monné
2015-08-05 16:46                                                       ` Andrew Cooper
2015-08-05 17:11                                                         ` Roger Pau Monné
2015-08-05 19:00                                                           ` Andrew Cooper
2015-08-07 12:15                                                           ` Tim Deegan
2015-08-11  7:26                                                 ` Jan Beulich
2015-07-24 11:11                               ` Andrew Cooper
2015-07-24 11:28                                 ` Ian Campbell
2015-07-24 11:49                                   ` Jan Beulich
2015-07-24 11:46                                 ` Jan Beulich
2015-07-24 11:49                                 ` Roger Pau Monné
2015-07-24 12:41                                   ` Jan Beulich
2015-07-24 15:28                                     ` Roger Pau Monné
2015-07-03 11:34 ` [PATCH v3 08/32] libxc: introduce a xc_dom_arch for hvm-3.0-x86_32 guests Roger Pau Monne
2015-07-06 13:40   ` Andrew Cooper
2015-07-03 11:34 ` [PATCH v3 09/32] libxl: switch HVM domain building to use xc_dom_* helpers Roger Pau Monne
2015-07-28 11:22   ` Wei Liu
2015-07-28 14:26     ` Roger Pau Monné [this message]
2015-07-28 14:29       ` Wei Liu
2015-07-03 11:34 ` [PATCH v3 10/32] libxc: remove dead HVM building code Roger Pau Monne
2015-07-06 13:46   ` Andrew Cooper
2015-07-23 10:27     ` Roger Pau Monné
2015-07-03 11:34 ` [PATCH v3 11/32] xen/x86: add bitmap of enabled emulated devices Roger Pau Monne
2015-07-06 14:10   ` Andrew Cooper
2015-07-07  7:26     ` Jan Beulich
2015-07-23 10:29     ` Roger Pau Monné
2015-07-03 11:34 ` [PATCH v3 12/32] xen/x86: allow disabling the emulated local apic Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 13/32] xen/x86: allow disabling the emulated HPET Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 14/32] xen/x86: allow disabling the pmtimer Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 15/32] xen/x86: allow disabling the emulated RTC Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 16/32] xen/x86: allow disabling the emulated IO APIC Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 17/32] xen/x86: allow disabling the emulated PIC Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 18/32] xen/x86: allow disabling the emulated pmu Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 19/32] xen/x86: allow disabling the emulated VGA Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 20/32] xen/x86: allow disabling the emulated IOMMU Roger Pau Monne
2015-07-03 11:34 ` [PATCH v3 21/32] xen/x86: allow disabling all emulated devices inside of Xen Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 22/32] elfnotes: intorduce a new PHYS_ENTRY elfnote Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 23/32] libxc: allow creating domains without emulated devices Roger Pau Monne
2015-07-28 11:22   ` Wei Liu
2015-07-03 11:35 ` [PATCH v3 24/32] xen: allow HVM guests to use XENMEM_memory_map Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 25/32] xen/x86: allow HVM guests to use hypercalls to bring up vCPUs Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 26/32] xenconsole: try to attach to PV console if HVM fails Roger Pau Monne
2015-07-14 13:46   ` Stefano Stabellini
2015-07-23 10:30     ` Roger Pau Monné
2015-07-03 11:35 ` [PATCH v3 27/32] libxc: change the position of the special pages Roger Pau Monne
2015-07-03 15:36   ` Roger Pau Monné
2015-07-10 19:06     ` Konrad Rzeszutek Wilk
2015-07-23 10:42       ` Roger Pau Monné
2015-07-03 11:35 ` [PATCH v3 28/32] libxc/xen: introduce HVM_PARAM_CMDLINE_PFN Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 29/32] libxc/xen: introduce HVM_PARAM_FIRST_FREE_PFN Roger Pau Monne
2015-07-10 19:05   ` Konrad Rzeszutek Wilk
2015-07-23 10:46     ` Roger Pau Monné
2015-07-03 11:35 ` [PATCH v3 30/32] libxc/xen: introduce HVM_PARAM_MODLIST_PFN Roger Pau Monne
2015-07-03 11:35 ` [PATCH v3 31/32] libxc: switch xc_dom_elfloader to be used with HVMlite domains Roger Pau Monne
2015-07-10 19:07   ` Konrad Rzeszutek Wilk
2015-07-23 10:48     ` Roger Pau Monné
2015-07-03 11:35 ` [PATCH v3 32/32] libxl: allow the creation of HVM domains without a device model Roger Pau Monne
2015-07-28 11:22   ` Wei Liu
2015-07-29 14:43     ` Roger Pau Monné
2015-07-29 14:50       ` Wei Liu
2015-07-29 14:58       ` Andrew Cooper
2015-07-03 16:19 ` [PATCH v3 00/32] Introduce HVM without dm and new boot ABI David Vrabel
2015-07-03 16:36   ` Roger Pau Monné
2015-07-10 17:44     ` Konrad Rzeszutek Wilk
2015-07-10 18:01       ` Konrad Rzeszutek Wilk

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=55B79107.3030402@citrix.com \
    --to=roger.pau@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.