|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] ioreq server regression
On 12/12/16 16:01, Boris Ostrovsky wrote:
> Looks like commit e7dabe59c ("x86/hvm: don't unconditionally create a
> default ioreq server") breaks restore for HVM guests.
>
> I see "qemu: hardware error: Invalid ioreq type 0x53" in qemu log.
>
> -boris
>
Does this help? The current creation_finished logic is wrong if a 2nd
toolstack component performs a pause/unpause pair on the domain.
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3abaca9..6043f89 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1004,13 +1004,6 @@ int domain_unpause_by_systemcontroller(struct
domain *d)
{
int old, new, prev = d->controller_pause_count;
- /*
- * We record this information here for populate_physmap to figure out
- * that the domain has finished being created. In fact, we're only
- * allowed to set the MEMF_no_tlbflush flag during VM creation.
- */
- d->creation_finished = true;
-
do
{
old = prev;
@@ -1022,6 +1015,14 @@ int domain_unpause_by_systemcontroller(struct
domain *d)
prev = cmpxchg(&d->controller_pause_count, old, new);
} while ( prev != old );
+ /*
+ * We record this information here for populate_physmap to figure out
+ * that the domain has finished being created. In fact, we're only
+ * allowed to set the MEMF_no_tlbflush flag during VM creation.
+ */
+ if ( prev == 0 )
+ d->creation_finished = true;
+
domain_unpause(d);
return 0;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |