Hannah, Jason and others,
Thanks for the replies. The answer was quite different and nobody came
with the interesting solution the tester found here:
On 12/16/05 00:13, Hannah Schroeter wrote:
On Thu, Dec 15, 2005 at 11:20:13AM -0500, Jason Crawford wrote:
I think the very first thing you should change is use the raw device
in OpenBSD (/dev/rsd0c) and that should speed things up a bit.
You're right. And high enough block size (though 1024k should be okay).
I.e. dd if=/dev/zero of=/dev/rsd0c bs=1024k
chefren, how's the measurement on OpenBSD 3.8 with this change?
About the same! Please read this small report with the "solution":
= =
Dell 1650, RAM size 256MB.
The controller is Adaptec AIC-7899 U160 (driver ahc)
The disk is Seagate ST336607LC
Test times of a few minutes to minimize effects of caching.
OpenBSD:
dd if=/dev/zero of=/dev/sd0c bs=1024k
6 MB/sec
dd if=/dev/zero of=/dev/rsd0c bs=1024k
15 MB/sec
mount /dev/sd0a /mnt
dd if=/dev/zero of=/mnt/foo bs=1024k
54 MB/sec
So, via a normally mounted filesystem, OpenBSD has the same
performance as Linux 'dd /dev/sda'.
= =
I'm pretty impressed the tester found this workaround, the user-mode
kernel boundary seems the culprit here. Linux doesn't need this "hack"
I don't know if this is fixable for OpenBSD. (Mickey?)
But it's quite sure for now, if you want use dd directly to a disk
with OpenBSD and need serious performance: don't forget to mount it!
+++chefren