From: Matthieu D. <mat...@ir...> - 2012-04-10 14:04:01
|
Hello, I'm new to fuse, I have followed the tutorial at http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/ and I would like some precisions about fuse's behavior. The aforementioned tutorial presents a file system that logs all the operations performed, thus it is very useful to start. I noticed that when doing a fwrite to write, say, 1MB at once, it translates into a series of writes of 4KB on the fuse side. Changing the buffer size on client using setvbuf doesn't change this behavior. Is their any way to force one fwrite on client to translate into one single write operation on the fuse side? Also I would like to be sure to understand the path of the data from client to the file system : when a client does an fwrite, the content of the data is first copied into a local buffer (if such a buffer has been set, which is the case by default), when this buffer is full it is flushed into a buffer in kernel space, then this buffer is passed as argument of the write function on the fuse side, am I right ? (or is there more steps involved? my concern is about the number of copies of data, mainly). Thanks, Matthieu Dorier PhD student at ENS Cachan Brittany and IRISA http://people.irisa.fr/Matthieu.Dorier |