Advise about bounce buffers.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 23 Nov 2004 00:36:34 +0000 (00:36 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 23 Nov 2004 00:36:34 +0000 (00:36 +0000)
doc/filesys.texi

index 8b7bdb46f1d753032bd2892bcd19e35b2b2f0d3f..a359e5ea79365c436feff31e2548fa1c7175cdae 100644 (file)
@@ -169,6 +169,18 @@ measured by the number of disk accesses.  (For example, metadata is
 generally more valuable to cache than data.)  Document your
 replacement algorithm in your design document.
 
+The provided file system code uses a ``bounce buffer'' in @struct{file}
+to translate the disk's sector-by-sector interface into the system call
+interface's byte-by-byte interface.  It needs per-file buffers because,
+without them, there's no other good place to put sector
+data.@footnote{The stack is not a good place because large objects
+should not be allocated on the stack.  A 512-byte sector is pushing the
+limit there.}  As part of implementing the buffer cache, you should get
+rid of these bounce buffers.  Instead, copy data into and out of sectors
+in the buffer cache directly.  You will probably need some
+synchronization to prevent sectors from being evicted from the cache
+while you are using them.
+
 In addition to the basic file caching scheme, your implementation
 should also include the following enhancements: