Re: [PATCH 0/2] Add inode checksum support to ext4

From: Coly Li
Date: Sun Jul 31 2011 - 19:48:36 EST


On 2011å07æ31æ 15:08, Joel Becker Wrote:
> On Sat, Jul 30, 2011 at 03:25:32PM +0800, Coly Li wrote:
>> On 2011å07æ29æ 21:19, Joel Becker Wrote:
>>> On Fri, Jul 29, 2011 at 03:48:45AM -0600, Andreas Dilger wrote:
>>>> On 2011-07-28, at 4:07 PM, Joel Becker wrote:
>>>>> We use ethernet crc32 in ocfs2. btrfs uses crc32c. Frankly, I
>>>>> could have used crc32c if I'd really thought about the hardware
>>>>> acceleration benefits. I think it's a good idea for ext4.
>>>>
>>>> The problem with crc32[c] is that if you don't have hardware acceleration
>>>> it is terribly slow.
>>>
>>> We find ethernet crc32 just fine in ocfs2. I use the kernel's
>>> implementation, which survives everyone's network traffic, and of course
>>> we added the triggers to jbd2 so we only have to do the calculations on
>>> read and write.
>>>
>>
>> Ext4 supports non-journal mode, and there are a few users (Google, Taobao, etc.).
>> A trigger of jbd2 may not work well for non-journal Ext4 ...
>>
>> And in non-journal mode, there is not copy of any meta data block in jbd2, we need to be
>> more careful in check summing, e.g. inode/block bitmap blocks...
>
> Sure, but you could use a trigger in journaled mode and then do
> the checksums directly in the __ext4_handle_journal_dirty_*() functions
> in non-journaled mode. Sure, it would be a little more CPU time, but
> the user picked "checksums + no journal" at mkfs time.
>

Yes, my idea was similar to you.
One thing not clear to me is, in non-journal mode, how to make the page of bitmap block being stable. Because bits
setting in Ext4 bitmap is non-locking, it might be possible that new bit setting after check sum is calculated.

Coly



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/