fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
linux: RunnableLinuxVm<V, Vcpu>,
sys_allocator: SystemAllocator,
cfg: Config,
control_server_socket: Option<UnlinkUnixSeqpacketListener>,
irq_control_tubes: Vec<Tube>,
vm_memory_control_tubes: Vec<VmMemoryTube>,
control_tubes: Vec<TaggedControlTube>,
balloon_host_tube: Option<Tube>,
disk_host_tubes: &[Tube],
gpu_control_tube: Tube,
usb_control_tube: Tube,
vm_evt_rdtube: RecvTube,
vm_evt_wrtube: SendTube,
sigchld_fd: SignalFd,
gralloc: RutabagaGralloc,
vcpu_ids: Vec<usize>,
iommu_host_tube: Option<Tube>,
hp_control_tube: Sender<PciRootCommand>,
hp_thread: JoinHandle<()>,
hotplug_manager: Option<PciHotPlugManager>,
swap_controller: Option<SwapController>,
reg_evt_rdtube: RecvTube,
guest_suspended_cvar: Option<Arc<(Mutex<bool>, Condvar)>>,
pvclock_host_tube: Option<Tube>,
metrics_tube: RecvTube,
vfio_container_manager: VfioContainerManager
) -> Result<ExitState>