9front - general discussion about 9front
 help / color / mirror / Atom feed
* [9front] devfs performance
@ 2022-01-16 15:27 Martijn Heil
  2022-01-17 15:27 ` [9front] " Martijn Heil
  0 siblings, 1 reply; 4+ messages in thread
From: Martijn Heil @ 2022-01-16 15:27 UTC (permalink / raw)
  To: 9front

Hello,

Lately I've been playing around with devfs, doing block interleaving
on two identical USB 3.0 HDD's. I was expecting to have a bit more
throughput compared to using one of those disks, but when I measured
read throughput of the block-interleaved virtual device with tput, the
throughput was exactly the same as measured on a single disk.
The read throughput of a single disk as measured with tput is about 60
MiB/s, so I don't think this would saturate the USB 3.0 SuperSpeed
bus.

Taking a look at /sys/src/9/port/devfs.c, and especially interio() at
/sys/src/9/port/devfs.c:1134,
it seems that the internal read and write operations to the files that
make up the virtual device are done synchronously instead of
asynchronously like I (perhaps naively) expected.
As I understand it, it reads one block from the first file, and only
when that block is done reading it starts reading a block from the
other file, and so on.

I think my interpretation here is correct, but I'm not that familiar
with the kernel source, so is what I'm saying here indeed correct?

It might be worthwhile to optimize this so that it reads
asynchronously from the files that the virtual device is built from.
Is this possible? And how could we achieve this?

Thank you for your time
Martijn Heil
aka
ninjoh

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-01-19 10:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-16 15:27 [9front] devfs performance Martijn Heil
2022-01-17 15:27 ` [9front] " Martijn Heil
2022-01-19  2:37   ` ori
2022-01-19  7:51   ` Roberto E. Vargas Caballero

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).