From: John B. <joh...@la...> - 2008-11-21 00:28:38
|
I apologize if this is the wrong list. I'm not a fuse developer per se but rather a developer of a fuse instance. But I'm seeing some weird behavior that hopefully someone can shed some light on or point me to the proper list. I've noticed that when I do writes from an application that are greater than or equal to 128K in size, that my fuse instance doesn't see them as they are presented by the application. A couple of examples: 1) My application does one 128K (131072) write. Fuse sees a 131064 byte write. Fuse sees a 8 byte write. 2) My application does one 1048576 byte write. Fuse sees a 131064 byte write. Fuse sees a 131072 byte write (7x). Fuse sees a 8 byte write. IO's smaller than 128K (and I haven't tried corner cases like 131065) do not exhibit this behavior. (Thanks for fuse by the way. It's really great.) John |
From: John B. <joh...@la...> - 2008-11-21 04:32:50
|
Excerpts from John Bent's message of Thu Nov 20 17:28:31 -0700 2008: > I apologize if this is the wrong list. I'm not a fuse developer per se but > rather a developer of a fuse instance. But I'm seeing some weird > behavior that hopefully someone can shed some light on or point me to > the proper list. > > I've noticed that when I do writes from an application that are greater > than or equal to 128K in size, that my fuse instance doesn't see them as > they are presented by the application. A couple of examples: > > 1) My application does one 128K (131072) write. > Fuse sees a 131064 byte write. > Fuse sees a 8 byte write. > > 2) My application does one 1048576 byte write. > Fuse sees a 131064 byte write. > Fuse sees a 131072 byte write (7x). > Fuse sees a 8 byte write. > > IO's smaller than 128K (and I haven't tried corner cases like 131065) do > not exhibit this behavior. > By the way, I did search the archives previously but just for the string 131064 and didn't find anything. However, I was just searching a little bit more diligently and it appears that this old thread is describing a similar problem: http://sourceforge.net/mailarchive/message.php?msg_id=87r6qszw8r.fsf%40informatik.uni-tuebingen.de Miklos, was the patch you described in that thread ever merged into a release? I'm running linux 2.6.19.7 with fuse 2.7.4. Thanks in advance, John > (Thanks for fuse by the way. It's really great.) > > John |
From: Miklos S. <mi...@sz...> - 2008-12-01 18:50:42
|
On Thu, 20 Nov 2008, John Bent wrote: > Excerpts from John Bent's message of Thu Nov 20 17:28:31 -0700 2008: > > I apologize if this is the wrong list. I'm not a fuse developer per se but > > rather a developer of a fuse instance. But I'm seeing some weird > > behavior that hopefully someone can shed some light on or point me to > > the proper list. > > > > I've noticed that when I do writes from an application that are greater > > than or equal to 128K in size, that my fuse instance doesn't see them as > > they are presented by the application. A couple of examples: > > > > 1) My application does one 128K (131072) write. > > Fuse sees a 131064 byte write. > > Fuse sees a 8 byte write. > > > > 2) My application does one 1048576 byte write. > > Fuse sees a 131064 byte write. > > Fuse sees a 131072 byte write (7x). > > Fuse sees a 8 byte write. > > > > IO's smaller than 128K (and I haven't tried corner cases like 131065) do > > not exhibit this behavior. > > > By the way, I did search the archives previously but just for the string > 131064 and didn't find anything. However, I was just searching a little > bit more diligently and it appears that this old thread is describing a > similar problem: > http://sourceforge.net/mailarchive/message.php?msg_id=87r6qszw8r.fsf%40informatik.uni-tuebingen.de > > Miklos, was the patch you described in that thread ever merged into a > release? I'm running linux 2.6.19.7 with fuse 2.7.4. What offset in the file are you writing the file? There's a 32 page limit for wwrite requests and if the offset is not a multiple of the page size (4096B) then fuse won't be able to write 128k in one chunk. But this is more or less the same for _every_ filesystem, it's always more efficient to do writes beginning at block boundaries. Thanks, Miklos |
From: John B. <joh...@la...> - 2008-12-01 19:01:06
|
Excerpts from Miklos Szeredi's message of Mon Dec 01 11:50:30 -0700 2008: > On Thu, 20 Nov 2008, John Bent wrote: > > Excerpts from John Bent's message of Thu Nov 20 17:28:31 -0700 2008: > > > I apologize if this is the wrong list. I'm not a fuse developer per se but > > > rather a developer of a fuse instance. But I'm seeing some weird > > > behavior that hopefully someone can shed some light on or point me to > > > the proper list. > > > > > > I've noticed that when I do writes from an application that are greater > > > than or equal to 128K in size, that my fuse instance doesn't see them as > > > they are presented by the application. A couple of examples: > > > > > > 1) My application does one 128K (131072) write. > > > Fuse sees a 131064 byte write. > > > Fuse sees a 8 byte write. > > > > > > 2) My application does one 1048576 byte write. > > > Fuse sees a 131064 byte write. > > > Fuse sees a 131072 byte write (7x). > > > Fuse sees a 8 byte write. > > > > > > IO's smaller than 128K (and I haven't tried corner cases like 131065) do > > > not exhibit this behavior. > > > > > By the way, I did search the archives previously but just for the string > > 131064 and didn't find anything. However, I was just searching a little > > bit more diligently and it appears that this old thread is describing a > > similar problem: > > http://sourceforge.net/mailarchive/message.php?msg_id=87r6qszw8r.fsf%40informatik.uni-tuebingen.de > > > > Miklos, was the patch you described in that thread ever merged into a > > release? I'm running linux 2.6.19.7 with fuse 2.7.4. > > What offset in the file are you writing the file? > I'm writing to offset 0. Thanks, John > There's a 32 page limit for wwrite requests and if the offset is not a > multiple of the page size (4096B) then fuse won't be able to write > 128k in one chunk. But this is more or less the same for _every_ > filesystem, it's always more efficient to do writes beginning at block > boundaries. > > Thanks, > Miklos |
From: Miklos S. <mi...@sz...> - 2008-12-01 19:05:12
|
On Mon, 01 Dec 2008, John Bent wrote: > Excerpts from Miklos Szeredi's message of Mon Dec 01 11:50:30 -0700 2008: > > What offset in the file are you writing the file? > > > I'm writing to offset 0. OK. You are using 'direct_io' option, right? In that case the memory which is written has to be aligned to page boundaries as well. Thanks, Miklos |