Re: direct (unbufferd) disk access

Douglas Gilbert (dgilbert@interlog.com)
Sat, 26 Jun 1999 00:06:53 -0400


On Thu, Jun 24, 1999 at 11:35:56AM +0200, Christian Hammers wrote:
> Hello List
>
> How can I get the kernel to read/write some data immediately to disk without
> caching it in the kernel memory.
>
> I like to access one harddrive with two motherboards and like to have a shared
> partition that will be writen to by one motherboard and read by an other
> motherboard - but Linux seems to prevent that.
>
> I don't like to mount any partition (because of the filesystem check warnings)
> and will instead write raw data with "dd".
> Oh, and I don't like to flush ALL buffers, because this computer will be a
> redunant web-server that strongly needs buffers (for this reasons AFAIK I
> can't use flushb and sync).

You may like to look at:

http://www.torque.net/sg [and follow the "timings" link]

to get a feeling for what direct versus indirect IO is
costing you. Reasonably standard i386 hardware can get
you 20 to 30 MB/sec throughput using "indirect IO".
For substantially faster throughput you need direct
io. [These number are derived from the SCSI READ BUFFER
command which bypasses physical IO on the disk.]

You may also be interested in the utility "sg_dd512"
which implements "dd" functionality using the sg
device thus bypassing the block sub-system and its
caching.

Doug Gilbert

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/