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