Re: [Lsf-pc] [LSF/MM/BPF TOPIC] Rust block layer abstractions and benchmark strategies
From: Niklas Cassel <cassel@kernel.org>
Date: 2025-01-22 09:52:26
Hello Andreas, On Tue, Jan 21, 2025 at 01:51:11PM +0100, Andreas Hindborg wrote:
Hi Jan, "Jan Kara" [off-list ref] writes:quoted
Hi! 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.
"I also cover a problem with the benchmark results that manifested during testing for v6.12-rc2." I assume that all the results on: https://metaspace.github.io/2024/12/02/problems-in-benchmark-land.html are with kernel v6.12-rc2 ? It would be interesting to test an older kernel version, and see if it is e.g. a scheduler bug. You might also want to test with this series applied (which landed last minute before v6.13 was tagged): https://lore.kernel.org/lkml/20250119110410.GAZ4zcKkx5sCjD5XvH@fat_crate.local/T/#u (local) It fixes bugs that were introduced in v6.12-rc1 and v6.7-rc2 respectively. Kind regards, Niklas