* Re: [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back
@ 2016-04-04 16:58 Ian.Jackson
0 siblings, 0 replies; 5+ messages in thread
From: Ian.Jackson @ 2016-04-04 16:58 UTC (permalink / raw)
To: Olaf Hering
Cc: Lars Kurth, Li Zhijian, Changlong Xie, Wei Liu, Ian Campbell,
Wen Congyang, Andrew Cooper, Jiang Yunhong, Dong Eddie,
xen devel, Anthony Perard, Jim Fehlig, Gui Jianfeng,
Shriram Rajagopalan, Yang Hongyang
Olaf Hering writes ("Re: [Xen-devel] [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back"):
> On Mon, Apr 04, Wei Liu wrote:
> > The fix is to patch libvirt. Looking at libvirt code I think I need to
> > patch Makefile.in to pass in an explicit LIBXL_API_VERSION number.
>
> That might be true.
>
> But shouldnt at the same time libxl.h get a change to recognize
> 0x040700? Perhaps this will be part of the release management.
It is on the release checklist. But perhaps we should do it now.
Patch welcome :-).
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v13 00/26] COarse-grain LOck-stepping Virtual Machines for Non-stop Service @ 2016-03-25 6:44 Changlong Xie 2016-03-25 6:44 ` [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back Changlong Xie 0 siblings, 1 reply; 5+ messages in thread From: Changlong Xie @ 2016-03-25 6:44 UTC (permalink / raw) To: xen devel, Konrad Rzeszutek Wilk, Andrew Cooper, Ian Campbell, Ian Jackson, Wei Liu Cc: Lars Kurth, Changlong Xie, Wen Congyang, Li Zhijian, Gui Jianfeng, Jiang Yunhong, Dong Eddie, Anthony Perard, Shriram Rajagopalan, Yang Hongyang This patchset implemented the COLO feature for Xen. For detail/install/use of COLO feature, refer to: http://wiki.xen.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping You can get the codes from here: https://github.com/Pating/xen/tree/changlox/colo_v13 Changlog from v12 to v13 1. Rebase to the upstream xen 2. Address commnets from Ian and Liu Wei. p7, Add A-B p8, Add A-B p10, Add A-B p11, Add A-B p12, Add LOG(ERROR, ) p13, Add A-B p14, Remove libxl__ao_complete(xxx) p15, Add A-B p16, Add A-B p17, Add A-B, replace "-c" with "--colo" for migrate-receive() p19, Add A-B, introduce "switch ... case ..." p21, Add A-B p22, Add A-B p23, replace "forwarddev" with "coloft_fowarddev" p24, Add A-B p25, Add A-B p26, replace "--script" with "--coloft-script" Changlog from v11 to v12 1. Rebase to the upstream xen 2. Address commnets from Ian, Liu Wei and Konard. Removed old p12,p13; introduce a new p13 what is splited out from old p15, introduce a new p19 what is splited out from old p20. p1, add A-B, and will update commit message when "xen-load-devices-state" relevant patch merged on qemu side p3, update comments, add assert() in libxl_domain_create_restore() p4, rename "dup_fd_helper" as "dup_cloexec", add missed newline p5, add A-B p7, remove repeated commit message, update the specification of libxl p8, update the specification of libxc p9, add A-B p10, update commit message, fix blank line issue p12, merged by old p12,p13(restore_callbacks wait_checkpoit/postcopy/suspend), fix blank line issues, update comments about why COLO only supports HVM p13, move stream read manipulations to right place in libxl_internal.h p14, merged by old p12(save_callbacks wait_checkpoint), fix blank line issues, update Copyright(C) p16, add "colo_" prefix for merge_secondary_dirty_bitmap() p17, update COLO description part on man page p18, fix long line issue p19, just introduce colo mode and refactor relevant functions p20, fix repetitive code in libxl__device_disk_from_xs_be(), make colo_port as int, remove unnecessary comments in libxl__build_device_model_args_new(), simplify disk_try_backend() and move the main part to in colo_qdisk_setup() in p21 p21, fix blank line issue, update Copyright(C) p22, merged by old p22,p23, update Copyright(C), add commets for NETLINK_COLO, remove unnecessary '{ }', update url in commit message p23, fix blank line issue, add some comments for "forwarddev", update Copyright(C) p24, introduce COLO_PROXY_CHECKPOINT_TIMEOUT, ASYNC_CALL p26, move colo_proxy_script setup codes to libxl__colo_restore_setup(), introduce long options for main_migrate_receive() Changlog from v10 to v11 1. Rebased to then upstream xen 2. Address comments from Liu Wei p1, update commit message and remove libxl__domain_restore_device_model p4, add A-B p5, update commit message p6, add A-B p7,p8 add email address and direction info p10, merged by old p10,p11 and update comments p11, merged by old p12,p13 and update comments p14,p15 move colo structures and functions into libxl_colo.h, and list callbacks in order, also update commit message p16, merged by old p18,p19,p20 and remove TODOs p17, use original code for checking postcopy return value p18, simplify *if* logic, fix wrong comments, and unset dom_info.quiet in COLO p19, add A-B p20, fix code style, update comments and man page p21,p22,p23,p24 move colo structures and functions into libxl_colo.h Changlog from v9 to v10 1. Rebased to the upstream xen 2. Fix one bug found in the test 3. Merge some patches from prepare series 4. Split patch 5 to two patches(patch 4 and 5) according to the comments from Wei Liu Changlog from v8 to v9: 1. Rebased to the upstream xen 2. Fix some bugs found in the test Changelog from v7 to v8: 1. Rebased to the latest libxl migration v2. Changelog from v6 to v7: 1. Ported to Libxl migration v2 2. Send dirty bitmap from secondary to primary on libxc side 3. Address review comments Changelog from v5 to v6: 1. based on migration v2(libxc) 2. split the patchset into prerequisite patchset and this main patchset. Changelog from v4 to v5: 1. rebase to the latest xen upstream 2. disk replication: blktap2->qdisk 3. nic replication: colo-agent->colo-proxy Changelog from v3 to v4: 1. rebase to newest xen 2. bug fix Changlog from v2 to v3: 1. rebase to newest remus 2. add nic replication support Changlog from v1 to v2: 1. rebase to newest remus 2. add disk replication support Changlong Xie (2): libxl_internal: move stream read manipulations to right place Introduce COLO mode and refactor relevant function Wen Congyang (24): tools/libxl: introduction of libxl__qmp_restore to load qemu state tools/libxl: introduce libxl__domain_common_switch_qemu_logdirty() tools/libxl: Add back channel to allow migration target send data back tools/libxl: Introduce new helper function dup_fd_helper() tools/libx{l,c}: add back channel to libxc docs: add colo readme docs/libxl: Introduce CHECKPOINT_CONTEXT to support migration v2 colo streams libxc/migration: Specification update for DIRTY_PFN_LIST records libxc/migration: export read_record for common use tools/libxl: add back channel support to write stream tools/libxl: add back channel support to read stream secondary vm suspend/resume/checkpoint code primary vm suspend/resume/checkpoint code libxc/restore: support COLO restore libxc/save: support COLO save implement the cmdline for COLO COLO: introduce new API to prepare/start/do/get_error/stop replication Support colo mode for qemu disk COLO: use qemu block replication COLO proxy: implement setup/teardown/preresume/postresume/checkpoint COLO nic: implement COLO nic subkind setup and control colo proxy on primary side setup and control colo proxy on secondary side cmdline switches and config vars to control colo-proxy docs/README.colo | 9 + docs/man/xl.conf.pod.5 | 6 + docs/man/xl.pod.1 | 48 +- docs/misc/xl-disk-configuration.txt | 53 ++ docs/specs/libxc-migration-stream.pandoc | 27 +- docs/specs/libxl-migration-stream.pandoc | 59 +- tools/hotplug/Linux/Makefile | 1 + tools/hotplug/Linux/colo-proxy-setup | 135 ++++ tools/libxc/include/xenguest.h | 41 +- tools/libxc/xc_nomigrate.c | 4 +- tools/libxc/xc_sr_common.c | 80 ++- tools/libxc/xc_sr_common.h | 24 +- tools/libxc/xc_sr_restore.c | 246 +++++-- tools/libxc/xc_sr_save.c | 100 ++- tools/libxc/xc_sr_stream_format.h | 31 +- tools/libxl/Makefile | 4 + tools/libxl/libxl.c | 87 ++- tools/libxl/libxl.h | 29 +- tools/libxl/libxl_colo.h | 143 ++++ tools/libxl/libxl_colo_nic.c | 320 +++++++++ tools/libxl/libxl_colo_proxy.c | 277 ++++++++ tools/libxl/libxl_colo_qdisk.c | 230 +++++++ tools/libxl/libxl_colo_restore.c | 1087 ++++++++++++++++++++++++++++++ tools/libxl/libxl_colo_save.c | 696 +++++++++++++++++++ tools/libxl/libxl_create.c | 90 ++- tools/libxl/libxl_device.c | 11 + tools/libxl/libxl_dm.c | 176 ++++- tools/libxl/libxl_dom_save.c | 103 +-- tools/libxl/libxl_internal.h | 216 ++++-- tools/libxl/libxl_qmp.c | 106 +++ tools/libxl/libxl_remus_disk_drbd.c | 38 +- tools/libxl/libxl_save_callout.c | 53 +- tools/libxl/libxl_save_helper.c | 8 +- tools/libxl/libxl_save_msgs_gen.pl | 13 +- tools/libxl/libxl_sr_stream_format.h | 11 + tools/libxl/libxl_stream_read.c | 106 ++- tools/libxl/libxl_stream_write.c | 100 ++- tools/libxl/libxl_types.idl | 11 + tools/libxl/libxlu_disk_l.l | 17 + tools/libxl/xl.c | 3 + tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 109 ++- tools/libxl/xl_cmdtable.c | 4 +- tools/ocaml/libs/xl/xenlight_stubs.c | 2 +- tools/python/xen/migration/libxc.py | 68 +- tools/python/xen/migration/libxl.py | 9 + 46 files changed, 4618 insertions(+), 374 deletions(-) create mode 100644 docs/README.colo create mode 100755 tools/hotplug/Linux/colo-proxy-setup create mode 100644 tools/libxl/libxl_colo.h create mode 100644 tools/libxl/libxl_colo_nic.c create mode 100644 tools/libxl/libxl_colo_proxy.c create mode 100644 tools/libxl/libxl_colo_qdisk.c create mode 100644 tools/libxl/libxl_colo_restore.c create mode 100644 tools/libxl/libxl_colo_save.c -- 1.9.3 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back 2016-03-25 6:44 [PATCH v13 00/26] COarse-grain LOck-stepping Virtual Machines for Non-stop Service Changlong Xie @ 2016-03-25 6:44 ` Changlong Xie 2016-04-04 12:07 ` Olaf Hering 0 siblings, 1 reply; 5+ messages in thread From: Changlong Xie @ 2016-03-25 6:44 UTC (permalink / raw) To: xen devel, Konrad Rzeszutek Wilk, Andrew Cooper, Ian Campbell, Ian Jackson, Wei Liu Cc: Lars Kurth, Changlong Xie, Wen Congyang, Li Zhijian, Gui Jianfeng, Jiang Yunhong, Dong Eddie, Anthony Perard, Shriram Rajagopalan, Yang Hongyang From: Wen Congyang <wency@cn.fujitsu.com> In COLO mode, secondary needs to send the following data to primary: 1. In libxl Secondary sends the following CHECKPOINT_CONTEXT to primary: CHECKPOINT_SVM_SUSPENDED, CHECKPOINT_SVM_READY and CHECKPOINT_SVM_RESUMED 2. In libxc Secondary sends the dirty pfn list to primary But the io_fd only can be written in primary, and only can be read in secondary. Save recv_fd in domain_suspend_state, and send_fd in domain_create_state. Extend libxl_domain_create_restore API, add a send_fd param to it. Add LIBXL_HAVE_CREATE_RESTORE_SEND_FD to indicate the API change. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Yang Hongyang <hongyang.yang@easystack.cn> Signed-off-by: Changlong Xie <xiecl.fnst@cn.fujitsu.com> Acked-by: Wei Liu <wei.liu2@citrix.com> --- tools/libxl/libxl.c | 3 +-- tools/libxl/libxl.h | 29 ++++++++++++++++++++++++++++- tools/libxl/libxl_create.c | 11 +++++++---- tools/libxl/libxl_internal.h | 2 ++ tools/libxl/xl_cmdimpl.c | 8 +++++++- tools/ocaml/libs/xl/xenlight_stubs.c | 2 +- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 3471c4c..6bc46cb 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -834,7 +834,6 @@ out: static void remus_failover_cb(libxl__egc *egc, libxl__domain_save_state *dss, int rc); -/* TODO: Explicit Checkpoint acknowledgements via recv_fd. */ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info, uint32_t domid, int send_fd, int recv_fd, const libxl_asyncop_how *ao_how) @@ -871,7 +870,7 @@ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info, dss->callback = remus_failover_cb; dss->domid = domid; dss->fd = send_fd; - /* TODO do something with recv_fd */ + dss->recv_fd = recv_fd; dss->type = type; dss->live = 1; dss->debug = 0; diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index f61bc4b..a569286 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -651,6 +651,15 @@ typedef struct libxl__ctx libxl_ctx; #define LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1 /* + * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_SEND_BACK_FD 1 + * + * If this is defined, libxl_domain_create_restore()'s API includes the + * send_back_fd param. This is used only with COLO, for the libxl migration + * back channel; other callers should pass -1. + */ +#define LIBXL_HAVE_DOMAIN_CREATE_RESTORE_SEND_BACK_FD 1 + +/* * LIBXL_HAVE_CREATEINFO_PVH * If this is defined, then libxl supports creation of a PVH guest. */ @@ -1177,6 +1186,7 @@ int libxl_domain_create_new(libxl_ctx *ctx, libxl_domain_config *d_config, LIBXL_EXTERNAL_CALLERS_ONLY; int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config *d_config, uint32_t *domid, int restore_fd, + int send_back_fd, const libxl_domain_restore_params *params, const libxl_asyncop_how *ao_how, const libxl_asyncprogress_how *aop_console_how) @@ -1197,7 +1207,7 @@ int static inline libxl_domain_create_restore_0x040200( libxl_domain_restore_params_init(¶ms); ret = libxl_domain_create_restore( - ctx, d_config, domid, restore_fd, ¶ms, ao_how, aop_console_how); + ctx, d_config, domid, restore_fd, -1, ¶ms, ao_how, aop_console_how); libxl_domain_restore_params_dispose(¶ms); return ret; @@ -1205,6 +1215,23 @@ int static inline libxl_domain_create_restore_0x040200( #define libxl_domain_create_restore libxl_domain_create_restore_0x040200 +#elif defined(LIBXL_API_VERSION) && LIBXL_API_VERSION >= 0x040400 \ + && LIBXL_API_VERSION < 0x040700 + +int static inline libxl_domain_create_restore_0x040400( + libxl_ctx *ctx, libxl_domain_config *d_config, + uint32_t *domid, int restore_fd, + const libxl_domain_restore_params *params, + const libxl_asyncop_how *ao_how, + const libxl_asyncprogress_how *aop_console_how) + LIBXL_EXTERNAL_CALLERS_ONLY +{ + return libxl_domain_create_restore(ctx, d_config, domid, restore_fd, + -1, params, ao_how, aop_console_how); +} + +#define libxl_domain_create_restore libxl_domain_create_restore_0x040400 + #endif int libxl_domain_soft_reset(libxl_ctx *ctx, diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 61b5c01..09f2f13 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -1639,7 +1639,7 @@ static void domain_create_cb(libxl__egc *egc, int rc, uint32_t domid); static int do_domain_create(libxl_ctx *ctx, libxl_domain_config *d_config, - uint32_t *domid, int restore_fd, + uint32_t *domid, int restore_fd, int send_back_fd, const libxl_domain_restore_params *params, const libxl_asyncop_how *ao_how, const libxl_asyncprogress_how *aop_console_how) @@ -1654,6 +1654,7 @@ static int do_domain_create(libxl_ctx *ctx, libxl_domain_config *d_config, libxl_domain_config_init(&cdcs->dcs.guest_config_saved); libxl_domain_config_copy(ctx, &cdcs->dcs.guest_config_saved, d_config); cdcs->dcs.restore_fd = cdcs->dcs.libxc_fd = restore_fd; + cdcs->dcs.send_back_fd = send_back_fd; if (restore_fd > -1) { cdcs->dcs.restore_params = *params; rc = libxl__fd_flags_modify_save(gc, cdcs->dcs.restore_fd, @@ -1832,18 +1833,20 @@ int libxl_domain_create_new(libxl_ctx *ctx, libxl_domain_config *d_config, const libxl_asyncop_how *ao_how, const libxl_asyncprogress_how *aop_console_how) { - return do_domain_create(ctx, d_config, domid, -1, NULL, + return do_domain_create(ctx, d_config, domid, -1, -1, NULL, ao_how, aop_console_how); } int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config *d_config, uint32_t *domid, int restore_fd, + int send_back_fd, const libxl_domain_restore_params *params, const libxl_asyncop_how *ao_how, const libxl_asyncprogress_how *aop_console_how) { - return do_domain_create(ctx, d_config, domid, restore_fd, params, - ao_how, aop_console_how); + assert(send_back_fd == -1); + return do_domain_create(ctx, d_config, domid, restore_fd, send_back_fd, + params, ao_how, aop_console_how); } int libxl_domain_soft_reset(libxl_ctx *ctx, diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index de65d85..42d8bbd 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -3150,6 +3150,7 @@ struct libxl__domain_save_state { uint32_t domid; int fd; int fdfl; /* original flags on fd */ + int recv_fd; libxl_domain_type type; int live; int debug; @@ -3491,6 +3492,7 @@ struct libxl__domain_create_state { libxl_domain_config guest_config_saved; /* vanilla config */ int restore_fd, libxc_fd; int restore_fdfl; /* original flags of restore_fd */ + int send_back_fd; libxl_domain_restore_params restore_params; uint32_t domid_soft_reset; libxl__domain_create_cb *callback; diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index a3610fc..2e64f44 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -159,6 +159,7 @@ struct domain_create { char *extra_config; /* extra config string */ const char *restore_file; int migrate_fd; /* -1 means none */ + int send_back_fd; /* -1 means none */ char **migration_domname_r; /* from malloc */ }; @@ -2796,6 +2797,7 @@ static uint32_t create_domain(struct domain_create *dom_info) int config_len = 0; int restore_fd = -1; int restore_fd_to_close = -1; + int send_back_fd = -1; const libxl_asyncprogress_how *autoconnect_console_how; struct save_file_header hdr; uint32_t domid_soft_reset = INVALID_DOMID; @@ -2813,6 +2815,7 @@ static uint32_t create_domain(struct domain_create *dom_info) if (migrate_fd >= 0) { restore_source = "<incoming migration stream>"; restore_fd = migrate_fd; + send_back_fd = dom_info->send_back_fd; } else { restore_source = restore_file; restore_fd = open(restore_file, O_RDONLY); @@ -3001,7 +3004,7 @@ start: ret = libxl_domain_create_restore(ctx, &d_config, &domid, restore_fd, - ¶ms, + send_back_fd, ¶ms, 0, autoconnect_console_how); libxl_domain_restore_params_dispose(¶ms); @@ -4754,6 +4757,7 @@ static void migrate_receive(int debug, int daemonize, int monitor, dom_info.monitor = monitor; dom_info.paused = 1; dom_info.migrate_fd = recv_fd; + dom_info.send_back_fd = -1; dom_info.migration_domname_r = &migration_domname; dom_info.checkpointed_stream = checkpointed; @@ -4927,6 +4931,7 @@ int main_restore(int argc, char **argv) dom_info.config_file = config_file; dom_info.restore_file = checkpoint_file; dom_info.migrate_fd = -1; + dom_info.send_back_fd = -1; dom_info.vnc = vnc; dom_info.vncautopass = vncautopass; dom_info.console_autoconnect = console_autoconnect; @@ -5394,6 +5399,7 @@ int main_create(int argc, char **argv) dom_info.quiet = quiet; dom_info.config_file = filename; dom_info.migrate_fd = -1; + dom_info.send_back_fd = -1; dom_info.vnc = vnc; dom_info.vncautopass = vncautopass; dom_info.console_autoconnect = console_autoconnect; diff --git a/tools/ocaml/libs/xl/xenlight_stubs.c b/tools/ocaml/libs/xl/xenlight_stubs.c index 4133527..98b52b9 100644 --- a/tools/ocaml/libs/xl/xenlight_stubs.c +++ b/tools/ocaml/libs/xl/xenlight_stubs.c @@ -538,7 +538,7 @@ value stub_libxl_domain_create_restore(value ctx, value domain_config, value par caml_enter_blocking_section(); ret = libxl_domain_create_restore(CTX, &c_dconfig, &c_domid, restore_fd, - &c_params, ao_how, NULL); + -1, &c_params, ao_how, NULL); caml_leave_blocking_section(); free(ao_how); -- 1.9.3 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back 2016-03-25 6:44 ` [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back Changlong Xie @ 2016-04-04 12:07 ` Olaf Hering 2016-04-04 13:02 ` Wei Liu 0 siblings, 1 reply; 5+ messages in thread From: Olaf Hering @ 2016-04-04 12:07 UTC (permalink / raw) To: Changlong Xie Cc: Lars Kurth, Li Zhijian, Wei Liu, Ian Campbell, Wen Congyang, Andrew Cooper, Jiang Yunhong, Ian Jackson, xen devel, Shriram Rajagopalan, Dong Eddie, Gui Jianfeng, Anthony Perard, Yang Hongyang On Fri, Mar 25, Changlong Xie wrote: > +#elif defined(LIBXL_API_VERSION) && LIBXL_API_VERSION >= 0x040400 \ > + && LIBXL_API_VERSION < 0x040700 Is this supposed to work? libvirt.git fails to build now: libxl/libxl_domain.c: In function 'libxlDomainStart': libxl/libxl_domain.c:1077: warning: passing argument 5 of 'libxl_domain_create_restore' makes integer from pointer without a cast libxl/libxl_domain.c:1077: warning: passing argument 7 of 'libxl_domain_create_restore' from incompatible pointer type libxl/libxl_domain.c:1077: error: too few arguments to function 'libxl_domain_create_restore' make[3]: *** [libxl/libvirt_driver_libxl_impl_la-libxl_domain.lo] Error 1 Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back 2016-04-04 12:07 ` Olaf Hering @ 2016-04-04 13:02 ` Wei Liu 2016-04-04 15:29 ` Olaf Hering 0 siblings, 1 reply; 5+ messages in thread From: Wei Liu @ 2016-04-04 13:02 UTC (permalink / raw) To: Olaf Hering Cc: Lars Kurth, Li Zhijian, Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Andrew Cooper, Jiang Yunhong, Ian Jackson, xen devel, Shriram Rajagopalan, Jim Fehlig, Dong Eddie, Gui Jianfeng, Anthony Perard, Yang Hongyang CC Jim On Mon, Apr 04, 2016 at 02:07:28PM +0200, Olaf Hering wrote: > On Fri, Mar 25, Changlong Xie wrote: > > > +#elif defined(LIBXL_API_VERSION) && LIBXL_API_VERSION >= 0x040400 \ > > + && LIBXL_API_VERSION < 0x040700 > > Is this supposed to work? libvirt.git fails to build now: > > libxl/libxl_domain.c: In function 'libxlDomainStart': > libxl/libxl_domain.c:1077: warning: passing argument 5 of 'libxl_domain_create_restore' makes integer from pointer without a cast > libxl/libxl_domain.c:1077: warning: passing argument 7 of 'libxl_domain_create_restore' from incompatible pointer type > libxl/libxl_domain.c:1077: error: too few arguments to function 'libxl_domain_create_restore' > make[3]: *** [libxl/libvirt_driver_libxl_impl_la-libxl_domain.lo] Error 1 > From the look of it that's because libvirt doesn't have LIBXL_API_VERSION defined before including libxl.h, so it always gets the latest API. The fix is to patch libvirt. Looking at libvirt code I think I need to patch Makefile.in to pass in an explicit LIBXL_API_VERSION number. Jim, does that sound right? Wei. > Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back 2016-04-04 13:02 ` Wei Liu @ 2016-04-04 15:29 ` Olaf Hering 0 siblings, 0 replies; 5+ messages in thread From: Olaf Hering @ 2016-04-04 15:29 UTC (permalink / raw) To: Wei Liu Cc: Lars Kurth, Li Zhijian, Changlong Xie, Ian Campbell, Wen Congyang, Andrew Cooper, Jiang Yunhong, Ian Jackson, xen devel, Anthony Perard, Jim Fehlig, Dong Eddie, Gui Jianfeng, Shriram Rajagopalan, Yang Hongyang On Mon, Apr 04, Wei Liu wrote: > The fix is to patch libvirt. Looking at libvirt code I think I need to > patch Makefile.in to pass in an explicit LIBXL_API_VERSION number. That might be true. But shouldnt at the same time libxl.h get a change to recognize 0x040700? Perhaps this will be part of the release management. For the time being this change fixes it for me: +++ libvirt.spec (working copy) @@ -1163,6 +1163,7 @@ autoreconf -f -i export CFLAGS="$RPM_OPT_FLAGS" +export CFLAGS="$CFLAGS -DLIBXL_API_VERSION=0x040500" %configure --disable-static --with-pic \ %{?_without_xen} \ %{?_without_qemu} \ Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-04-04 16:58 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-04-04 16:58 [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back Ian.Jackson -- strict thread matches above, loose matches on Subject: below -- 2016-03-25 6:44 [PATCH v13 00/26] COarse-grain LOck-stepping Virtual Machines for Non-stop Service Changlong Xie 2016-03-25 6:44 ` [PATCH v13 03/26] tools/libxl: Add back channel to allow migration target send data back Changlong Xie 2016-04-04 12:07 ` Olaf Hering 2016-04-04 13:02 ` Wei Liu 2016-04-04 15:29 ` Olaf Hering
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).