Re: [Lsf-pc] [LSF/MM/BPF TOPIC] Rust block layer abstractions and benchmark strategies
From: Jan Kara <jack@suse.cz>
Date: 2025-01-21 13:18:33
On Tue 21-01-25 13:51:11, Andreas Hindborg wrote:
"Jan Kara" [off-list ref] writes:quoted
On Tue 21-01-25 12:13:48, Andreas Hindborg via Lsf-pc wrote:quoted
I would like to propose that we have a session on Rust in the block layer again this year. Specifically I would like to discuss some rather puzzling results I observe when I benchmark the C and Rust null block drivers. I did a write up of the challenges I face at [1]. The observations are not tied to rust, they also manifest in the C driver.The results are indeed somewhat curious. One factor I didn't see addressed in your blog is CPU scheduling. I've seen in the past cases where IO tasks were getting migrated across cores leading to jumps in perfomance. Did you try binding fio jobs to one CPU each?Yes, I am pinning the io jobs to cores with fio options `cpus_allowed=0-<jobs>` and `--cpus_allowed_policy=split` so I get 1 job per core. The kernel is configured with PREEMPT_NONE=y.
Ah, OK. In that case no great ideas from me. Since you've mentioned that when you get to slow / fast case the performance tends to stay there, perhaps you could use perf to profile the slow / fast case and see where's the difference? Honza -- Jan Kara [off-list ref] SUSE Labs, CR