All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Liu <wei.liu2@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Wei Liu <wei.liu2@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>
Subject: Re: "xl vcpu-set" not persistent across reboot?
Date: Fri, 3 Jun 2016 17:35:20 +0100	[thread overview]
Message-ID: <20160603163519.GO14588@citrix.com> (raw)
In-Reply-To: <5751B36302000078000F1A67@prv-mh.provo.novell.com>

On Fri, Jun 03, 2016 at 08:42:11AM -0600, Jan Beulich wrote:
> >>> On 03.06.16 at 15:41, <wei.liu2@citrix.com> wrote:
> > On Fri, Jun 03, 2016 at 02:29:12AM -0600, Jan Beulich wrote:
> >> Ian, Wei,
> >> 
> >> is it intentional that rebooting a (HVM) guest after having altered its
> >> vCPU count will reset it back to the vCPU count it was originally
> >> started with? That doesn't seem very natural - if one hotplugs a CPU
> >> into a physical system and then reboots, that CPU will remain there.
> >> 
> > 
> > This is probably an oversight.
> > 
> > I've added this to my list of things to look at after the release.
> 
> Thanks!
> 

I got a patch ready.  But QEMU upstream refuses to start on the receiving end
with following error message:

qemu-system-i386: Unknown savevm section or instance 'cpu_common' 1
qemu-system-i386: load of migration failed: Invalid argument

With QEMU traditional HVM guest and PV guest, the guest works fine -- up
and running with all hot plugged cpus available.

So I think the relevant libxl information is transmitted but we also
need to fix QEMU upstream. But that's a separate issue.

Wei.

---8<---
From 790ff77c6307b341dec0b4cc5e2d394e42f82e7c Mon Sep 17 00:00:00 2001
From: Wei Liu <wei.liu2@citrix.com>
Date: Fri, 3 Jun 2016 16:38:32 +0100
Subject: [PATCH] libxl: update vcpus bitmap in retrieved geust config

... because the available vcpu bitmap can change during domain life time
due to cpu hotplug and unplug.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/libxl/libxl.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 006b83f..99617f3 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -7270,6 +7270,37 @@ int libxl_retrieve_domain_configuration(libxl_ctx *ctx, uint32_t domid,
         libxl_dominfo_dispose(&info);
     }
 
+    /* VCPUs */
+    {
+        libxl_vcpuinfo *vcpus;
+        libxl_bitmap *map;
+        int nr_vcpus, nr_cpus;
+        unsigned int i;
+
+        vcpus = libxl_list_vcpu(ctx, domid, &nr_vcpus, &nr_cpus);
+        if (!vcpus) {
+            LOG(ERROR, "fail to get vcpu list for domain %d", domid);
+            rc = ERROR_FAIL;
+            goto out;
+        }
+
+        /* Update the avail_vcpus bitmap accordingly */
+        map = &d_config->b_info.avail_vcpus;
+
+        libxl_bitmap_dispose(map);
+
+        libxl_bitmap_alloc(ctx, map, nr_vcpus);
+
+        libxl_bitmap_init(map);
+
+        for (i = 0; i < nr_vcpus; i++) {
+            if (vcpus[i].online)
+                libxl_bitmap_set(map, i);
+        }
+
+        libxl_vcpuinfo_list_free(vcpus, nr_vcpus);
+    }
+
     /* Memory limits:
      *
      * Currently there are three memory limits:
-- 
2.1.4



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-06-03 16:37 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03  8:29 "xl vcpu-set" not persistent across reboot? Jan Beulich
2016-06-03 13:41 ` Wei Liu
2016-06-03 14:42   ` Jan Beulich
2016-06-03 16:35     ` Wei Liu [this message]
2016-06-06  8:58       ` Jan Beulich
2016-06-06 17:18       ` Wei Liu
2016-06-06 17:20         ` Wei Liu
2016-06-06 17:34           ` Andrew Cooper
2016-06-07  8:30             ` Wei Liu
2016-06-14 16:34               ` Ian Jackson
2016-06-14 16:39                 ` Wei Liu
2016-06-14 16:57                   ` Ian Jackson
2016-06-14 16:59                     ` Andrew Cooper
2016-06-14 17:06                       ` Wei Liu
2016-06-14 17:03                     ` Wei Liu
2016-06-14 17:23                       ` Wei Liu
2016-06-14 17:35                     ` Anthony PERARD
2016-06-07  6:38         ` Jan Beulich
2016-06-07  8:27           ` Wei Liu
2016-06-06  9:04 Jan Beulich
2016-06-06 13:07 ` Stefano Stabellini
2016-06-06 13:42   ` Wei Liu
2016-06-06 14:00     ` Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160603163519.GO14588@citrix.com \
    --to=wei.liu2@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.