> just measured quickly that a 1.2Ghz sparc can do [400-500]MB/sec > of encoding (time spent in misnamed function > vdev_raidz_reconstruct) for a 3 disk raid-z group.
Strange, that seems very low. Ah, I see. The current code loops through each buffer, either copying or XORing it into the parity. This likely would perform quite a bit better if it were reworked to go through more than one buffer at a time, doing the XOR. (Reading the partial parity is expensive.) Actually, this would be an instance where using assembly language or even processor-dependent code would be useful. Since the prefetch buffers on UltraSPARC are only applicable to floating-point loads, we should probably use prefetch & the VIS xor instructions. (Even calling bcopy instead of using the existing copy loop would help.) FWIW, on large systems we ought to be aiming to sustain 8 GB/s or so of writes, and using 16 CPUs for just parity computation seems inordinately painful. :-) This message posted from opensolaris.org _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss