mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
virtio-devices, vmm: Shutdown VMM on virtio thread panic
Shutdown the VMM in the virtio (or VMM side of vhost-user) thread panics. See: #3031 Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
@@ -303,6 +303,7 @@ pub struct Vsock<B: VsockBackend> {
|
||||
backend: Arc<RwLock<B>>,
|
||||
path: PathBuf,
|
||||
seccomp_action: SeccompAction,
|
||||
exit_evt: EventFd,
|
||||
}
|
||||
|
||||
#[derive(Versionize)]
|
||||
@@ -326,6 +327,7 @@ where
|
||||
backend: B,
|
||||
iommu: bool,
|
||||
seccomp_action: SeccompAction,
|
||||
exit_evt: EventFd,
|
||||
) -> io::Result<Vsock<B>> {
|
||||
let mut avail_features = 1u64 << VIRTIO_F_VERSION_1 | 1u64 << VIRTIO_F_IN_ORDER;
|
||||
|
||||
@@ -347,6 +349,7 @@ where
|
||||
backend: Arc::new(RwLock::new(backend)),
|
||||
path,
|
||||
seccomp_action,
|
||||
exit_evt,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -439,6 +442,7 @@ where
|
||||
&self.seccomp_action,
|
||||
Thread::VirtioVsock,
|
||||
&mut epoll_threads,
|
||||
&self.exit_evt,
|
||||
move || {
|
||||
if let Err(e) = handler.run(paused, paused_sync.unwrap()) {
|
||||
error!("Error running worker: {:?}", e);
|
||||
|
||||
@@ -275,6 +275,7 @@ mod tests {
|
||||
TestBackend::new(),
|
||||
false,
|
||||
seccompiler::SeccompAction::Trap,
|
||||
EventFd::new(EFD_NONBLOCK).unwrap(),
|
||||
)
|
||||
.unwrap(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user