Thread (3 messages) 3 messages, 3 authors, 2025-01-22

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help