On 02/21/2013 08:06 PM, Sašo Kiselkov wrote: > On 02/21/2013 07:27 PM, Timothy Coalson wrote: >> I think last time this was asked, the consensus was that the implementation >> was based on linear feedback shift registers and xor, which happens to be a >> reed-solomon code (not as clear on this part, but what matters is what it >> is, not what it isn't). Regardless, from reading the source previously, I >> am fairly sure it operates bytewise, with xor for first syndrome (parity), >> and LFSR and then xor for the other syndromes. >> >> See >> http://openindiana.org/pipermail/openindiana-discuss/2012-October/010419.html > > Just had a look over the code of vdev_raidz_generate_parity_pq[r] and > you are right, the first column is calculated as a simple XOR parity. > However, as can been in vdev_raidz_generate_parity_pq, a raid-z2 does an > extra for() loop pass over the data in comparison to just the raid-z1 > case above it. I don't have the time to test it separately, but > presumably this can incur quite a cost for the CPU in terms of > processing (especially if the block being processed doesn't fit in L1 > caches).
Shit, ignore my previous babbling, I need to look more carefully. Of course there's only a single pass over the data... -- Saso _______________________________________________ OpenIndiana-discuss mailing list [email protected] http://openindiana.org/mailman/listinfo/openindiana-discuss
