Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Sep 2002 11:42:47 +1000
From:      Greg Lehey <grog@FreeBSD.ORG>
To:        "Jack L. Stone" <jackstone@sage-one.net>
Cc:        Matthew Seaman <m.seaman@infracaninophile.co.uk>, Warren Block <wblock@wonkity.com>, FreeBSD LIST <FreeBSD-Questions@FreeBSD.ORG>
Subject:   Re: dd if=/dev/zero of=/dev/ad1
Message-ID:  <20020907014247.GF1207@sydney.worldwide.lemis.com>
In-Reply-To: <3.0.5.32.20020901182122.014b5a00@mail.sage-one.net>
References:  <Pine.BSF.4.21.0209011648400.13232-100000@wonkity.com> <20020901223639.GA12421@happy-idiot-talk.infracaninophi> <Pine.BSF.4.21.0209011648400.13232-100000@wonkity.com> <3.0.5.32.20020901182122.014b5a00@mail.sage-one.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday,  1 September 2002 at 18:21:22 -0500, Jack L. Stone wrote:
> At 12:00 AM 9.2.2002 +0100, Matthew Seaman wrote:
>> On Sun, Sep 01, 2002 at 04:52:39PM -0600, Warren Block wrote:
>>> On Sun, 1 Sep 2002, Matthew Seaman wrote:
>>>
>>>> It's part of the IDE specification: 128k is the maximum IO transfer
>>>> size.  Oh --- the equivalent figure for SCSI discs is 64kB.
>>>
>>> I'm reasonably certain that for SCSI it's 64K *blocks* of 512 bytes
>>> each, or 32M.  Some systems may have driver limitations that break
>>> transfers up into 64K chunks, though.
>>
>> Like FreeBSD perhaps?
>>
>>    happy-idiot-talk:/home/matthew:# dd if=/dev/da0c of=/dev/null bs=1m &
>>    [2] 13192
>>    happy-idiot-talk:/home/matthew:# iostat da0 1
>>          tty             da0             cpu
>>     tin tout  KB/t tps  MB/s  us ni sy in id
>>       5   11  0.00   0  0.00   2  0  0  3 94
>>       1   43 64.00 556 34.77   1  0  2  2 95
>>       0   43 64.00 557 34.84   1  0  0  4 95
>>       0   42 64.00 556 34.74   0  0  2  3 95
>>       0   43 64.00 557 34.82   0  0  1  3 96

Yes, this is a limitation imposed by the CAM drivers.

> ...and for the IDE as per Greg:
>
> dd if=/dev/ad0c of=/dev/null bs=128k &
> and in the background do an 'iostat ad0 1'.  Here's an example with an
> IDE drive:
>
>   === grog@zaphod (/dev/ttyp0) ~ 3 -> iostat ad0 1
>         tty             ad0             cpu
>    tin tout  KB/t tps  MB/s  us ni sy in id
>      0    3  5.19   7  0.03  11  0  4  1 84
>      0  126 127.36 183 22.74   0  0  6  2 92
>      0   44 128.00 190 23.76   0  0  2  0 98
>      0   44 128.00 191 23.89   0  0  5  0 95
>      0   44 128.00 191 23.88   0  0  7  1 92
>
> As you can see, it's really doing 128 kB transfers, for an average
> transfer rate of almost 24 MB/s.

This may be due to an IDE limitation, but I don't know of any such
limitation.  More importantly, it's the maximum transfer that the
system can make for any device.  It's limited by the definition
MAXPHYS, which you can find in /usr/src/sys/i386/include/param.h (for
some value of i386 :-):

  #define MAXPHYS		(128 * 1024)	/* max raw I/O transfer size */

Greg
--
See complete headers for address and phone numbers

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020907014247.GF1207>