[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XEN PATCH for-4.15] libxl: Replace deprecated QMP command by "query-cpus-fast"


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Mon, 22 Mar 2021 14:17:44 +0000
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Mon, 22 Mar 2021 14:18:10 +0000
  • Ironport-hdrordr: A9a23:zfm48q20pkwbpXJTZ3UPIwqjBFAkLtp033Aq2lEZdDV+WKWj+P yGtvIdyBPylXItQ3kmg9+NI+2tRnnb+J5z7+AqTNKfdSPhv3alK5wn0Jv6z1TbakrD38NUyK sISclDIfLqC1wSt6vHyS2ZN/pl/9Wd6qCvgo7lvhVQZCVncbtp4Qs8KivzKC1LbTJLD5Y4C5 aQj/Avz1HLRV0tYtmmHX5AZuDfprTw5fbbSCQbDB0q4hTmt12VwYP9eiL14j4uFxdGwbIv6g H+4m/E2pk=
  • Ironport-sdr: gDU9YOZltnPkmbL5qfoHnDE2uuKo84dBf3CW8NukPI6cUvyn19Z92/c42QM1Kl+6PtDZGOjwrY AOKdU7b9fGFoh2tyEN9HIcBv2z7YcNRRFWilY1rciwOIdp0KBdp70jD2o4TPn16rX0gEdW19jp 68rK4YlO2x5hXnycSL79ZIYNygiHi2Gd5QvH+6LYgKhPVJzQy7JEdBUHdKMh1roMaMoaj6dcM7 9TZlEJ6ULNQ/TwA9wWJRKv6GNnR5JzJ4kbYwGfGRzx63Nm09AGCyllrFX4mYpAHTokgKwsU8NF l/c=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

We use the deprecated QMP command "query-cpus" which will be remove in
the upcoming QEMU 6.0 release. There's a replacement which is
"query-cpus-fast", and have been available since QEMU 2.12 (April
2018).

In order to been able to keep using recent version of QEMU, this patch
replace the deprecated command by the newer version. And because we
are in the "feature freeze" period, this patch is kept simple without
fallback (which could have been used when "query-cpus-fast" wasn't
available).

Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
 tools/libs/light/libxl_domain.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 5d4ec9071160..e32e1cd39fea 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -1740,23 +1740,23 @@ static int libxl__set_vcpuonline_xenstore(libxl__gc 
*gc, uint32_t domid,
     return rc;
 }
 
-static int qmp_parse_query_cpus(libxl__gc *gc,
-                                libxl_domid domid,
-                                const libxl__json_object *response,
-                                libxl_bitmap *const map)
+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":
-     * [ { 'CPU': 'int',...} ]
+    /* Parse response to QMP command "query-cpus-fast":
+     * [ { 'cpu-index': 'int',...} ]
      */
     for (i = 0; (cpu = libxl__json_array_get(response, i)); i++) {
         unsigned int cpu_index;
         const libxl__json_object *o;
 
-        o = libxl__json_map_get("CPU", cpu, JSON_INTEGER);
+        o = libxl__json_map_get("cpu-index", cpu, JSON_INTEGER);
         if (!o) {
             LOGD(ERROR, domid, "Failed to retrieve CPU index.");
             return ERROR_QEMU_API;
@@ -1841,7 +1841,7 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid,
                                              LIBXL_QMP_CMD_TIMEOUT * 1000);
             if (rc) goto out;
             qmp->callback = set_vcpuonline_qmp_cpus_queried;
-            rc = libxl__ev_qmp_send(egc, qmp, "query-cpus", NULL);
+            rc = libxl__ev_qmp_send(egc, qmp, "query-cpus-fast", NULL);
             if (rc) goto out;
             return AO_INPROGRESS;
         default:
@@ -1876,7 +1876,7 @@ static void set_vcpuonline_qmp_cpus_queried(libxl__egc 
*egc,
     if (rc) goto out;
 
     libxl_bitmap_alloc(CTX, &current_map, svos->info.vcpu_max_id + 1);
-    rc = qmp_parse_query_cpus(gc, qmp->domid, response, &current_map);
+    rc = qmp_parse_query_cpus_fast(gc, qmp->domid, response, &current_map);
     if (rc) goto out;
 
     libxl_bitmap_copy_alloc(CTX, final_map, svos->cpumap);
@@ -2199,7 +2199,7 @@ static void retrieve_domain_configuration_lock_acquired(
         libxl_bitmap_alloc(CTX, &rdcs->qemuu_cpus,
                            d_config->b_info.max_vcpus);
         rdcs->qmp.callback = retrieve_domain_configuration_cpu_queried;
-        rc = libxl__ev_qmp_send(egc, &rdcs->qmp, "query-cpus", NULL);
+        rc = libxl__ev_qmp_send(egc, &rdcs->qmp, "query-cpus-fast", NULL);
         if (rc) goto out;
         has_callback = true;
     }
@@ -2220,7 +2220,7 @@ static void retrieve_domain_configuration_cpu_queried(
 
     if (rc) goto out;
 
-    rc = qmp_parse_query_cpus(gc, qmp->domid, response, &rdcs->qemuu_cpus);
+    rc = qmp_parse_query_cpus_fast(gc, qmp->domid, response, 
&rdcs->qemuu_cpus);
 
 out:
     retrieve_domain_configuration_end(egc, rdcs, rc);
-- 
Anthony PERARD




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.