From owner-freebsd-hackers Mon May 15 09:56:58 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id JAA07134 for hackers-outgoing; Mon, 15 May 1995 09:56:58 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id JAA07127 for ; Mon, 15 May 1995 09:56:54 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id CAA04994; Tue, 16 May 1995 02:53:15 +1000 Date: Tue, 16 May 1995 02:53:15 +1000 From: Bruce Evans Message-Id: <199505151653.CAA04994@godzilla.zeta.org.au> To: hackers@FreeBSD.org, wosch@cs.tu-berlin.de Subject: Re: slow floppy Sender: hackers-owner@FreeBSD.org Precedence: bulk >My floppy is very very very slow. >copy 1.2 MB: >1) mcopy 50 sec >2) cat 165 sec >3) dd 165 sec >4) mount -t msdos 585 sec (!!!) >4) mean that I need 1 1/2 h for installing bindist! A poor null modem >is faster. cat and `dd bs=18k' on the raw device should be faster. The default block size for /dev/fd0 is stupid (2k) while the default block size for /dev/rfd0 is better (16k) although it still has nothing to do with a hardware. The good performance for mcopy is probably because it uses the raw device with a large block size and the especially bad performance for msdosfs is probably because it uses the tiny file system block size of 512 bytes. msdosfs apparently reads only one block at a time and your system is apparently just slow enough that reading adjacent blocks in separate i/o's requires waiting a full disk revolution between the blocks. Thus you get a speed of about 1/5 second per block and it takes at least 2880 / 5 = 576 seconds to read the whole disk. To fix this, msdosfs needs to be improved. It doesn't call the vfs clustering routines. It needs to call them or do its own clustering. (The original version of it should have done its own clustering since vfs clustering didn't exist then. ufs didn't suffer so much from the lack of clustering because of its larger block size.) Bruce