Files
android_kernel_xiaomi_sm8450/include/linux
Ken Steele ae77cbc1e7 RAID: add tilegx SIMD implementation of raid6
This change adds TILE-Gx SIMD instructions to the software raid
(md), modeling the Altivec implementation. This is only for Syndrome
generation; there is more that could be done to improve recovery,
as in the recent Intel SSE3 recovery implementation.

The code unrolls 8 times; this turns out to be the best on tilegx
hardware among the set 1, 2, 4, 8 or 16.  The code reads one
cache-line of data from each disk, stores P and Q then goes to the
next cache-line.

The test code in sys/linux/lib/raid6/test reports 2008 MB/s data
read rate for syndrome generation using 18 disks (16 data and 2
parity). It was 1512 MB/s before this SIMD optimizations. This is
running on 1 core with all the data in cache.

This is based on the paper The Mathematics of RAID-6.
(http://kernel.org/pub/linux/kernel/people/hpa/raid6.pdf).

Signed-off-by: Ken Steele <ken@tilera.com>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: NeilBrown <neilb@suse.de>
2013-08-27 16:05:50 +10:00
..
2013-06-27 13:42:16 -04:00
2013-03-01 13:39:00 -08:00
2013-06-17 14:38:54 -04:00
2013-05-07 19:46:02 -07:00
2013-05-29 15:50:34 -04:00
2013-04-29 15:40:23 -04:00
2013-07-03 16:07:39 -07:00
2013-03-22 15:18:18 -07:00
2013-03-12 11:30:04 -07:00
2013-07-10 23:41:18 +01:00
2013-05-01 16:36:22 +05:30
2013-07-23 16:01:28 -07:00
2013-02-26 02:46:08 -05:00
2013-05-07 18:38:27 -07:00
2013-03-15 15:09:43 +10:30
2013-04-29 18:28:40 -07:00
2013-06-17 16:38:57 -07:00
2013-06-19 23:32:07 -04:00
2013-06-10 13:45:49 -07:00
2013-05-06 13:07:33 +02:00
2013-07-03 16:07:32 -07:00
2013-01-25 21:03:54 -08:00
2013-06-13 17:51:04 -07:00
2013-07-18 13:05:23 -07:00
2013-08-22 20:30:15 -07:00
2013-06-17 16:38:57 -07:00
2013-04-30 17:04:06 -07:00
2013-04-01 11:04:50 -07:00
2013-07-16 22:00:14 -07:00
2013-07-09 10:33:30 -07:00
2013-05-31 00:48:22 -07:00
2013-03-15 15:09:43 +10:30
2013-07-02 15:38:19 +09:30
2013-07-03 16:08:05 -07:00
2013-06-08 16:20:14 -04:00
2013-05-04 14:47:26 -04:00
2013-06-12 12:37:40 +01:00
2013-06-12 12:37:30 +01:00
2013-04-29 15:54:28 -07:00
2013-06-26 15:55:52 -06:00
2013-06-26 21:10:05 +02:00
2013-05-31 17:19:05 -07:00
2013-06-21 11:32:51 +02:00
2013-04-29 15:54:28 -07:00
2013-04-12 10:26:23 +02:00
2013-07-03 16:08:05 -07:00
2013-06-17 16:38:57 -07:00
2013-02-19 08:43:34 +01:00
2013-06-17 18:09:53 +09:00
2013-03-29 15:31:30 -04:00
2013-06-20 13:08:01 -07:00
2013-04-30 15:50:12 +05:30
2013-08-13 17:57:48 -07:00
2013-05-21 12:25:02 -05:00
2013-01-15 22:43:15 -08:00
2013-03-20 12:10:38 -04:00
2013-04-29 15:54:37 -07:00
2013-05-27 10:57:53 +09:00
2013-07-10 18:11:34 -07:00