On 11/16/2011 04:18 PM, Christoph Hellwig wrote: > On Wed, Nov 16, 2011 at 11:12:48AM +0800, Liu Yuan wrote: >> On 11/15/2011 04:21 PM, Christoph Hellwig wrote: >> >>> On Tue, Nov 15, 2011 at 04:18:52PM +0800, Liu Yuan wrote: >>>> Umm, seems useless, I just squeeze it to the code path. any noticeable >>>> performance penalty? >>> >>> With the current O_SYNC I/O model it at least means an additional log >>> force, which on disks will be very noticeable. So unless you really >>> see a difference in I/O patterns don't do it. >>> >> >> >> After a second thought, if we use DIO later, so this might not stand. > > I can't really parse this sentence, can you explain it in a bit more > detail? > Sorry for my English. I meant if we later use Direct IO for store object later, it doesn't necessarily means a force commit. >> In >> ext4, fallocate() will modify the metadata and write a journal >> transaction, but it may not be committed to the disk immediately. > > I checked the code and ext4 is indeed buggy there - given that fallocate > doesn't just allocate new blocks but also updates the file size it > absolutey needs to commit the transaction before retourning to implement > O_SYNC/O_DSYNC semantics correctly. > |