On 17/06/14 02:13, cwillu wrote: > It's not a mmap problem, it's a small writes with an msync or fsync > after each one problem. And for logging, that is exactly what is wanted to see why whatever crashed... Except... Whilst logging, hold off on the msync/fsync unless the next log message to be written is 'critical'? With that, the mundane logging gets appended just as for any normal file write. Only the more critical log messages suffer the extra overhead and fragmentation of an immediate msync/fsync. > For the case of sequential writes (via write or mmap), padding writes > to page boundaries would help, if the wasted space isn't an issue. > Another approach, again assuming all other writes are appends, would > be to periodically (but frequently enough that the pages are still in > cache) read a chunk of the file and write it back in-place, with or > without an fsync. On the other hand, if you can afford to lose some > logs on a crash, not fsyncing/msyncing after each write will also > eliminate the fragmentation. > > (Worth pointing out that none of that is conjecture, I just spent 30 > minutes testing those cases while composing this ;p) > > Josef has mentioned in irc that a piece of Chris' raid5/6 work will > also fix this when it lands. Interesting... The source problem is how the COW fragments under expected normal use... Is all this unavoidable unless we rethink the semantics? Regards, Martin -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
