On 04/07/2011 09:40 AM, Darrick J. Wong wrote:
Yes, I see that jbd2 has triggers, looks like a nifty feature. I suppose if I went with that approach I'd still have to calculate the checksum in ext4_do_update_inode in the nojournal case, and in the journal case I'd write a trigger that would figure out which inodes in a given buffer are actually dirty and compute their checksums.
Yes, you could use a in-mem flag (set in update, cleared in trigger) to identify dirty inodes. The discussion on stable pages could be relevant for the nojournal case.
That said, I haven't really quantified the performance impact of this naive approach yet, so I wonder -- did you see a similar scenario with ocfs2, and what kind of performance increase did you get by adapting the code to use the jbd2 trigger? If there's potentially a large increase, it would be interesting to apply the same conversion to the group descriptor checksumming code too.
Joel Becker may remember the overhead. He wrote the patch. That said we have few differences. ocfs2 has larger (blocksized) inodes. Also, it computes ECC. The code is in fs/ocfs2/blockcheck.c. As in, you may want to generate ext4 specific numbers. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html