From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194601; cv=none; d=zohomail.com; s=zohoarc; b=BKzYfnDT6R6EvXr/KhW2+U9RY6/SQJTPKyIRVzRUCnugqtdCpDfIMrASIfim08ytpADwD2o8slXuKUjwnQfN/G3PnNOfWiX+zWMxdZJgVshjBOeMRsL7w2jt+9Wn5oknXjctCscnbHuWIZBwbWBcz8gBBV3Sm8eogqBOwTiLd50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194601; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wlKM+ZdcSbGCACu8UOFLJMmFOnvjI7XIJ9qV5fQpxAQ=; b=D/uWHkboM0VDrS73rlHJXErsk4+JC+ed8+CUzYa93cO5Klim6Pl13kkmdJSWM14fXBPol9FYm4EM9MqVxLcKxILCuqVRpQbCvqacVJ8VNuO7iCTJDl1MTy4RKNmNymw7bNfmiDcSQHw+j+sghL1vzuqabCvZQYhKgpkRQ3cn7G8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 161919460175241.76291694504596; Fri, 23 Apr 2021 09:16:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116484.222320 (Exim 4.92) (envelope-from ) id 1lZyTN-00084D-Tu; Fri, 23 Apr 2021 16:16:05 +0000 Received: by outflank-mailman (output) from mailman id 116484.222320; Fri, 23 Apr 2021 16:16:05 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTN-000846-Qp; Fri, 23 Apr 2021 16:16:05 +0000 Received: by outflank-mailman (input) for mailman id 116484; Fri, 23 Apr 2021 16:16:04 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTM-00082v-3w for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:04 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c77d37c6-6766-4ce5-bcd9-5c044828a554; Fri, 23 Apr 2021 16:16:02 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c77d37c6-6766-4ce5-bcd9-5c044828a554 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194562; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FsT8vvDcYT5FDetvhVj8ocsH//yAfXcxWD8SI48U9Oc=; b=af1Kn1zU4PT+EiHdKiX0DwSAZi/kxmMa1Fivg58kIWrrDEUCaDWJraHp 88367FZNymuR5ICSlnWqGhjk36IJu08cOdxo1qwFad/GeDbxzl0rfTXO3 1o2ts7TwkqgBnQlTneHZQLbkYdNyquhUodEbGGVbdgrX22wGz42my82Uj 8=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: 5C9moXt+/ueguOQHh65Yi4Tfu06nqZm3bcHQVpj5Ncf4XWyMMHKjrUviqsmf8bwgAWCVn5AIl4 eE2VMEC1qKiouq5OLGpX1hS+nRIiJRGsiRETlVN3J7Qttid5fcZ70zBZVpcLuUNmOpjcJXHwR6 SCRaQRx8tdy+/fJ24ddxFBYDtyOK8Q4oRuxs0KhJY49jEaFeh4NowqpM9iO1Gw6sIFqtd/O9uV C/xeyuGz5knKhTrGFGz2DP71dTVmykYhMUUqlfk4c6v1y8TrFaFlUpWJJjmtJRyQwXkt8TSm+A 7VM= X-SBRS: 5.1 X-MesageID: 42285498 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:qwi5hK5NlCPQPmYwiwPXwE3XdLJzesId70hD6mlaY3VuHPCwvc aogfgdyFvIkz4XQn4tgpStP6OHTHPa+/dOkO8sFJ2lWxTrv3btEZF64eLZskXdMgD36+I178 ddWodkDtmYNzRHpOb8pDK1CtMxhOSAmZrY4Nv261dIYUVUZ7p77wF/YzzrdXFeYAVdH5I2GN 69y6N81lmdUE8aZMi6GXUJNtKrz7ag+a7OWhIICwUq7wODl1qTmdrHOiOVwwsEVHd3yaoimF K16jDR3LmpsP2w13bntlP70pI+orTc4+oGIMSNj8QPQw+c6DqVWA== X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42285498" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 1/8] libxl: Replace deprecated QMP command by "query-cpus-fast" Date: Fri, 23 Apr 2021 17:15:51 +0100 Message-ID: <20210423161558.224367-2-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" We use the deprecated QMP command "query-cpus" which is removed in the QEMU 6.0 release. There's a replacement which is "query-cpus-fast", and have been available since QEMU 2.12 (April 2018). This patch try the new command first and when the command isn't available, it fall back to the deprecated one so libxl still works with older QEMU versions. Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- Notes: This is v2 of '[XEN PATCH for-4.15] libxl: Replace deprecated QMP command by "query-cpus-fast"' as the patch never made it into the release. =20 changes: - introduce a fallback for when the new command isn't available. tools/libs/light/libxl_domain.c | 103 ++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 5 deletions(-) diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domai= n.c index 5d4ec9071160..8c003aa7cb04 100644 --- a/tools/libs/light/libxl_domain.c +++ b/tools/libs/light/libxl_domain.c @@ -1740,6 +1740,35 @@ static int libxl__set_vcpuonline_xenstore(libxl__gc = *gc, uint32_t domid, return rc; } =20 +static int qmp_parse_query_cpus_fast(libxl__gc *gc, + libxl_domid domid, + const libxl__json_object *response, + libxl_bitmap *const map) +{ + int i; + const libxl__json_object *cpu; + + libxl_bitmap_set_none(map); + /* Parse response to QMP command "query-cpus-fast": + * [ { 'cpu-index': 'int',...} ] + */ + for (i =3D 0; (cpu =3D libxl__json_array_get(response, i)); i++) { + unsigned int cpu_index; + const libxl__json_object *o; + + o =3D libxl__json_map_get("cpu-index", cpu, JSON_INTEGER); + if (!o) { + LOGD(ERROR, domid, "Failed to retrieve CPU index."); + return ERROR_QEMU_API; + } + + cpu_index =3D libxl__json_object_get_integer(o); + libxl_bitmap_set(map, cpu_index); + } + + return 0; +} + static int qmp_parse_query_cpus(libxl__gc *gc, libxl_domid domid, const libxl__json_object *response, @@ -1778,8 +1807,13 @@ typedef struct set_vcpuonline_state { int index; /* for loop on final_map */ } set_vcpuonline_state; =20 +static void set_vcpuonline_qmp_cpus_fast_queried(libxl__egc *, + libxl__ev_qmp *, const libxl__json_object *, int rc); static void set_vcpuonline_qmp_cpus_queried(libxl__egc *, libxl__ev_qmp *, const libxl__json_object *, int rc); +static void set_vcpuonline_qmp_query_cpus_parse(libxl__egc *, + libxl__ev_qmp *qmp, const libxl__json_object *, + bool query_cpus_fast, int rc); static void set_vcpuonline_qmp_add_cpu(libxl__egc *, libxl__ev_qmp *, const libxl__json_object *response, int rc); static void set_vcpuonline_timeout(libxl__egc *egc, @@ -1840,8 +1874,8 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t dom= id, set_vcpuonline_timeout, LIBXL_QMP_CMD_TIMEOUT * 1000); if (rc) goto out; - qmp->callback =3D set_vcpuonline_qmp_cpus_queried; - rc =3D libxl__ev_qmp_send(egc, qmp, "query-cpus", NULL); + qmp->callback =3D set_vcpuonline_qmp_cpus_fast_queried; + rc =3D libxl__ev_qmp_send(egc, qmp, "query-cpus-fast", NULL); if (rc) goto out; return AO_INPROGRESS; default: @@ -1860,11 +1894,39 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t d= omid, return AO_INPROGRESS; } =20 +static void set_vcpuonline_qmp_cpus_fast_queried(libxl__egc *egc, + libxl__ev_qmp *qmp, const libxl__json_object *response, int rc) +{ + EGC_GC; + set_vcpuonline_state *svos =3D CONTAINER_OF(qmp, *svos, qmp); + + if (rc =3D=3D ERROR_QMP_COMMAND_NOT_FOUND) { + /* Try again, we probably talking to a QEMU older than 2.12 */ + qmp->callback =3D set_vcpuonline_qmp_cpus_queried; + rc =3D libxl__ev_qmp_send(egc, qmp, "query-cpus", NULL); + if (rc) goto out; + return; + } + +out: + set_vcpuonline_qmp_query_cpus_parse(egc, qmp, response, true, rc); +} + static void set_vcpuonline_qmp_cpus_queried(libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, int rc) { EGC_GC; set_vcpuonline_state *svos =3D CONTAINER_OF(qmp, *svos, qmp); + + set_vcpuonline_qmp_query_cpus_parse(egc, qmp, response, false, rc); +} + +static void set_vcpuonline_qmp_query_cpus_parse(libxl__egc *egc, + libxl__ev_qmp *qmp, const libxl__json_object *response, + bool query_cpus_fast, int rc) +{ + EGC_GC; + set_vcpuonline_state *svos =3D CONTAINER_OF(qmp, *svos, qmp); int i; libxl_bitmap current_map; =20 @@ -1876,7 +1938,11 @@ static void set_vcpuonline_qmp_cpus_queried(libxl__e= gc *egc, if (rc) goto out; =20 libxl_bitmap_alloc(CTX, ¤t_map, svos->info.vcpu_max_id + 1); - rc =3D qmp_parse_query_cpus(gc, qmp->domid, response, ¤t_map); + if (query_cpus_fast) { + rc =3D qmp_parse_query_cpus_fast(gc, qmp->domid, response, ¤= t_map); + } else { + rc =3D qmp_parse_query_cpus(gc, qmp->domid, response, ¤t_map= ); + } if (rc) goto out; =20 libxl_bitmap_copy_alloc(CTX, final_map, svos->cpumap); @@ -2121,6 +2187,9 @@ typedef struct { =20 static void retrieve_domain_configuration_lock_acquired( libxl__egc *egc, libxl__ev_slowlock *, int rc); +static void retrieve_domain_configuration_cpu_fast_queried( + libxl__egc *egc, libxl__ev_qmp *qmp, + const libxl__json_object *response, int rc); static void retrieve_domain_configuration_cpu_queried( libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, int rc); @@ -2198,8 +2267,8 @@ static void retrieve_domain_configuration_lock_acquir= ed( if (rc) goto out; libxl_bitmap_alloc(CTX, &rdcs->qemuu_cpus, d_config->b_info.max_vcpus); - rdcs->qmp.callback =3D retrieve_domain_configuration_cpu_queried; - rc =3D libxl__ev_qmp_send(egc, &rdcs->qmp, "query-cpus", NULL); + rdcs->qmp.callback =3D retrieve_domain_configuration_cpu_fast_quer= ied; + rc =3D libxl__ev_qmp_send(egc, &rdcs->qmp, "query-cpus-fast", NULL= ); if (rc) goto out; has_callback =3D true; } @@ -2210,6 +2279,30 @@ static void retrieve_domain_configuration_lock_acqui= red( retrieve_domain_configuration_end(egc, rdcs, rc); } =20 +static void retrieve_domain_configuration_cpu_fast_queried( + libxl__egc *egc, libxl__ev_qmp *qmp, + const libxl__json_object *response, int rc) +{ + EGC_GC; + retrieve_domain_configuration_state *rdcs =3D + CONTAINER_OF(qmp, *rdcs, qmp); + + if (rc =3D=3D ERROR_QMP_COMMAND_NOT_FOUND) { + /* Try again, we probably talking to a QEMU older than 2.12 */ + rdcs->qmp.callback =3D retrieve_domain_configuration_cpu_queried; + rc =3D libxl__ev_qmp_send(egc, &rdcs->qmp, "query-cpus", NULL); + if (rc) goto out; + return; + } + + if (rc) goto out; + + rc =3D qmp_parse_query_cpus_fast(gc, qmp->domid, response, &rdcs->qemu= u_cpus); + +out: + retrieve_domain_configuration_end(egc, rdcs, rc); +} + static void retrieve_domain_configuration_cpu_queried( libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, int rc) --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194599; cv=none; d=zohomail.com; s=zohoarc; b=OTdlrQFEVFD3mYY7R4QSyof9/USo4B9TUvzm0uVD37fj+OTUzXvcwPakMd8T+akwcZKohBb/DqW5bmR9vAHhbNFvaC3xivKFW39yem+NLqGeqQ8KJ5npTYkOusPrFwvCyjGRH7ndfBVpm0FV7W029TdDiPvwx9neRFbSvs4kbs8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194599; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4glDPrT7R5WfwY68w1CMk+F2e4bGpm0xrgX923AetcM=; b=auiQTh/tsLf5tahzD0ZCRXcU8mO1E91JEPxmyxmbs1u9k515U8Dk/R5SroiT12aWlGk6sQlGNc2PNMaXkR8Tz+ckkhs+CxRsBcNnhaaKuDVSHfE69mTb5csd9bA9WS7ma36ytpe1p5Uzzd0QyJ/k+XsqMwvVtobFCiJcqNu/UTY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194599425440.7628919571956; Fri, 23 Apr 2021 09:16:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116485.222332 (Exim 4.92) (envelope-from ) id 1lZyTS-00086T-5A; Fri, 23 Apr 2021 16:16:10 +0000 Received: by outflank-mailman (output) from mailman id 116485.222332; Fri, 23 Apr 2021 16:16:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTS-00086L-27; Fri, 23 Apr 2021 16:16:10 +0000 Received: by outflank-mailman (input) for mailman id 116485; Fri, 23 Apr 2021 16:16:08 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTQ-00082q-GN for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:08 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 40f9f8eb-a3c7-474f-bd65-2b74a9c96a92; Fri, 23 Apr 2021 16:16:03 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 40f9f8eb-a3c7-474f-bd65-2b74a9c96a92 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194563; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/0JVnuCD1kTyKWnL2fFlRW6M8QY2OnK/3LpLBIlE20A=; b=ZD1tStB6+hgq88/ltjY/kt5ZizCrXeiA7SbENSiGpKo8zV9nVGXWQCfg 4VvUNlVm8krs96JVeD8ZNPwk1hN3TGPWNrDh/hDGDogAznpac0hscXzJm jRDD6XSJT02k20WBVV0+FA32JUT7peET+RHYvUWLDtHe5x4ylCXhv3Wi2 M=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: Yzwi6UsWocA/VLpaJrQbN1iu2EfYgRtpVV+2bjL8WP8UdYgsqolJJ2FwlNZlp2Yd+TrgwULUGh 70GJzeuNBzbNQ/bgO/Vut68y/VJLcCoXoB8Vxhyxy/+bsAIpzz7wsxP268s/QJWWeUkhiR6BBY fhaFUfMCC/jCZ0HCJ0NIpOuLGjYUZ8j+TT4OX91GXpNzE2HN6ISSljWJG8Bl9NriiIYjqLPt5U wgtQ/HY9uOE/LD8BuWF+yTV/3k4XnVaNcQVHw7a2YxjCLYEp60uivA/hnLH8d0u383+AnonV2e 8tg= X-SBRS: 5.1 X-MesageID: 42285499 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:9bG+oaGQrfM37lI3pLqFOpHXdLJzesId70hD6mlYVQFVfsuEl8 qngfQc0lvOhCwMXWw78OrsBICrSxrnlaJdy48XILukQU3aqHKlRbsSibfK7h/BP2nF9uBb3b p9aKQWMrfNJHVzkMqS2maFOvk6xt3vys6VrMP/61socg1wcaFn6G5Ce2OmO2l7XhNPC5Z8NL f03LslmxOadX4abtu2CxA+NoCum/TxmI/7ehlDPhY76WC15g+A0qLwEBSTw34lIlFy6IolmF KlryXJop+Nntv+4R/a2m/V4f1t6abc4+oGPuOgoIw4Lj3tjyyheYhuXaaT1QpF3N2H2RIRv/ Tn5zsmIsRv+1PdF1vF3ifF6k3b/xsFr1/k1FOCjnPoraXCNUwHIvsEv611WF/9ySMbzbZB+Z MO5U21nd5rKCmFuyLH693BR3hR5zGJiEtnq8E/pThiS4cEAYUhy7A3zQduP7orOjn104wjGP kGNrCn2N9mNWmXaH3UpQBUsaWRd0V2Gh+HR34LsdCO3w5Xm2hkz1AZyNZ3pAZ5yK4A X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42285499" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 2/8] libxl: Replace QEMU's command line short-form boolean option Date: Fri, 23 Apr 2021 17:15:52 +0100 Message-ID: <20210423161558.224367-3-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" Short-form boolean options are deprecated in QEMU 6.0. Upstream commit that deprecate those: ccd3b3b8112b ("qemu-option: warn for short-form boolean options"). Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_dm.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index 3599a82ef01b..0a0c1ef7c62e 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -977,14 +977,14 @@ static char *dm_spice_options(libxl__gc *gc, if (spice->host) opt =3D GCSPRINTF("%s,addr=3D%s", opt, spice->host); if (libxl_defbool_val(spice->disable_ticketing)) - opt =3D GCSPRINTF("%s,disable-ticketing", opt); + opt =3D GCSPRINTF("%s,disable-ticketing=3Don", opt); else opt =3D GCSPRINTF("%s,password=3D%s", opt, spice->passwd); opt =3D GCSPRINTF("%s,agent-mouse=3D%s", opt, libxl_defbool_val(spice->agent_mouse) ? "on" : "off"); =20 if (!libxl_defbool_val(spice->clipboard_sharing)) - opt =3D GCSPRINTF("%s,disable-copy-paste", opt); + opt =3D GCSPRINTF("%s,disable-copy-paste=3Don", opt); =20 if (spice->image_compression) opt =3D GCSPRINTF("%s,image-compression=3D%s", opt, @@ -1224,7 +1224,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, flexarray_append(dm_args, "-chardev"); if (state->dm_monitor_fd >=3D 0) { flexarray_append(dm_args, - GCSPRINTF("socket,id=3Dlibxl-cmd,fd=3D%d,server,nowait", + GCSPRINTF("socket,id=3Dlibxl-cmd,fd=3D%d,server=3Don,wait= =3Doff", state->dm_monitor_fd)); =20 /* @@ -1237,7 +1237,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, } else { flexarray_append(dm_args, GCSPRINTF("socket,id=3Dlibxl-cmd," - "path=3D%s,server,nowait", + "path=3D%s,server=3Don,wait=3Doff", libxl__qemu_qmp_path(gc, guest_domi= d))); } =20 @@ -1247,7 +1247,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, flexarray_append(dm_args, "-chardev"); flexarray_append(dm_args, GCSPRINTF("socket,id=3Dlibxenstat-cmd," - "path=3D%s/qmp-libxenstat-%d,serve= r,nowait", + "path=3D%s/qmp-libxenstat-%d,serve= r=3Don,wait=3Doff", libxl__run_dir_path(), guest_domid= )); =20 flexarray_append(dm_args, "-mon"); @@ -1264,7 +1264,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, case LIBXL_CHANNEL_CONNECTION_SOCKET: path =3D guest_config->channels[i].u.socket.path; chardev =3D GCSPRINTF("socket,id=3Dlibxl-channel%d,path=3D= %s," - "server,nowait", devid, path); + "server=3Don,wait=3Doff", devid, path); break; default: /* We've forgotten to add the clause */ @@ -1577,7 +1577,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, nics[i].colo_##sock_port) { = \ flexarray_append(dm_args, "-chardev"); = \ flexarray_append(dm_args, = \ - GCSPRINTF("socket,id=3D%s,host=3D%s,port=3D%s,server,nowait", = \ + GCSPRINTF("socket,id=3D%s,host=3D%s,port=3D%s,server=3Don,wait= =3Doff", \ nics[i].colo_##sock_id, = \ nics[i].colo_##sock_ip, = \ nics[i].colo_##sock_port)); = \ --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194600; cv=none; d=zohomail.com; s=zohoarc; b=G8Tn59KoxbKfj7OwS56S2lchhBPpWmaBQQ//PbpFskVH/6bxV3/OEQyXE0XC2+n/IM/bisntqagzNuhzHqdR0wWvzw1JwgslY+Diovbr5Y746wmOh/xsyW+xIInMvV8Rci79Nac2+1w2pZa6vN+3VlIKuvev6drrRWUcBhI4sek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194600; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5sKXOCOcOeMPdr+iBpqVLCiBX9GChk6B8MKN5T+lauI=; b=TMdomT/Um958pKBTrjbUdMCRVFc8f9hAwxPiM8091/3Ueq+CO+yXeX7O3xZ5YmBPGJI04a7sKerugnfdAZVoL4zvfZqvHpMZEOdgmOFmadZ9wa3Lif4ogjK0UcmtAjYxfhBTVuplP2g859vjDc5zh9wh3JSKR+PKHxfNwfSX8+8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194600171898.9766336989894; Fri, 23 Apr 2021 09:16:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116487.222356 (Exim 4.92) (envelope-from ) id 1lZyTW-0008Bt-P3; Fri, 23 Apr 2021 16:16:14 +0000 Received: by outflank-mailman (output) from mailman id 116487.222356; Fri, 23 Apr 2021 16:16:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTW-0008Be-K7; Fri, 23 Apr 2021 16:16:14 +0000 Received: by outflank-mailman (input) for mailman id 116487; Fri, 23 Apr 2021 16:16:13 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTV-00082q-GU for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:13 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ce440170-617b-44de-9b89-b1e343738080; Fri, 23 Apr 2021 16:16:04 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ce440170-617b-44de-9b89-b1e343738080 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194564; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6JE1Ba2kHKFU49wB1sMfUR0XT1WWVSsakxmysofkZWc=; b=Mg7lFc9JwfYrX5IoJaiQwhWEiqD3it+l7X/D/tis4xoBZb/BGNb2kV/L A4QMFIQAgCiIlliKdmiQJYp5S+3P0Rb1reiHr15XzLxjgY64C9Na5QHTv e8MOaSkJnWCywdFceVR5VH923TML4oea6NoALPxi7tkrSXl6FZeSrehsc c=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: +zFP/7K3fTyk/y9qliyS+NZJy/a07PW4Th7efl0L3pvA+uXSrNVKcp+yJmfHD1e/y/4r/6KSwF FKLJQEYvq5Xw7Y5zmqR3C+36/IEr/h7IvHOujfSdmtsM4A5+oSade060+gTvG33g9eBkD8Kcp0 w7mRjX5LUxNTdrA6EF9MWFAqodGEMKzE3+PZ8XcKyamAmIcx+//gJ1flyzAqejUTVH4ARnyCtK Ush4GZfJV+ccOqLo+BUCooQENbOAKgbXo3xV62YmZ0NeKP0wnpkKMeKFm046DER56Ey6TmjfMP ghw= X-SBRS: 5.1 X-MesageID: 42290092 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:6iN34KzGZrT95DE3+VaEKrPxpe4kLtp033Aq2lEZdDV8Sebdv9 yynfgdyB//gCsQXnZlotybJKycWxrnmKJdybI6eZOvRhPvtmftFoFt6oP+3ybtcheVysd07o 0lSaR3DbTLZmRSpczx7BCkV/Mpx9ea+K6l7N2utEtFZysCUdAC0y5SDAGHHkpqACxPApQkHJ SRj/A33QaIU3IRc8i9Gz05T/HOzue73q7OTDwnI1oc6AeIhS6187KSKXSl9zoXTj8n+8ZEzU HriAr8j5/Dj9iazVvm23bX/9BqnrLau6N+LeitruRQFTn2kAavY+1aKvC/lRQ4uvum5lpvsP SkmWZHA+1J53ncfn64rHLWsmGOvgoG0HPsxUSVhnHuu6XCNUsHIvBcjoFUeAax0TtDgPhA0b lG12/cl51bAQKoplWY2/H0VgpnnkfxnHw6keR7tQ07baIibtZqzbA3zQdwKtMtDSj64IcoHK 1FF8fH/stbdluccjTwonRv6MbEZAV9Ij62Bmw5/uCF2Tlfm350i2ECwtYEo3sG/JUhD7FZ+u X/NLhynr0mdL5ZUYtNQMM6BeenAG3ERhzBdEiIJ078Ka0BM3XR77n6/asy/+PvXJAT1pM9lN DgXTpjxC8PUnOrLffL8IxA8xjLTmn4dy/q0Nti659wvaC5S6HsNSGFVVAyg8qtq/gSGaTgKr WOEaMTJ8WmAXrlGI5P0QG7cYJVM2MiXMocvct+W1/mmLOIFqTa8sjgNNrDLrvkFjgpHknlBG EYYTT1LMJcqkSiWnryhgnNS2rgE3aPuK5YIez/xaw+2YINPopDvkw+klKi/PyGLjVEr+gxZ0 txILTul6uhvmmo9WPU72FkUyAtTnp90fHFaTdntAUKO0T7ffIooNOEY11f23OBO1tiVc/MCR VeoF524KqzKJSVyUkZepaaG1Pfq0FWiGOBTp8alKHG2NzsfYkgCI06HIZrEx/QKhBzkQF2iW tKZQMeXHXDHjf2hajNtu1SOMjvM/1HxCaiO4p9tG/Wv0T0n7BTelIrGxqVFfOxrSlrbTxOnV F1+7IYm9O76EqSAFp6pv85Pl1KYHmQG5RcAm2+Fclps7j2ZQB9SnqLjzSGixc1PnHn7VkWm3 aJF1zqRdjbRlVaoXxWyaDs7Rd9cXicZVt5bjRgvZR6DnmugAc67cabIq6y2XCWcF0M36UUNy zEeyIbJmpVtqaK/Q/QnDaJDnM9wJoyeuTbEbQ4arnWnnegMpeBm61DH/ha+v9eRZnTm/5OVe KUYAmOKjzkT+svxgyOv34gfDBut2NMq4Kc5DT1qGyjmHIvC/vbJ1prA7kdPtGH9mDhA/KFyo 9wg945tfa5W1+BIeKu2OXSdXpOOxnTqWm5Q6UzpZdYsbk7ubFzE5PYOAG4o01vzVE7NoP5hU keSKN07PTdIYdpZdUVYD8c8VwzltiDRXFbwDDeE6s7ZxUqgHDaNd/SvOaNprorH0GbpAz/fV OY6DZQ+v/ZXy2Fkb4WYphAUVh+eQw58jBl+ujHaojbTAOtfOtH9EChMnC8fKRGIZL1bYk4v1 J/+ZWQg+STdyDkwwjesjtwP7JW/w+cMLKPKRPJHfQN7sezNluNiLa7+cK/jD/4Tj2gdkQT7L c1BnA4f4BEkTktjIo+zyi0ROj2uyse4iVj3Q0= X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42290092" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 3/8] libxl: Replace deprecated "cpu-add" QMP command by "device_add" Date: Fri, 23 Apr 2021 17:15:53 +0100 Message-ID: <20210423161558.224367-4-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" The command "cpu-add" for CPU hotplug is deprecated and has been removed from QEMU 6.0 (April 2021). We need to add cpus with the command "device_add" now. In order to find out which parameters to pass to "device_add" we first make a call to "query-hotpluggable-cpus" which list the cpus drivers and properties. The algorithm to figure out which CPU to add, and by extension if any CPU needs to be hotplugged, is in the function that adds the cpus. Because of that, the command "query-hotpluggable-cpus" is always called, even when not needed. In case we are using a version of QEMU older than 2.7 (Sept 2016) which don't have "query-hotpluggable-cpus", we fallback to using "cpu-add". Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_domain.c | 87 ++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domai= n.c index 8c003aa7cb04..e130deb0757f 100644 --- a/tools/libs/light/libxl_domain.c +++ b/tools/libs/light/libxl_domain.c @@ -1805,6 +1805,7 @@ typedef struct set_vcpuonline_state { libxl_dominfo info; libxl_bitmap final_map; int index; /* for loop on final_map */ + const char *cpu_driver; } set_vcpuonline_state; =20 static void set_vcpuonline_qmp_cpus_fast_queried(libxl__egc *, @@ -1814,6 +1815,10 @@ static void set_vcpuonline_qmp_cpus_queried(libxl__e= gc *, static void set_vcpuonline_qmp_query_cpus_parse(libxl__egc *, libxl__ev_qmp *qmp, const libxl__json_object *, bool query_cpus_fast, int rc); +static void set_vcpuonline_qmp_query_hotpluggable_cpus(libxl__egc *egc, + libxl__ev_qmp *qmp, const libxl__json_object *response, int rc); +static void set_vcpuonline_qmp_device_add_cpu(libxl__egc *, + libxl__ev_qmp *, const libxl__json_object *response, int rc); static void set_vcpuonline_qmp_add_cpu(libxl__egc *, libxl__ev_qmp *, const libxl__json_object *response, int rc); static void set_vcpuonline_timeout(libxl__egc *egc, @@ -1951,13 +1956,54 @@ static void set_vcpuonline_qmp_query_cpus_parse(lib= xl__egc *egc, libxl_bitmap_reset(final_map, i); } =20 + qmp->callback =3D set_vcpuonline_qmp_query_hotpluggable_cpus; + rc =3D libxl__ev_qmp_send(egc, qmp, "query-hotpluggable-cpus", NULL); + out: libxl_bitmap_dispose(¤t_map); + if (rc) + set_vcpuonline_done(egc, svos, rc); /* must be last */ +} + +static void set_vcpuonline_qmp_query_hotpluggable_cpus(libxl__egc *egc, + libxl__ev_qmp *qmp, const libxl__json_object *response, int rc) +{ + set_vcpuonline_state *svos =3D CONTAINER_OF(qmp, *svos, qmp); + const libxl__json_object *cpu; + const libxl__json_object *cpu_driver; + + if (rc =3D=3D ERROR_QMP_COMMAND_NOT_FOUND) { + /* We are probably connected to a version of QEMU older than 2.7, + * let's fallback to using "cpu-add" command. */ + svos->index =3D -1; + set_vcpuonline_qmp_add_cpu(egc, qmp, NULL, 0); /* must be last */ + return; + } + + if (rc) goto out; + + /* Parse response to QMP command "query-hotpluggable-cpus" + * [ { 'type': 'str', ... ] + * + * We are looking for the driver name for CPU to be hotplug. We'll + * assume that cpus property are core-id=3D0, thread-id=3D0 and + * socket-id=3D$cpu_index, as we start qemu with "-smp %d,maxcpus=3D%d= ", so + * we don't parse the properties listed for each hotpluggable cpus. + */ + + cpu =3D libxl__json_array_get(response, 0); + cpu_driver =3D libxl__json_map_get("type", cpu, JSON_STRING); + svos->cpu_driver =3D libxl__json_object_get_string(cpu_driver); + + if (!svos->cpu_driver) + rc =3D ERROR_QEMU_API; + +out: svos->index =3D -1; - set_vcpuonline_qmp_add_cpu(egc, qmp, NULL, rc); /* must be last */ + set_vcpuonline_qmp_device_add_cpu(egc, qmp, NULL, rc); /* must be last= */ } =20 -static void set_vcpuonline_qmp_add_cpu(libxl__egc *egc, +static void set_vcpuonline_qmp_device_add_cpu(libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, int rc) { STATE_AO_GC(qmp->ao); @@ -1969,6 +2015,43 @@ static void set_vcpuonline_qmp_add_cpu(libxl__egc *e= gc, =20 if (rc) goto out; =20 + while (libxl_bitmap_cpu_valid(map, ++svos->index)) { + if (libxl_bitmap_test(map, svos->index)) { + qmp->callback =3D set_vcpuonline_qmp_device_add_cpu; + libxl__qmp_param_add_string(gc, &args, "id", GCSPRINTF("cpu-%d= ", svos->index)); + libxl__qmp_param_add_string(gc, &args, "driver", svos->cpu_dri= ver); + /* We'll assume that we start QEMU with -smp %d,maxcpus=3D%d, = so + * that "core-id" and "thread-id" are always 0 so that + * "socket-id" correspond the cpu index. + * Those properties are otherwise listed by + * "query-hotpluggable-cpus". */ + libxl__qmp_param_add_integer(gc, &args, "socket-id", svos->ind= ex); + libxl__qmp_param_add_integer(gc, &args, "core-id", 0); + libxl__qmp_param_add_integer(gc, &args, "thread-id", 0); + rc =3D libxl__ev_qmp_send(egc, qmp, "device_add", args); + if (rc) goto out; + return; + } + } + +out: + set_vcpuonline_done(egc, svos, rc); +} + +/* Fallback function for QEMU older than 2.7, when + * 'query-hotpluggable-cpus' wasn't available and vcpu object couldn't be + * added with 'device_add'. */ +static void set_vcpuonline_qmp_add_cpu(libxl__egc *egc, libxl__ev_qmp *qmp, + const libxl__json_object *response, + int rc) { STATE_AO_GC(qmp->ao); + set_vcpuonline_state *svos =3D CONTAINER_OF(qmp, *svos, qmp); + libxl__json_object *args =3D NULL; + + /* Convenience aliases */ + libxl_bitmap *map =3D &svos->final_map; + + if (rc) goto out; + while (libxl_bitmap_cpu_valid(map, ++svos->index)) { if (libxl_bitmap_test(map, svos->index)) { qmp->callback =3D set_vcpuonline_qmp_add_cpu; --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194601; cv=none; d=zohomail.com; s=zohoarc; b=RPGMuc79xv9rZ4hJYOEnTKM6njkq6EDSah/MmmKUmu7s4QDuPKTPHWoxJkAE6K2o7oPkUkRj27yb6EIB1FkHPXH8Hgx/60hNfxRuYUI1GMb2bxAxThWe0XzQtZnUpdM4CUIgB9w9bErx0N9cyCohbl4s5KaKaIFde5FtAf/HGn8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194601; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p+SMQPUwQyUpr4VUjvhGHoQBX0DUPBVGt/Sl+5aj/sU=; b=F1JI8FBKiL/5dH9kgDEXaiR82O86t9l1gvO+tAFrLagn1vumLLaMPdBz+Eh2nqQpoWs6KTW4wH8mjbZpLd37u0XHUY8DJTRrdlbjPcA32+T7GvUUwm6U6du7lYv/20mMcWi83kGqsKQ/qmiXutinnjQe/mUiRM7uD8rsBh5o4EA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194601753413.6343379299192; Fri, 23 Apr 2021 09:16:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116490.222380 (Exim 4.92) (envelope-from ) id 1lZyTb-0008Ki-M6; Fri, 23 Apr 2021 16:16:19 +0000 Received: by outflank-mailman (output) from mailman id 116490.222380; Fri, 23 Apr 2021 16:16:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTb-0008KR-IF; Fri, 23 Apr 2021 16:16:19 +0000 Received: by outflank-mailman (input) for mailman id 116490; Fri, 23 Apr 2021 16:16:18 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTa-00082q-Gl for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:18 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 3e6bf307-89f6-4de9-bdfc-59e5a3de9c1a; Fri, 23 Apr 2021 16:16:05 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 3e6bf307-89f6-4de9-bdfc-59e5a3de9c1a DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194565; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Gygj/Nak9hSpWoWROOHHTJ9LjxhWDQ/06rb6wnjdhUE=; b=Ot8oewyv79nC1P0zTJhLRtZsKlUTqhPAZTRcM4Mr+R2uVTAVvHiX0bj3 pRe53h6ChY2oTvIAxD2GIr2q/3I4zj0K9vhu89295gzwK/UfiD8Fok0gG cuRWQpLh4r/L234gOlLMK0GAE19dg/Xui9CdLE/Z3j1LF8+NO5cpSsR+i c=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: z/2hhoiwA5cKJsLlGK9/tD/q0N96IMJo3PCsZpF8PT7gKdu7nQ2uBJeTodjsW+Gh3Q+E7p9/UJ hY3OPLHfAmACvHXCgjhu+raJBAafNMn+nDPk8G/7Fn/dGaxoD4OhVhiPKnsFf5yml9xsFjIYI1 gRSHDf/3LeJNqFaDAF2p7RR+QKk6odVgZu5+Uv1Fc6hL3I7Lk8OtKVpszpLhW2E1duknXuy5/U 44LgaUDnHMmw3OpQj7UGhG44JONhE87ZBCa3UMH+1C4I/5THSZJ2FGtgNrsP0pfcP4kohqRter Orw= X-SBRS: 5.1 X-MesageID: 42290097 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:+qZ+da8YtjclBQLNrL5uk+FRcL1zdoIgy1knxilNYDRvWIixi9 2ukPMH1RX9lTYWXzUalcqdPbSbKEmwybdc2qNUGbu5RgHptC+TLI9k5Zb/2DGIIUfD38Zn/+ Nbf6B6YeeaMXFTh8z3+RT9Nt4mzsWO/qzAv5ak815GZ2hRGsJdxi1+DRuWFVAzYQFAC4YwGp b03Ls8mxOLf3MLYsOnQkQURuSrnayAqLvKQz4jQyQm5g6HkC+y5NfBfySw8x8CX1p0sNAf2E fflQiR3MSemtG9jiTRzmrCq6lR8eGRsudrIOyppowrJi73igCuDb4RFoGqmDwuuumg5BILvb D30nEdFv9+4X/QYW25yCGFs2aP7B8U53Dv0lOei3f4yPaJPQ4SMdZLho5Sb3Limigdlex8y6 5C0ia4sJdaHHr77UDAzuXITB1jmw6Ip2Mjm4co/hlieLYZAYUwkaUvuGduVLsQFiPz744qVM N0CtvH2fpQeVSGK1jEo2hG2rWXLzsONybDZnJHlt2e0jBQknw85VAf3tYjknAJ8494Y4VY5t 7DLr9jmNh1P4ErRJM4IN1Ebdq8C2TLTx6JGnmVO07bGKYOPG+IjJLr/rMv5qWPdIYTxJU/3L TNOWko9FIaSgbLM4mjzZdL+hfCTCGWRjL20PxT4JB/p/nyX7zuPSqfSE0/kseprvkFa/erGM qbCdZzObvOPGHuEYFG00nVQJ9JM0QTV8UTp5I6Vju104D2A7yvktaeXOfYJbLrHzphcHj4GG E/UD/6I9gF6kiqX3T/kQXAQn+FQD27wbtAVIzhu8QDwokEMYNB9iIPj06i282NITpe9qosfE V/J7vjmrihpXa/+HvJ62kBAGscMm9lpJHbF19arw4DNE35NZwZvc+ERGxU1HybYgNkQ9jOCw 5ZrVRv8aexJ5idrBpST+6PAya/tT8+tXiKR5ATlum//s/jYIo/FYtjcrd2Dx/3Gxt8nhtKpG 9PZBQffFLWEirjhMye/dspLdCaU+M5oQ+wZeZItHrUtCyn1LwSb0peewTrbOm6rkIFQSFOil h47qkF6YDw5QqHGC8Ym+Q3MFpFdWKNJqlJZT71KLl8kqz3eQ12UGeBjSGbjRZ2YWbx60AOnA XaXFKpUOCODVxHtn9C1KH2tFtya2WGZkp1Lmt3qItnCA39yz5O+P7OYqq4yG2KbFQehukbLT HeeDMXSzkeseyfxVqQmDyYE28hyYhrNuvBDK47e7WW3n+2MoWHmeUHGPBTlawVfezGo6sOUe iFfRWSIy69A+Q12xaNrnJgITJqshAf4IbV8Qyg6HL90G80APLULlgjT7YHI8uE52yhQ/qTyp 12gd88oOPYCBS7VveWjaXMKzJTIBLapmC7C/slrp1Zpqo+vrp+FZuza0q+6FhXmBElaMvknk IXR6p2pK3bMoh0ZsoIZmZX+EEqmNnnFjpYjiXmRuslOVcjgH/QM4nXv/7Gqb8zDlaAowW1M1 +F6CFZ9+rEWSzG1bNyMdNBHU1GLEwnrHJl96eecoeVDgOgfeRK5kC7PX+wa6U1ctnwJZwA6h Jhp8iVlOqWfTfi0A/evTFnMrtDmlzXMP+aEUaJA6pU6NS0NlSHn7uy7MOyhDnxTyGna05wv/ w3SWUAKsJZijcji4Ur0i+9Dqzvy3hV7Wdj3Q== X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42290097" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 4/8] libxl: Use -device for cd-rom drives Date: Fri, 23 Apr 2021 17:15:54 +0100 Message-ID: <20210423161558.224367-5-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" This allows to set an `id` on the device instead of only the drive. We are going to need the `id` with the "eject" and "blockdev-change-media" QMP command as using `device` parameter on those is deprecated. (`device` is the `id` of the `-drive` on the command line). We set the same `id` on both -device and -drive as QEMU doesn't complain and we can then either do "eject id=3D$id" or "eject device=3D$id". Using "-drive + -device" instead of only "-drive" has been available since at least QEMU 0.15, and seems to be the preferred way as it separates the host part (-drive which describe the disk image location and format) from the guest part (-device which describe the emulated device). More information in qemu.git/docs/qdev-device-use.txt . Changing the command line during migration for the cdrom seems fine. Also the documentation about migration in QEMU explains that the device state ID is "been formed from a bus name and device address", so second IDE bus and first device address on bus is still thus and doesn't matter if written "-drive if=3Dide,index=3D2" or "-drive ide-cd,bus=3Dide.1,unit=3D0". See qemu.git/docs/devel/migration.rst . Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_dm.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index 0a0c1ef7c62e..5b01cf284163 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -1913,6 +1913,7 @@ static int libxl__build_device_model_args_new(libxl__= gc *gc, } =20 if (disks[i].is_cdrom) { + const char *drive_id; if (disk > 4) { LOGD(WARN, guest_domid, "Emulated CDROM can be only on= e of the first 4 disks.\n" "Disk %s will be available via PV drivers but not= as an " @@ -1920,13 +1921,22 @@ static int libxl__build_device_model_args_new(libxl= __gc *gc, disks[i].vdev); continue; } - drive =3D libxl__sprintf(gc, - "if=3Dide,index=3D%d,readonly=3Don,media=3Dcdrom,= id=3Dide-%i", - disk, dev_number); + + drive_id =3D GCSPRINTF("ide-%i", dev_number); + drive =3D GCSPRINTF("if=3Dnone,readonly=3Don,id=3D%s", dri= ve_id); =20 if (target_path) drive =3D libxl__sprintf(gc, "%s,file=3D%s,format=3D%s= ", drive, target_path, format); + + flexarray_vappend(dm_args, + "-drive", drive, + "-device", + GCSPRINTF("ide-cd,id=3D%s,drive=3D%s,bus=3Dide.%u,unit= =3D%u", + drive_id, drive_id, + disk / 2, disk % 2), + NULL); + continue; } else { /* * Explicit sd disks are passed through as is. --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194595; cv=none; d=zohomail.com; s=zohoarc; b=UdM2scUTRX14ZQb5Kz5uKW2nDnMGONfPh53xKaz1BKp8c6Ysxc276BzIJhM5x1Ug3BZ7NeOrV/qSp5wr5JgbO6m2QXTH9OXJHlt4Jatbybu6sUq2OdlKxkyl6O8y0ZjLYnzk+YnruycakUeju1mqo2uBlQ1MWYY/ZvkW3EPBr5Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194595; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XoFUs8s+H+Qcxf28lZQMchjI52raoVQUInSjHF71Rh4=; b=Pkt+vTiEe5SKdi7AQhlIdPfnsf5lnNCQNKmnZBuUFMciZIWTGFrdY/s/HaqGK9jWnsRi3eLzWgkH1/337zoG7+pUlUb5N6pGWePc5Q/BBtZ06dXYmoUQZX+DUiR73qXg0cIdpVJ4Xim0AaZRPP064SxOB7URrdwkvMZJ+89KkzY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194594998717.0696415931654; Fri, 23 Apr 2021 09:16:34 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116488.222367 (Exim 4.92) (envelope-from ) id 1lZyTa-0008Hn-8d; Fri, 23 Apr 2021 16:16:18 +0000 Received: by outflank-mailman (output) from mailman id 116488.222367; Fri, 23 Apr 2021 16:16:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTa-0008Hc-4V; Fri, 23 Apr 2021 16:16:18 +0000 Received: by outflank-mailman (input) for mailman id 116488; Fri, 23 Apr 2021 16:16:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTY-0008Fb-Be for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:16 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 611e6a7d-8878-4bc2-86a4-10aa49b0445f; Fri, 23 Apr 2021 16:16:15 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 611e6a7d-8878-4bc2-86a4-10aa49b0445f DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194575; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gTP2NPKwMvvcEW6tAfQV5J2/0JC2fRKLgq5+MXRr9rA=; b=gY/5BTvcH+20FyBiAhIUwNChGkhn6AlvQsGSwa93BmeZO3DXrOa+hqVM uxzJb95PnIE3anpgp1EcKNR1LeyXN/QhixCWBeDk1PqviaRntUJrVbEJa Yf7HbuBMnxwJxpNFYu8EQZSK21xEd4LDRpLWNbfbSWx/j27rKn3yIimt1 A=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: o6XDtXjQNm2tlxCbQW/75Utq2npQ+oWMTBUrnheQn/YfNJENnS7atFefdkM18jkhZAv9YjglQ6 3NXdJ+C7IGJlWDZJJ/7aKVp/polQs+h/19wM5Xy6udvSYdUuCClzdnbcl7Sf/l8JAQGFCdz3Rb lCze5mVW7alNxhh2KK+Iusge+84RNuwA+5ybYMPMTsB73j3FU48AcDzhj1x6iqiV5RrX3dUoLU F5MERxXXvBIgkkjtb6yMAVo7Q7tyti8wsi7XFEdfGF7tR+JAbtDli/o3ucbBN0bTgujSTQqKma l5c= X-SBRS: 5.1 X-MesageID: 42410027 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:iO0EZqut0LjoOZQ9DII56uer7skD9dV00zAX/kB9WHVpW+az/v rAoN0w0xjohDENHEw6kdebN6WaBV/a/5h54Y4eVI3SOzXOkm2uMY1k8M/e0yTtcheOj9J1+K 98f8FFaeHYIkN9ia/BjTWQM9Fl+9Wf9bDtuOG29QYOcShPS4VNqzh0ERyaFEoefngjObMcGI CH7sRK4xqMEE52Uu2BCnMIX/fOqrTw/fqMCyIuPBIp5BKDijml8tfBYn2l9ywTTi9VxvMa+X XF+jaJgJmLie2xyRPXygbogah+pd2J8Ld+Lf3JrsAULzn24zzYB7hcZw== X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42410027" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 5/8] libxl: Assert qmp_ev's state in qmp_ev_qemu_compare_version Date: Fri, 23 Apr 2021 17:15:55 +0100 Message-ID: <20210423161558.224367-6-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" We are supposed to read the version information only when qmp_ev is in state "Connected" (that correspond to state=3D=3Dqmp_state_connected), assert it so that the function isn't used too early. Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_qmp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/libs/light/libxl_qmp.c b/tools/libs/light/libxl_qmp.c index 9b638e6f5442..d0967c9f029f 100644 --- a/tools/libs/light/libxl_qmp.c +++ b/tools/libs/light/libxl_qmp.c @@ -292,6 +292,8 @@ static int qmp_handle_response(libxl__gc *gc, libxl__qm= p_handler *qmp, static int qmp_ev_qemu_compare_version(libxl__ev_qmp *ev, int major, int minor, int micro) { + assert(ev->state =3D=3D qmp_state_connected); + #define CHECK_VERSION(level) do { \ if (ev->qemu_version.level > (level)) return +1; \ if (ev->qemu_version.level < (level)) return -1; \ --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194605; cv=none; d=zohomail.com; s=zohoarc; b=BF5UbpJjmNGVjNJyLb+E4+VGLonXH3drly9cgo8SR5SWhaDirsY6OnMXzEt+APhtPTqERfiuhNw+3hQcxCr99jKMoGkBv4L++F8zLzpJrdbn1+P6oBnw/wXYFQhvy2av9IZeTlHqdoxKcrV6CHo4gYSwGl5ptUmvh9C5vjV3v30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194605; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WagzJs5Nfo5IUESc94qWNUbMyhGP2iaEMkPt1La9uWw=; b=cYrCAQNvNc59+MSibHmJ1+fhSK4zzZjf9c0PJfMkoqu0E0wszXj9m7SKzC//07zIK8InqzeBsSFoYP1FcgZPR7v4q0xpzef9y3kZBaQqZeRPo5PrxnNQrqb5C4wc1n3kcoYgdVMHFgCbUk8BCYjAWFHH74U31gWEteqDp66V1Og= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194605582872.3195539923524; Fri, 23 Apr 2021 09:16:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116492.222392 (Exim 4.92) (envelope-from ) id 1lZyTh-0008SY-26; Fri, 23 Apr 2021 16:16:25 +0000 Received: by outflank-mailman (output) from mailman id 116492.222392; Fri, 23 Apr 2021 16:16:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTg-0008SN-TL; Fri, 23 Apr 2021 16:16:24 +0000 Received: by outflank-mailman (input) for mailman id 116492; Fri, 23 Apr 2021 16:16:23 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTf-00082q-H4 for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:23 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 9cccee8e-9fb5-4356-9798-0c34a9140295; Fri, 23 Apr 2021 16:16:07 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 9cccee8e-9fb5-4356-9798-0c34a9140295 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194567; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ph38A5j1OWE1s08PgJbUwpGtJdMyhhVSIRMRnKmNdPw=; b=C/oUHc1zHPGStt/cwPY4k2TIph+2rC7ZY8xk8m1ioBBrfvM1TCjMPmM1 n0hPAfxTBKnlwXMpzpZft+Wu83ArBXqIwfhWJJmekljhzkRm7AeLWfjMq Qre/0K5onhHpI/wr+VLiutpDJDsjv/XBJ3fXy8hA6rMIZCZ9ROX1Nxi+q M=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: pqqW2xtefipI1Zu4wSr7cp2dOjCFBX9jV3eA1mtnDqlXfQw2/54LqblDcbH0tHQv/6vMsw0xxk DzN6gvr/fWQ/Tb4uu2aZ/3ZcOxYdp1//oUF+g0mB/YgFPR2Y/pzO6LcacpUe/o/0bYABsobp0x QBbor4EGgdDAw6VneRhT4/I7wZWyG3jiykm44EsXXNN4kiUHUh00pF3f82wybJ8AnNfDS7K51B Xm6qsIMPfWoA/N2pJ2PjOf4Gu4wjQ8x1QR5cMP54OtnKKLS5Jr+l2ox6SzqQ64+S5pMgpFydGl rVk= X-SBRS: 5.1 X-MesageID: 42672689 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:LmzmdqHze4v+x9dhpLqEbceALOonbusQ8zAX/mpaICY6TuWzkc eykPMHkSLugDEKV3063fyGMq+MQXTTnKQFh7U5F7GkQQXgpS+UPJhvhLGSuwHINiXi+odmtZ tIXLN5DLTLYWRSrcG/2wWgFsZl/d/vytHMuc7771NACT5ncLth6QARMHf9LmRTSBNdDZQ0UL qwj/A3xAaIQngcYsSlCnRtZYGqzLenqLvcbRELHBIh4gWV5AnYjILSKBSEwgwYFwpG3LZKyx m9ryXC+q6hv/unoyW860bv6f1t9+fJ+59mDMyIhtN9EESPtjqV X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42672689" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 6/8] libxl: Export libxl__qmp_ev_qemu_compare_version Date: Fri, 23 Apr 2021 17:15:56 +0100 Message-ID: <20210423161558.224367-7-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" We are going to want to check QEMU's version in other places where we can use libxl__ev_qmp_send. Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_internal.h | 8 ++++++++ tools/libs/light/libxl_qmp.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_int= ernal.h index c6a4a187f5b0..c114f6d39960 100644 --- a/tools/libs/light/libxl_internal.h +++ b/tools/libs/light/libxl_internal.h @@ -492,6 +492,14 @@ _hidden int libxl__ev_qmp_send(libxl__egc *egc, libxl_= _ev_qmp *ev, const char *cmd, libxl__json_object *args); _hidden void libxl__ev_qmp_dispose(libxl__gc *gc, libxl__ev_qmp *ev); =20 +/* return values: + * < 0 if qemu's version < asked version + * =3D 0 if qemu's version =3D=3D asked version + * > 0 if qemu's version > asked version + */ +_hidden int libxl__qmp_ev_qemu_compare_version(libxl__ev_qmp *ev, int majo= r, + int minor, int micro); + typedef enum { /* initial state */ qmp_state_disconnected =3D 1, diff --git a/tools/libs/light/libxl_qmp.c b/tools/libs/light/libxl_qmp.c index d0967c9f029f..fb146a54cb9c 100644 --- a/tools/libs/light/libxl_qmp.c +++ b/tools/libs/light/libxl_qmp.c @@ -289,7 +289,7 @@ static int qmp_handle_response(libxl__gc *gc, libxl__qm= p_handler *qmp, * =3D 0 if qemu's version =3D=3D asked version * > 0 if qemu's version > asked version */ -static int qmp_ev_qemu_compare_version(libxl__ev_qmp *ev, int major, +int libxl__qmp_ev_qemu_compare_version(libxl__ev_qmp *ev, int major, int minor, int micro) { assert(ev->state =3D=3D qmp_state_connected); @@ -1073,7 +1073,7 @@ static void dm_state_save_to_fdset(libxl__egc *egc, l= ibxl__ev_qmp *ev, int fdset /* The `live` parameter was added to QEMU 2.11. It signals QEMU that * the save operation is for a live migration rather than for taking a * snapshot. */ - if (qmp_ev_qemu_compare_version(ev, 2, 11, 0) >=3D 0) + if (libxl__qmp_ev_qemu_compare_version(ev, 2, 11, 0) >=3D 0) libxl__qmp_param_add_bool(gc, &args, "live", dsps->live); QMP_PARAMETERS_SPRINTF(&args, "filename", "/dev/fdset/%d", fdset); rc =3D libxl__ev_qmp_send(egc, ev, "xen-save-devices-state", args); --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194607; cv=none; d=zohomail.com; s=zohoarc; b=Bu2lCIA20lyPSxBFBqrqJRFkygLfVWLU74kBAtZoWtEiyB5RldEa4cPGZcwOOn5RiNdbgduM61VOjTdqsv5zKdvV6mgJZYlgs1BnVES7VhKmPlx46VaimFavvh9UwK4VMxwuNPenlNMrXmv4E9ZnavTfp7DJjg6J7vEAt+bR+JY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194607; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gDL5bgSxns44+//Upmgtux0zWcbAtBOHpL18g2bm/QU=; b=Trv39y5h/0qazoCNg9sasHQsSl2MiS4rbGl/YbhNKLt5i56wNtL5z0EOa48KPJ0JQCyot4f5n5+kZTV9xI6LiFRfBwgeCf/6Cm1KL+7nXMaW+AyqCa5wl9qCuRQj+UHUpS3jBoyTZCAbMY9uV7dnxONq6wZxE0Iy6xysYPW80+c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194607408102.30294031825633; Fri, 23 Apr 2021 09:16:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116494.222404 (Exim 4.92) (envelope-from ) id 1lZyTm-00008F-F6; Fri, 23 Apr 2021 16:16:30 +0000 Received: by outflank-mailman (output) from mailman id 116494.222404; Fri, 23 Apr 2021 16:16:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTm-000083-9L; Fri, 23 Apr 2021 16:16:30 +0000 Received: by outflank-mailman (input) for mailman id 116494; Fri, 23 Apr 2021 16:16:28 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTk-00082q-HE for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:28 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id a25425e1-f1d0-45cb-aff2-8f769b5f6828; Fri, 23 Apr 2021 16:16:08 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a25425e1-f1d0-45cb-aff2-8f769b5f6828 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194568; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4+T21LhPNuthVDj7BNA6YAigMRwkRpvcvJyGv+dq/ps=; b=SOLC15s72rz/89vYDI4t7zA7nFfz86YT22nMl2iiGMJKE3OXVDE2wul2 1PK6To0JUlUoxVWbxK3sNviS1hs0IxRUJxchU51PrlAa0d4GXe0Oq2Qzn xm1MHojRJKlmXHCZluofoLafgFwmz2346cmHJMrzkHv4AqWKfaICIHL2B E=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: P6My/Z8aM1o8STHsTRAiZoDW9jzU+Y7vzkkAbzjreb7tqDurvzQrpBQfYXoPD+Gh6Ov53CxROm qpcDLGYXbAsii2i8px3vAMVjKYCexuq/y8/QJ5ZWASgCdjH/YYN3fdF6bR99NRUlp1CnjYAQzn 1wot1YSmJ/UzzHUP1xeqDnbx1arvsgY+kV6EDgqBv+njpEQdr9e9s6jhkOMJeo77EcY0nr0Flu YvuD5PsJ/ZtaDdiDiYefUB0xXUhKucpqHNfR3XDtMsXkfawbm/EITjdChj5vWKj3YpDJARILQ7 V4I= X-SBRS: 5.1 X-MesageID: 42290111 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:F0PkEqC+CuPZZ67lHegltMeALOonbusQ8zAX/mhLY1h8btGYm8 eynP4SyB/zj3IrVGs9nM2bUZPsfVr1zrQwxYUKJ7+tUE3duGWuJJx/9oeK+VfdMgXE3Kpm2a 9kGpIUNPTZB1J3lNu/xQG+HcopztXvytHSuc715R5WPGJXQotn6Bp0DRveN0VwShVPC5ZRLu vn2uNsoT28dXMLKvmqH3VtZZmIm/TntrLDJSQHCRku9RWUgVqThILSPhCE0n4lIlRy6Jg492 ytqW3Ez4Wl98q20xrNk1LUhq4m4OfJ7vtmKIiyhtMOKjPq4zzYKbhJf7GZpjg6rKWOxT8R4b /xiiwtNchy9H/dF1vdyXSC5yDa3Dkj8HPkw1OD6EGT2PDRfi4wCMZKmOtiA3nkwncgp9113e Zq2G+UpvNsfHf9tRn9/NTBWlVWkFO1qxMZ4IsupkFYOLF/VJZh6agkuG9FGpYJGyz3rKo9Fv N1Mc3a7PFKNXuHcnHwpABUsZORd0V2Oi3DblkJu8ST3TQTtmt+1VEkyMsWmWpF3I4hSqND+/ /PPs1T5f9zZ/5TSZg4KPYKQMOxBGCIawnLKniuLVPuE7xCHH7RtZjt4vEQ6PuxcJIFiLs+8a 6xEW9whCoXQQbDGMeO1JpE/lTmW2OmRwngzclY+tx3obv5SL33MTCSSVwnnse6ys9vQfHzar KWAtZ7EvXjJWzhFcJixAvlQaRfLnEYTYkUt78AKhCzi/OODrevmv3Qcf7VKraoOy0jQHnDDn wKWyW2IM1B60usS2LpmRS5YQKpRmXPubZLVITK9ekaz4YAcqdWtBIOtFi/7saXbTtYsqI3e0 N6KKj9kryyoHS3+Wqg1RQoBjNtSmJupJnwWXJDogEHd2nud6wYhtmZcWdOmGecKgRnVMPQGg 5Hr1Fx8aa6RqbggRwKOpaCCCa3nnETrHWFQ9MggaWF/97iYY59JI0hQrZNGQLCEAFVlQ5mpH xYUhINQlbSG1rV+OKYpa1RINuaVtFnxC+3PMZfqBvkxDihjPBqYkFeYhmDfoq8hx00Sz9dm1 trmpVv/IaoqHKIMmswgOMxLVtWTn+YaYg2QDitbJlIm7ztZQF7RXqLgzvfkB0oZm/27Swp9x PcBDzRdvfRDlVHvHdElq7s7VNvb22YO1l9c3ZgrORGZCz7k2c21e+Afayo1WSNLlME3+EGKT nACAFiVD9G1pSy1BSPniyFGmhjzpIyPvbFBLBmd73IwHuiJMmJkq4BdsUktapNJZTrsuURV/ iYdBLQJDTkC/kx0wjQv207IkBP2QwZuOKt3Aeg4Hmz3XY5D/aXKFN6R6sDK9XZ62T/Xf6H3J hwkNpdh5r6DkzhLtqdja3HZT9KLR3e5XS7SOwlsphYt6M/vrkbJeitbRLYkHVcmBkuJsb9k0 0TBLlh6LfaI4l1YogcfTla8ldBrqX8EGI79gjtRukwclEmgyWFY5eH47/UpaEuBUPErg3qIl Wb+zBc+fCAXybr789rN4sgZWBNLE474zB++enHcYvaAgCjbftC81q3KWXVSs4odIGVXbEL6g 9n6NSJlfKNfyX22ArMrSJ2S5g+glqPUIe3GkaQAuZG/NyxJESUjqar6MC1ii3rSTHTUTVqua RVMUoKbspCjTE+jIo4liiqI5aH3H4Yrw== X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42290111" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 7/8] libxl: Use `id` with the "eject" QMP command Date: Fri, 23 Apr 2021 17:15:57 +0100 Message-ID: <20210423161558.224367-8-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" `device` parameter is deprecated since QEMU 2.8. This requires changes to the command line introduced by: "libxl: Use -device for cd-rom drives" Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_disk.c | 43 +++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c index 411ffeaca6ce..faabdea7a4c3 100644 --- a/tools/libs/light/libxl_disk.c +++ b/tools/libs/light/libxl_disk.c @@ -656,6 +656,8 @@ typedef struct { =20 static void cdrom_insert_lock_acquired(libxl__egc *, libxl__ev_slowlock *, int rc); +static void cdrom_insert_qmp_connected(libxl__egc *, libxl__ev_qmp *, + const libxl__json_object *, int rc); static void cdrom_insert_ejected(libxl__egc *egc, libxl__ev_qmp *, const libxl__json_object *, int rc); static void cdrom_insert_addfd_cb(libxl__egc *egc, libxl__ev_qmp *, @@ -770,13 +772,12 @@ static void cdrom_insert_lock_acquired(libxl__egc *eg= c, */ =20 if (cis->dm_ver =3D=3D LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) { - libxl__json_object *args =3D NULL; - int devid =3D libxl__device_disk_dev_number(cis->disk->vdev, - NULL, NULL); - - QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid); - cis->qmp.callback =3D cdrom_insert_ejected; - rc =3D libxl__ev_qmp_send(egc, &cis->qmp, "eject", args); + /* Before running the "eject" command, we need to know QEMU's + * version to find out which command to issue. + * cis->qmp isn't in Connected state yet, so run a dummy command + * to have QEMU's version available. */ + cis->qmp.callback =3D cdrom_insert_qmp_connected; + rc =3D libxl__ev_qmp_send(egc, &cis->qmp, "query-version", NULL); if (rc) goto out; } else { cdrom_insert_ejected(egc, &cis->qmp, NULL, 0); /* must be last */ @@ -787,6 +788,34 @@ static void cdrom_insert_lock_acquired(libxl__egc *egc, cdrom_insert_done(egc, cis, rc); /* must be last */ } =20 +static void cdrom_insert_qmp_connected(libxl__egc *egc, libxl__ev_qmp *qmp, + const libxl__json_object *response, + int rc) +{ + libxl__cdrom_insert_state *cis =3D CONTAINER_OF(qmp, *cis, qmp); + STATE_AO_GC(cis->ao); + libxl__json_object *args =3D NULL; + int devid =3D libxl__device_disk_dev_number(cis->disk->vdev, + NULL, NULL); + + if (rc) goto out; + + /* Using `device` parameter is deprecated since QEMU 2.8, we should + * use `id` now. They both have different meaning but we set the + * same `id` on -drive and -device on the command line. + */ + if (libxl__qmp_ev_qemu_compare_version(qmp, 2, 8, 0) >=3D 0) + QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid); + else + QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid); + qmp->callback =3D cdrom_insert_ejected; + rc =3D libxl__ev_qmp_send(egc, qmp, "eject", args); + if (rc) goto out; + return; +out: + cdrom_insert_done(egc, cis, rc); /* must be last */ +} + static void cdrom_insert_ejected(libxl__egc *egc, libxl__ev_qmp *qmp, const libxl__json_object *response, --=20 Anthony PERARD From nobody Fri Apr 26 22:38:39 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1619194600; cv=none; d=zohomail.com; s=zohoarc; b=AcOqzZ7Qr3LRO8eVnWtcnmjafEc73pjG0oCb2JY/CwlnT21RmCti7sqBSQd5tyoAO407we/nJNc42DNe5A4x9mm5wvRW/zB8sv8xHGn8uo8RUKFqzerg804e8bAxdbxtUeb7qj85WsZao6kmk9HMmo6gcRHkk91GLlLjJch9vJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619194600; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=W3c4O70h9ARsgIZA2d2OMOGbC1/K1afPSQE/mf6+lz8=; b=WiR8TZLZ7hEnUGsl5+EYcjOWOVdp3gvE6pKqJr9N1m1WlnASrpKFeazDvLu3gLyMQOCzA5+hhlkgptsrk1lcc1Xh3p9vEzNBg2yzGsyk462Tilrh5unMtkfqa9xwx79G6mqsr3+82EmQCLxTAieqHNNIdZJh73AOAE2691lSoT4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619194600861873.5691228295389; Fri, 23 Apr 2021 09:16:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.116486.222344 (Exim 4.92) (envelope-from ) id 1lZyTT-00088H-Dw; Fri, 23 Apr 2021 16:16:11 +0000 Received: by outflank-mailman (output) from mailman id 116486.222344; Fri, 23 Apr 2021 16:16:11 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTT-000889-Ad; Fri, 23 Apr 2021 16:16:11 +0000 Received: by outflank-mailman (input) for mailman id 116486; Fri, 23 Apr 2021 16:16:10 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZyTS-00087R-K9 for xen-devel@lists.xenproject.org; Fri, 23 Apr 2021 16:16:10 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 35ced14c-ff98-4f12-9faa-725c624e5efe; Fri, 23 Apr 2021 16:16:09 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 35ced14c-ff98-4f12-9faa-725c624e5efe DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1619194569; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=e0LTxQLG6A5IsUQiwdNWsSmOOkLTe8ooqtK21GVQ8t0=; b=KbbgA7t4chdajQh13E9811kTq8blGUiLEmyZwhe5oITRqqR++5dWR9g8 VLAtiBbBYoFgWDj7Ss4ZrRFozg8lIfzFXQQvGrfw/9fgOtj56eSciRUPF y4/japCsNtkwAyT6MSzZIgaMuzGe7uwCxp4Lmp1AiQHYH/ZuTI4scSnPl c=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: qYlh+ZA40hvYi3FXuKBxfCYHow35VphSwxelKsLG/C6xRdvct1yIlLIwiNzt7WQxkch5k22idJ iMqfBy0jmvglUt7U9nqfI1d/SO1kRIol0tjcmxWhYG0gKkjcThwylWoUkUd7i8OVg9hYZSN6UT jITG9HlladJSTws+m52CcUCd19KYrDvhI1lMZBVVCA4GWIrCFv9H0PNde9kxb+//iEmKkM+gNi Iw1wLE2yfs3/gtUTcTAf0ESDMNnILx6D7UL1bDGBQDZ/GhLXtGot47edv6DF1CKvwcUrVk7fQL veo= X-SBRS: 5.1 X-MesageID: 42285532 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:FzFZ56jvUfnojb/DnvvnlfflsHBQXwh13DAbvn1ZSRFFG/Gwv9 yynfgdyB//gCsQXnZlotybJKycWxrnmKJdy4N5B9efdSPhv3alK5wn0Jv6z1TbaknD38N+9Y MlSahxD9XsEUN35PyR3CCUG8stqePpzImGnuHbpk0CcShPS4VNqzh0ERyaFEoefngiObMcGI CH7sRK4xqMEE5nDfiTPXUOU+jdq9CjrvuPDSIuPBI79BKIyQqh9b+SKXOl9y0DWDBCy6pKyx mmryXF4MyY0s2T+1vn+EL4q79Xn9bgzdUrPr3wtuElbg/CpyztSIBoW7iptC04rue1+D8R4a XxiiZlBetfwTf8eXy0vAvM1mDboUkTwk6n83C0qz/CptH0Xz0zAcYpv/MmTjLpr3AOkfs59Y Aj5RP/i7NnSSnusQ642v3zEzZtrUawqWpKq59ps1VvFbEwRZUUkZYS5ypuYfE9NRO/0q8LOs 90AvrR4f5HGGnqFUzxjy1UzNugUm9bJGb+fmEy/sic0z1hlHtk1UcvxMsGgnca9J4mIqM0n9 j5Dg== X-IronPort-AV: E=Sophos;i="5.82,246,1613451600"; d="scan'208";a="42285532" From: Anthony PERARD To: CC: Anthony PERARD , Ian Jackson , Wei Liu Subject: [XEN PATCH 8/8] libxl: Replace QMP command "change" by "blockdev-change-media" Date: Fri, 23 Apr 2021 17:15:58 +0100 Message-ID: <20210423161558.224367-9-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210423161558.224367-1-anthony.perard@citrix.com> References: <20210423161558.224367-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) Content-Type: text/plain; charset="utf-8" "change" command as been removed in QEMU 6.0. We can use "blockdev-change-medium" instead. Using `id` with "blockdev-change-medium" requires a change to the QEMU command line, introduced by: "libxl: Use -device for cd-rom drives" Signed-off-by: Anthony PERARD Reviewed-by: Jason Andryuk --- tools/libs/light/libxl_disk.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c index faabdea7a4c3..93936d0dd0f8 100644 --- a/tools/libs/light/libxl_disk.c +++ b/tools/libs/light/libxl_disk.c @@ -962,12 +962,26 @@ static void cdrom_insert_addfd_cb(libxl__egc *egc, fdset =3D libxl__json_object_get_integer(o); =20 devid =3D libxl__device_disk_dev_number(disk->vdev, NULL, NULL); - QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid); - QMP_PARAMETERS_SPRINTF(&args, "target", "/dev/fdset/%d", fdset); - libxl__qmp_param_add_string(gc, &args, "arg", - libxl__qemu_disk_format_string(disk->format)); qmp->callback =3D cdrom_insert_inserted; - rc =3D libxl__ev_qmp_send(egc, qmp, "change", args); + + /* "change" is deprecated since QEMU 2.5 and the `device` parameter for + * for "blockdev-change-medium" is deprecated in QEMU 2.8. + * But `id` is only available in 2.8 we'll start using the new command + * with `id` with QEMU 2.8. + */ + if (libxl__qmp_ev_qemu_compare_version(qmp, 2, 8, 0) >=3D 0) { + QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid); + QMP_PARAMETERS_SPRINTF(&args, "filename", "/dev/fdset/%d", fdset); + libxl__qmp_param_add_string(gc, &args, "format", + libxl__qemu_disk_format_string(disk->format)); + rc =3D libxl__ev_qmp_send(egc, qmp, "blockdev-change-medium", args= ); + } else { + QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid); + QMP_PARAMETERS_SPRINTF(&args, "target", "/dev/fdset/%d", fdset); + libxl__qmp_param_add_string(gc, &args, "arg", + libxl__qemu_disk_format_string(disk->format)); + rc =3D libxl__ev_qmp_send(egc, qmp, "change", args); + } out: if (rc) cdrom_insert_done(egc, cis, rc); /* must be last */ --=20 Anthony PERARD