James C. McPherson wrote:
Richard Elling wrote:
Frank Cusack wrote:
It would be interesting to have a zfs enabled HBA to offload the checksum
and parity calculations.  How much of zfs would such an HBA have to
understand?
[warning: chum]
Disagree.  HBAs are pretty wimpy.  It is much less expensive and more
efficient to move that (flexible!) function into the main CPUs.

I think Richard is in the groove here. All the hba chip
implementation documentation that I've seen (publicly
available of course) indicates that these chips are
already highly optimized engines, and I don't think that
adding extra functionality like checksum and parity
calculations would be an efficient use of silicon/SoI.

cheers,
James

HBAs work on an entirely different layer than what checksumming data would be efficient at.

If we're using the OSI-style model for this type, HBAs work at layer 1. And, as James mentioned, they are highly specialized ASICs for doing just bus-level communications. It's not like there is extra general-purposes compute power available (or, even can possibly be built-in). Checksumming for ZFS requires filesystem-level knowledge, which is effectively up at OSI layer 6 or 7, and well beyond the understanding of a lowly HBA (it's just passing bits back and forth, and has no conception of what they mean).

Essentially, moving block checksumming into the HBA would at best be similar to what we see with super-low-cost RAID controllers and the XOR function. Remember how well that works? Now, building ZFS-style checksum capability (or, just hardware checksum capability for ZFS to call) is indeed proper and possible for _real_ hardware RAID controllers, as they are much more akin to standard general-purpose CPUs (indeed, most now use a GP processor anyway). We're back into the old argument of "put it on a co-processor, then move it onto the CPU, then move it back onto a co-processor" cycle. Personally, with modern CPUs being so under-utilized these days, and all ZFS-bound data having to move through main memory in any case (whether hardware checksum-assisted or not), use the CPU. Hardware-assist for checksum sounds nice, but I can't think of it actually being more efficient that doing it on the CPU (it won't actually help performance), so why bother with extra hardware?

-Erik


_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to