From cd2b03f6edca3984843b16e2a243674238aed1ab Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Thu, 9 Apr 2020 11:27:41 +0200 Subject: [PATCH] vhost_user_backend: Return a list of vring workers Now that multiple worker threads can be run from the backend crate, it is important that each backend implementation can access every worker thread. Signed-off-by: Sebastien Boeuf --- vhost_user_backend/src/lib.rs | 8 ++++---- vhost_user_block/src/lib.rs | 4 ++-- vhost_user_net/src/lib.rs | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vhost_user_backend/src/lib.rs b/vhost_user_backend/src/lib.rs index 611d9e7d6..602fcdaa6 100644 --- a/vhost_user_backend/src/lib.rs +++ b/vhost_user_backend/src/lib.rs @@ -191,8 +191,8 @@ impl VhostUserDaemon { /// Retrieve the vring worker. This is necessary to perform further /// actions like registering and unregistering some extra event file /// descriptors. - pub fn get_vring_worker(&self) -> Arc { - self.handler.lock().unwrap().get_vring_worker() + pub fn get_vring_workers(&self) -> Vec> { + self.handler.lock().unwrap().get_vring_workers() } } @@ -545,8 +545,8 @@ impl VhostUserHandler { }) } - fn get_vring_worker(&self) -> Arc { - self.workers[0].clone() + fn get_vring_workers(&self) -> Vec> { + self.workers.clone() } fn vmm_va_to_gpa(&self, vmm_va: u64) -> VhostUserHandlerResult { diff --git a/vhost_user_block/src/lib.rs b/vhost_user_block/src/lib.rs index 7e44deea8..e1c5c11ae 100644 --- a/vhost_user_block/src/lib.rs +++ b/vhost_user_block/src/lib.rs @@ -449,14 +449,14 @@ pub fn start_block_backend(backend_command: &str) { .unwrap(); debug!("blk_daemon is created!\n"); - let vring_worker = blk_daemon.get_vring_worker(); + let vring_worker = blk_daemon.get_vring_workers(); blk_backend .write() .unwrap() .thread .lock() .unwrap() - .set_vring_worker(Some(vring_worker)); + .set_vring_worker(Some(vring_worker[0].clone())); if let Err(e) = blk_daemon.start() { error!( diff --git a/vhost_user_net/src/lib.rs b/vhost_user_net/src/lib.rs index cc76d8d73..34983540c 100644 --- a/vhost_user_net/src/lib.rs +++ b/vhost_user_net/src/lib.rs @@ -473,7 +473,7 @@ pub fn start_net_backend(backend_command: &str) { ) .unwrap(); - let vring_worker = net_daemon.get_vring_worker(); + let vring_worker = net_daemon.get_vring_workers(); net_backend .write() @@ -481,7 +481,7 @@ pub fn start_net_backend(backend_command: &str) { .thread .lock() .unwrap() - .set_vring_worker(Some(vring_worker)); + .set_vring_worker(Some(vring_worker[0].clone())); if let Err(e) = net_daemon.start() { println!(