Glen Lalonde <lalonde@torolab2.vnet.ibm.com> (04/13/91)
I noticed that on my system that i/o to the ramdisk is only twice as fast as to my hard disk. This seems at little slow, and I noticed that even blocks on the ramdisk are cached which seems silly since the data is in memory anyways. Also, keeping ramdisk blocks in the cache reduces the amount of other non-ramdisks blocks you can keep in the cache. Further, if you do not want to maintain a cache then you will not need the two memory copies that happen per block. One is done in the kernel and the other in FS. Removing the memory copy in fs along with not having to do a cache search should help the performance of the ramdisk. Such a change is not trivial since get_block/put_block is called from many places in fs. I was thinking of forcing put_block to write to memory right away when it gets a ramdisk block. Then setting it up so calls to get_block in rw_chunk only would be removed, since most of the I/O goes through this routine. Rather than calling from rw_chunk to the kernel with the address of the block buffer you would give the final user address. Thus avoiding a second memory copy. Anyone tried something like this already...??? I was thinking of doing this on a 68000 based machine, MacMinix.