Re: [PATCH v1 00/16] ext4: Add metadata checksumming

From: Darrick J. Wong
Date: Mon Sep 05 2011 - 14:55:35 EST


On Sun, Sep 04, 2011 at 06:19:16PM -0400, Martin K. Petersen wrote:
> >>>>> "Andi" == Andi Kleen <andi@xxxxxxxxxxxxxx> writes:
>
> Andi> Doesn't have any performance numbers.
>
> It's been a while since I read them. I thought they had some compelling
> numbers. Anyway, made a big difference in real life testing here. For
> sustained I/O we're talking an order of magnitude.
>
>
> Andi> You need to keep in mind that PCLMULQDQ uses FPU state, so any
> Andi> speedup for the kernel must be large enough to amortize the cost
> Andi> of saving the FPU state.
>
> Yeah, my test cases were for bulk database I/O, not for writing a
> handful of fs metadata blocks. Plus for the DB tests the CRC was
> generated in userland.
>
> I seem to recall Joel picking something other than the hw-accelerated
> CRC32C for ocfs2 metadata and that didn't cause any problems.

Yes, he picked regular CRC32, which has a reasonably fast slice-by-4
software implementation. For ext4, my original choices were hw acceleration or
the slower single-byte lookup table. With hw acceleration the overhead of
adding the checksums is about ~10% (for just the metadata operations); with the
single-byte table it was about 50%; and with the proposed slice-by-8 patch it's
about 20%. Hopefully I can optimize this even more in the future.

> That said, I do see a difference between IP checksum and CRC on normal
> FS workloads with DIX enabled here.

I would hope so, since the IP checksum is much simpler than any CRC...

--D

> Andi> Typically that only works out for quite large buffers, but kernel
> Andi> buffers are relatively small.
>
> *nod*
>
> --
> Martin K. Petersen Oracle Linux Engineering
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
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/