> 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

Reply via email to