Re: Triple parity and beyond
From: Andrea Mazzoleni <hidden>
Date: 2013-11-20 18:44:01
Also in:
linux-btrfs
Hi John, Yes. There are still AMD CPUs sold without SSSE3. Most notably Athlon. Instead, Intel is providing SSSE3 from the Core 2 Duo. A detailed list is available at: http://en.wikipedia.org/wiki/SSSE3 Ciao, Andrea On Wed, Nov 20, 2013 at 7:09 PM, John Williams [off-list ref] wrote:
On Wed, Nov 20, 2013 at 2:31 AM, David Brown [off-list ref] wrote:quoted
That's certainly a reasonable way to look at it. We should not limit the possibilities for high-end systems because of the limitations of low-end systems that are unlikely to use 3+ parity anyway. I've also looked up a list of the processors that support SSE3 and PSHUFB - a lot of modern "low-end" x86 cpus support it. And of course it is possible to implement general G(2^8) multiplication without PSHUFB, using a lookup table - it is important that this can all work with any CPU, even if it is slow.Unfortunately, it is SSSE3 that is required for PSHUFB. The SSE3 set with only two-esses does not suffice. I made that same mistake when I first heard about Andrea's 6-parity work. SSSE3 vs. SSE3, confusing notation! SSSE3 is significantly less widely supported than SSE3. Particularly on AMD, only the very latest CPUs seem to support SSSE3. Intel support for SSSE3 goes back much further than AMD support. Maybe it is not such a big problem, since it may be possible to support two "roads". Both roads would include the current md RAID-5 and RAID-6. But one road, which those lacking CPUs supporting SSSE3 might choose, would continue on to the non-SSSE3 triple-parity 2^-1 technique, and then dead-end. The other road would continue with the Cauchy matrix technique through 3-parity all the way to 6-parity. It might even be feasible to allow someone stuck at the end of the non-SSSE3 road to convert to the Cauchy road. You would have to go through all the 2^-1 triple-parity and convert it to Cauchy triple-parity. But then you would be safely on the Cauchy road.