diff options
author | Stephen Barber <smbarber@chromium.org> | 2017-10-29 23:13:48 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-10-30 23:21:37 -0700 |
commit | ce374793bf1b40838c7588620ac5b3784fa4997a (patch) | |
tree | 71d908d9c27b9b5d1422e45647d90be1e5a3c1a6 /devices/src/virtio/rng.rs | |
parent | d657af628a2f0967d8a004946abde3ed34dd6dd7 (diff) | |
download | crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar.gz crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar.bz2 crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar.lz crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar.xz crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.tar.zst crosvm-ce374793bf1b40838c7588620ac5b3784fa4997a.zip |
crosvm/devices: set thread names
crosvm spawns a lot of processes/threads, and having these all use the same name as the original process can be confusing. So at least in the instances where Rust threads are spawned (vs. minijail_fork()), use a thread::Builder to allow setting the thread name. BUG=none TEST=start crosvm, check thread names with top Change-Id: I6e55ff5fd60f258880bda8e656ab7f9da82c656e Reviewed-on: https://chromium-review.googlesource.com/742394 Commit-Ready: Stephen Barber <smbarber@chromium.org> Tested-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'devices/src/virtio/rng.rs')
-rw-r--r-- | devices/src/virtio/rng.rs | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/devices/src/virtio/rng.rs b/devices/src/virtio/rng.rs index 292d3f1..da5d40b 100644 --- a/devices/src/virtio/rng.rs +++ b/devices/src/virtio/rng.rs @@ -8,7 +8,7 @@ use std::io; use std::os::unix::io::{AsRawFd, RawFd}; use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; -use std::thread::spawn; +use std::thread; use sys_util::{EventFd, GuestMemory, Poller}; @@ -172,16 +172,23 @@ impl VirtioDevice for Rng { let queue = queues.remove(0); if let Some(random_file) = self.random_file.take() { - spawn(move || { - let mut worker = Worker { - queue: queue, - mem: mem, - random_file: random_file, - interrupt_status: status, - interrupt_evt: interrupt_evt, - }; - worker.run(queue_evts.remove(0), kill_evt); - }); + let worker_result = thread::Builder::new() + .name("virtio_rng".to_string()) + .spawn(move || { + let mut worker = Worker { + queue: queue, + mem: mem, + random_file: random_file, + interrupt_status: status, + interrupt_evt: interrupt_evt, + }; + worker.run(queue_evts.remove(0), kill_evt); + }); + + if let Err(e) = worker_result { + error!("failed to spawn virtio_rng worker: {}", e); + return; + } } } } |