Quick fix for breakage of read clustering on non-IDE drives. Read

clustering is obsolescent technology so hardly anyone noticed.  On
a DORS 32160 SCSI drive with 4 tags, read clustering makes very
little difference even for huge sequential reads.  However, on a
ZIP SCSI drive with 0 tags, the minimum overhead per block is about
40 msec, so very large clusters must be used to get anywhere near
the maximum transfer rate.  Using clusters consisting of 1 8K block
reduces the transfer rate to about 250K/sec.  Under msdosfs, missing
read clustering is normal and a cluster size of 1 512 byte block
reduces the transfer rate to about 25K/sec.

Broken in:	rev.1.18
This commit is contained in:
Bruce Evans 1998-08-18 03:54:39 +00:00
parent 4b82d708ae
commit 1874ef935c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=38418
3 changed files with 6 additions and 6 deletions

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95
* $Id: ufs_bmap.c,v 1.20 1998/02/06 12:14:17 eivind Exp $
* $Id: ufs_bmap.c,v 1.21 1998/07/04 20:45:39 julian Exp $
*/
#include <sys/param.h>
@ -163,7 +163,7 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb)
maxrun -= 1;
}
if (maxrun == 0) {
if (maxrun <= 0) {
vp->v_maxio = DFLTPHYS;
maxrun = DFLTPHYS / blksize;
maxrun -= 1;

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95
* $Id: ufs_bmap.c,v 1.20 1998/02/06 12:14:17 eivind Exp $
* $Id: ufs_bmap.c,v 1.21 1998/07/04 20:45:39 julian Exp $
*/
#include <sys/param.h>
@ -163,7 +163,7 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb)
maxrun -= 1;
}
if (maxrun == 0) {
if (maxrun <= 0) {
vp->v_maxio = DFLTPHYS;
maxrun = DFLTPHYS / blksize;
maxrun -= 1;

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95
* $Id: ufs_bmap.c,v 1.20 1998/02/06 12:14:17 eivind Exp $
* $Id: ufs_bmap.c,v 1.21 1998/07/04 20:45:39 julian Exp $
*/
#include <sys/param.h>
@ -163,7 +163,7 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb)
maxrun -= 1;
}
if (maxrun == 0) {
if (maxrun <= 0) {
vp->v_maxio = DFLTPHYS;
maxrun = DFLTPHYS / blksize;
maxrun -= 1;