libxl: add support for soft reset
libxl: add support for soft reset

The pvops Linux kernel implements machine_ops.crash_shutdown as

static void xen_hvm_crash_shutdown(struct pt_regs *regs)
{
        native_machine_crash_shutdown(regs);
        xen_reboot(SHUTDOWN_soft_reset);
}

but currently the libxl driver does not handle the soft reset
shutdown event. As a result, the guest domain never proceeds
past xen_reboot(), making it impossible for HVM domains to save
a crash dump using kexec.

This patch adds support for handling the soft reset event by
calling libxl_domain_soft_reset() and re-enabling domain death
events, which is similar to the xl tool handling of soft reset
shutdown event.

Signed-off-by: Jim Fehlig <39929b5b86d72d51fceac59b52303e3fe8a3083e@suse.com>
ACKed-by: Michal Privoznik <83d82aaba2eed257f4814b0c239c260c4caaadf0@redhat.com>

zippy2/libvirt,olafhering/libvirt,eskultety/libvirt,nertpinx/libvirt,zippy2/libvirt,olafhering/libvirt,jardasgit/libvirt,crobinso/libvirt,eskultety/libvirt,crobinso/libvirt,libvirt/libvirt,nertpinx/libvirt,libvirt/libvirt,olafhering/libvirt,fabianfreyer/libvirt,eskultety/libvirt,jfehlig/libvirt,nertpinx/libvirt,eskultety/libvirt,crobinso/libvirt,jardasgit/libvirt,zippy2/libvirt,fabianfreyer/libvirt,andreabolognani/libvirt,olafhering/libvirt,zippy2/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,andreabolognani/libvirt,andreabolognani/libvirt,libvirt/libvirt,nertpinx/libvirt,jardasgit/libvirt,andreabolognani/libvirt,fabianfreyer/libvirt,jardasgit/libvirt,jfehlig/libvirt,jardasgit/libvirt,eskultety/libvirt,nertpinx/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,crobinso/libvirt,libvirt/libvirt,andreabolognani/libvirt