2018-08-10 11:35 GMT+02:00 Sad Clouds <cryintotheblue...@gmail.com>: > localhost# dd if=/dev/rsd0d of=/dev/null bs=1m count=10000 > 10000+0 records in > 10000+0 records out > 10485760000 bytes transferred in 11.749 secs (892481062 bytes/sec) > > localhost# dd if=/dev/sd0d of=/dev/null bs=1m count=10000 > 10000+0 records in > 10000+0 records out > 10485760000 bytes transferred in 196.552 secs (53348528 bytes/sec) > > Any ideas why block device I/O is so abysmal? Is this something > specific to NetBSD?
There is some experimental code on -current to optimize one part of the read/write-based I/O, supported on amd64. You can just boot a -current kernel (for example one from daily builds) to single user, and enable the code by escaping to DDB and setting variable ubc_direct to 1 (ctrl-alt-esc will give you DDB prompt, then 'w ubc_direct 1'), then 'continue' in DDB, then run your dd command. Jaromir