On Sat, 15 Apr 2000, Paul Barton-Davis wrote:
> >PS: Does anyone know how to make a RAW I/O device on a spare disk partition,
> >and then put an ext2 over it (running the whole partition in RAWIO mode) ?
> >Is that possible ?
>
> I don't think so. The point of raw i/o is to provide character
> device-like access to a device that would otherwise be a block device
> with i/o through the buffer cache. Since all file systems under Linux
> use the buffer cache, "putting ext2" over a "raw i/o partition" makes
> no semantic sense to me. The buffer cache usage comes because ext2 is
> a file system, not because of the kind of underlying device that its
> data resides on. You could create an implementation of ext2 that used
> video RAM as the storage medium, and access from user space would
> still be via the buffer cache *because its going via a filesystem*.
>
> At least, thats my understanding.
>
> --p
You may be right, but I recall a discussion with Stephen Tweedie about this,
and he gave me the impression that this RAW-IO-olny ext2 filesystem over
a RAWIO character device would be possible but I am not sure anymore.
Stephen, can you confirm/deny this ?
(if it's possible, any hint how to set up such a filesystem ?)
It would be interesting to compare filesystem latencies in the HDrecording
case. As said it's amazing how long the disk thread can get blocked during a
large buffer flush/metadata update, on a PII I saw watched the disk thread
blocking for several seconds (up 8 secs in the worst case).
That means at a datarate of 200kb/sec per audio tracks sometimes you would
need up to 2MB ringbuffer per track. Multiply this value with 50 tracks , then
you get 100MB of precious RAM wasted for doing only buffering.
I am convinced that we can do the job with 0.5MB per track when using RAW IO.
(Windoze hdrecording apps seems to work well with these amounts of buffering).
Benno.