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

Reply via email to