Hi all,
I have few simple fixes for Xen for the next release:
- the first one fixes a regression in qemu-char;
- the second one is just a cleanup (that is needed to simplify preprocessor
dependencies);
- the last one avoids setting nonblocking on Xen (as is already done for
KVM).
The last two patches should be backported to older branches.
Stefano Stabellini (3):
qemu_chr_new_from_opts: do not overwrite existing chr->filename
xen: simplify xen_enabled
main_loop: do not set nonblocking if xen_enabled()
include/hw/xen/xen.h | 4 ----
qemu-char.c | 5 +++--
vl.c | 2 +-
3 files changed, 4 insertions(+), 7 deletions(-)
- Stefano
Stefano Stabellini
2013-May-27 18:13 UTC
[PATCH 1/3] qemu_chr_new_from_opts: do not overwrite existing chr->filename
Set the new filename only if it hasn''t been already set (for example by
qemu_chr_open_pty).
This fixes a regression that prevents Xen HVM domains from booting.
It was introduced by:
commit 2b220025993e76d4116781ca91a4fabc5ad9c722
Author: Lei Li <lilei@linux.vnet.ibm.com>
Date: Tue May 21 18:27:59 2013 +0800
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
qemu-char.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 4f8382e..06ffd93 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3276,7 +3276,6 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
ChardevReturn *ret = NULL;
const char *id = qemu_opts_id(opts);
const char *bid = NULL;
- char *filename = g_strdup(qemu_opt_get(opts, "backend"));
if (qemu_opt_get_bool(opts, "mux", 0)) {
bid = g_strdup_printf("%s-base", id);
@@ -3309,7 +3308,9 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
}
chr = qemu_chr_find(id);
- chr->filename = filename;
+ if (!chr->filename) {
+ chr->filename = g_strdup(qemu_opt_get(opts,
"backend"));
+ }
qapi_out:
qapi_free_ChardevBackend(backend);
--
1.7.2.5
No need for preprocessor conditionals in xen_enabled: xen_allowed is
always defined.
Please backport this patch to stable branches (it is needed by the
following patch to remove the dependency on a preprocessor identifier
defined by config-target.h).
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: qemu-stable@nongnu.org
---
include/hw/xen/xen.h | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
index 7451c5a..b42b0fd 100644
--- a/include/hw/xen/xen.h
+++ b/include/hw/xen/xen.h
@@ -25,11 +25,7 @@ extern bool xen_allowed;
static inline bool xen_enabled(void)
{
-#if defined(CONFIG_XEN_BACKEND) && defined(CONFIG_XEN)
return xen_allowed;
-#else
- return 0;
-#endif
}
int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
--
1.7.2.5
Stefano Stabellini
2013-May-27 18:13 UTC
[PATCH 3/3] main_loop: do not set nonblocking if xen_enabled()
Please backport this patch to stable branches.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: qemu-stable@nongnu.org
---
vl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vl.c b/vl.c
index 510d2c2..47ab45d 100644
--- a/vl.c
+++ b/vl.c
@@ -2022,7 +2022,7 @@ static void main_loop(void)
int64_t ti;
#endif
do {
- nonblocking = !kvm_enabled() && last_io > 0;
+ nonblocking = !kvm_enabled() && !xen_enabled() &&
last_io > 0;
#ifdef CONFIG_PROFILER
ti = profile_getclock();
#endif
--
1.7.2.5
Gerd Hoffmann
2013-May-28 06:37 UTC
Re: [PATCH 1/3] qemu_chr_new_from_opts: do not overwrite existing chr->filename
On 05/27/13 20:13, Stefano Stabellini wrote:> Set the new filename only if it hasn''t been already set (for example by > qemu_chr_open_pty). > > This fixes a regression that prevents Xen HVM domains from booting. > It was introduced by: > > commit 2b220025993e76d4116781ca91a4fabc5ad9c722 > Author: Lei Li <lilei@linux.vnet.ibm.com> > Date: Tue May 21 18:27:59 2013 +0800FYI: just posted a pull req which reverts this one (you are cc''ed). cheers, Gerd
Stefano Stabellini
2013-May-28 10:43 UTC
Re: [PATCH 1/3] qemu_chr_new_from_opts: do not overwrite existing chr->filename
On Tue, 28 May 2013, Gerd Hoffmann wrote:> On 05/27/13 20:13, Stefano Stabellini wrote: > > Set the new filename only if it hasn''t been already set (for example by > > qemu_chr_open_pty). > > > > This fixes a regression that prevents Xen HVM domains from booting. > > It was introduced by: > > > > commit 2b220025993e76d4116781ca91a4fabc5ad9c722 > > Author: Lei Li <lilei@linux.vnet.ibm.com> > > Date: Tue May 21 18:27:59 2013 +0800 > > FYI: just posted a pull req which reverts this one (you are cc''ed).Right, your two patches also solve the problem I was seeing. I''ll drop the first patch of my series.
Stefano Stabellini
2013-May-28 10:44 UTC
Re: [PATCH 1/3] qemu_chr_new_from_opts: do not overwrite existing chr->filename
On Mon, 27 May 2013, Stefano Stabellini wrote:> Set the new filename only if it hasn''t been already set (for example by > qemu_chr_open_pty). > > This fixes a regression that prevents Xen HVM domains from booting. > It was introduced by: > > commit 2b220025993e76d4116781ca91a4fabc5ad9c722 > Author: Lei Li <lilei@linux.vnet.ibm.com> > Date: Tue May 21 18:27:59 2013 +0800 > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>Gerd submitted an alternative fix to this issue here: http://marc.info/?l=qemu-devel&m=136972286727453 I''ll drop this patch.> qemu-char.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/qemu-char.c b/qemu-char.c > index 4f8382e..06ffd93 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -3276,7 +3276,6 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts, > ChardevReturn *ret = NULL; > const char *id = qemu_opts_id(opts); > const char *bid = NULL; > - char *filename = g_strdup(qemu_opt_get(opts, "backend")); > > if (qemu_opt_get_bool(opts, "mux", 0)) { > bid = g_strdup_printf("%s-base", id); > @@ -3309,7 +3308,9 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts, > } > > chr = qemu_chr_find(id); > - chr->filename = filename; > + if (!chr->filename) { > + chr->filename = g_strdup(qemu_opt_get(opts, "backend")); > + } > > qapi_out: > qapi_free_ChardevBackend(backend); > -- > 1.7.2.5 >