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>