Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Apr 2006 18:10:50 +0200
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Jean-Yves Lefort <jylefort@FreeBSD.org>
Cc:        freebsd-geom@FreeBSD.org
Subject:   Re: multiple of sector size I/O restriction 
Message-ID:  <889.1145808650@critter.freebsd.dk>
In-Reply-To: Your message of "Sun, 23 Apr 2006 17:56:05 %2B0200." <20060423175605.35a26523.jylefort@FreeBSD.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <20060423175605.35a26523.jylefort@FreeBSD.org>, Jean-Yves Lefort wri
tes:

>> >Which causes this:
>> >
>> >	# dd if=3D/dev/ad1 of=3Dtest bs=3D512 count=3D1
>> >	1+0 records in
>> >	1+0 records out
>> >	512 bytes transferred in 1.889527 secs (271 bytes/sec)
>> >
>> >	# dd if=3D/dev/ad1 of=3Dtest bs=3D513 count=3D1
>> >	dd: /dev/ad1: Invalid argument
>> >	0+0 records in
>> >	0+0 records out
>> >	0 bytes transferred in 0.000254 secs (0 bytes/sec)
>> >
>> >Why this restriction?
>> 
>> That is how disks work.
>
>I should reformulate my question.
>
>I've found some linux code which reads from a raw cd device in
>non-multiples of the sector size; I imagine that this code works on
>linux. This leads me to think that it is possible to overcome the
>hardware limitation by software means. Am I right?

Yes, the linux kernel does not give access to the raw disks, you
always have to pass though their buffer cache.

FreeBSD does never give you access to the buffer cache but always
sends you directly to the disk.

The userland application will have to read an integral number of
sectors at their physical boundaries on FreeBSD.


-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.



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