devices: virtio: fs: Include tag name in worker thread name

This will allow us to identify virtiofs threads in tracing tools such
as perfetto.

BUG=b:260038313
TEST=run arcvm

Change-Id: I198b599a3f710742fc549ab6ae376ad4cb661fc0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4045667
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
This commit is contained in:
Keiichi Watanabe 2022-11-22 15:09:35 +09:00 committed by crosvm LUCI
parent 5e35436666
commit c789769acf

View file

@ -131,6 +131,7 @@ pub type Result<T> = ::std::result::Result<T, Error>;
pub struct Fs { pub struct Fs {
cfg: virtio_fs_config, cfg: virtio_fs_config,
tag: String,
fs: Option<PassthroughFs>, fs: Option<PassthroughFs>,
queue_sizes: Box<[u16]>, queue_sizes: Box<[u16]>,
avail_features: u64, avail_features: u64,
@ -167,6 +168,7 @@ impl Fs {
Ok(Fs { Ok(Fs {
cfg, cfg,
tag: tag.to_string(),
fs: Some(fs), fs: Some(fs),
queue_sizes: vec![QUEUE_SIZE; num_queues].into_boxed_slice(), queue_sizes: vec![QUEUE_SIZE; num_queues].into_boxed_slice(),
avail_features: base_features, avail_features: base_features,
@ -295,9 +297,8 @@ impl VirtioDevice for Fs {
let irq = interrupt.clone(); let irq = interrupt.clone();
let socket = Arc::clone(&socket); let socket = Arc::clone(&socket);
let worker_result = let worker_result = thread::Builder::new()
thread::Builder::new() .name(format!("v_fs:{}:{}", self.tag, idx))
.name(format!("v_fs:{idx}"))
.spawn(move || { .spawn(move || {
let mut worker = Worker::new(mem, queue, server, irq, socket, slot); let mut worker = Worker::new(mem, queue, server, irq, socket, slot);
worker.run(evt, kill_evt, watch_resample_event) worker.run(evt, kill_evt, watch_resample_event)