On 12/10/2016 02:21 AM, Andrew Cooper wrote:
On 09/12/16 17:55, Paul Durrant wrote:
...if the domain is not under construction.
If upstream QEMU is in use then it will explicitly create an ioreq server
rather than implicitly creating the default ioreq server, which is a
side-effect of reading HVM_PARAM_IOREQ_PFN, HVM_PARAM_BUFIOREQ_PFN,
or HVM_PARAM_BUFIOREQ_EVTCHN (as is done by legacy QEMUs).
However, if the domain is subsequently saved/migrated then those parameters
are read and hence the default server will be unnecessarily instantiated.
This patch adds an extra check of the 'creation_finished' flag when those
HVM params are read and will only instantiate the server if the domain is
under construction, which will always be the case when QEMU is invoked.
Signed-off-by: Paul Durrant <paul.durr...@citrix.com>
Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com>
CC'ing the COLO guys. Please can you test with this patch?
Tested-by: Zhang Chen <zhangchen.f...@cn.fujitsu.com>
I have tested this patch, it works well on COLO!
Thanks
Zhang Chen
---
Cc: Jan Beulich <jbeul...@suse.com>
Cc: Andrew Cooper <andrew.coop...@citrix.com>
---
xen/arch/x86/hvm/hvm.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index e0f936b..c531f37 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5337,7 +5337,16 @@ static int hvmop_get_param(
{
domid_t domid;
- /* May need to create server. */
+ /*
+ * It may be necessary to create a default ioreq server here,
+ * because legacy versions of QEMU are not aware of the new API
+ * for explicit ioreq server creation. However, if the domain
+ * is not under construction then it will not be QEMU querying
+ * the parameters and thus the query should have that side-effect.
+ */
+ if ( d->creation_finished )
+ break;
+
domid = d->arch.hvm_domain.params[HVM_PARAM_DM_DOMAIN];
rc = hvm_create_ioreq_server(d, domid, 1,
HVM_IOREQSRV_BUFIOREQ_LEGACY, NULL);
.
--
Thanks
zhangchen
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel