]> xenbits.xensource.com Git - people/pauldu/xen.git/commitdiff
x86/hvm: process softirq while saving/loading entries
authorRoger Pau Monné <roger.pau@citrix.com>
Fri, 30 Oct 2020 13:28:03 +0000 (14:28 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 30 Oct 2020 13:28:03 +0000 (14:28 +0100)
On slow systems with sync_console saving or loading the context of big
guests can cause the watchdog to trigger. Fix this by adding a couple
of process_pending_softirqs.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/save.c

index a2c56fbc1efd5d1bbffe566b47381aaf5e035a81..584620985bf5bb94d34b4a5c2792ff9b8769bdef 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include <xen/guest_access.h>
+#include <xen/softirq.h>
 #include <xen/version.h>
 
 #include <asm/hvm/support.h>
@@ -255,6 +256,7 @@ int hvm_save(struct domain *d, hvm_domain_context_t *h)
                            v, i);
                     return -ENODATA;
                 }
+                process_pending_softirqs();
             }
         }
         else
@@ -268,6 +270,7 @@ int hvm_save(struct domain *d, hvm_domain_context_t *h)
                        d->domain_id, i);
                 return -ENODATA;
             }
+            process_pending_softirqs();
         }
     }
 
@@ -341,6 +344,7 @@ int hvm_load(struct domain *d, hvm_domain_context_t *h)
                    d->domain_id, desc->typecode, desc->instance);
             return -1;
         }
+        process_pending_softirqs();
     }
 
     /* Not reached */