<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/lib/raid6/algos.c, branch v3.12.10</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/lib/raid6/algos.c?h=v3.12.10</id>
<link rel='self' href='https://git.amat.us/linux/atom/lib/raid6/algos.c?h=v3.12.10'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-10T20:03:41Z</updated>
<entry>
<title>Merge tag 'md/3.12' of git://neil.brown.name/md</title>
<updated>2013-09-10T20:03:41Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-10T20:03:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4d7696f1b05f4aeb586c74868fe3da2731daca4b'/>
<id>urn:sha1:4d7696f1b05f4aeb586c74868fe3da2731daca4b</id>
<content type='text'>
Pull md update from Neil Brown:
 "Headline item is multithreading for RAID5 so that more IO/sec can be
  supported on fast (SSD) devices.  Also TILE-Gx SIMD suppor for RAID6
  calculations and an assortment of bug fixes"

* tag 'md/3.12' of git://neil.brown.name/md:
  raid5: only wakeup necessary threads
  md/raid5: flush out all pending requests before proceeding with reshape.
  md/raid5: use seqcount to protect access to shape in make_request.
  raid5: sysfs entry to control worker thread number
  raid5: offload stripe handle to workqueue
  raid5: fix stripe release order
  raid5: make release_stripe lockless
  md: avoid deadlock when dirty buffers during md_stop.
  md: Don't test all of mddev-&gt;flags at once.
  md: Fix apparent cut-and-paste error in super_90_validate
  raid6/test: replace echo -e with printf
  RAID: add tilegx SIMD implementation of raid6
  md: fix safe_mode buglet.
  md: don't call md_allow_write in get_bitmap_file.
</content>
</entry>
<entry>
<title>RAID: add tilegx SIMD implementation of raid6</title>
<updated>2013-08-27T06:05:50Z</updated>
<author>
<name>Ken Steele</name>
<email>ken@tilera.com</email>
</author>
<published>2013-08-07T16:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae77cbc1e7b90473a2b0963bce0e1eb163873214'/>
<id>urn:sha1:ae77cbc1e7b90473a2b0963bce0e1eb163873214</id>
<content type='text'>
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 &lt;ken@tilera.com&gt;
Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>lib/raid6: add ARM-NEON accelerated syndrome calculation</title>
<updated>2013-07-08T21:09:18Z</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ard.biesheuvel@linaro.org</email>
</author>
<published>2013-05-16T15:20:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7d11965ddb9b9b1e0a5d13c58345ada1ccbc663b'/>
<id>urn:sha1:7d11965ddb9b9b1e0a5d13c58345ada1ccbc663b</id>
<content type='text'>
Rebased/reworked a patch contributed by Rob Herring that uses
NEON intrinsics to perform the RAID-6 syndrome calculations.
It uses the existing unroll.awk code to generate several
unrolled versions of which the best performing one is selected
at boot time.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Cc: hpa@linux.intel.com
</content>
</entry>
<entry>
<title>lib/raid6: Add AVX2 optimized gen_syndrome functions</title>
<updated>2012-12-13T08:51:03Z</updated>
<author>
<name>Yuanhan Liu</name>
<email>yuanhan.liu@linux.intel.com</email>
</author>
<published>2012-11-30T21:10:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2c935842bdb46f5f557426feb4d2bdfdad1aa5f9'/>
<id>urn:sha1:2c935842bdb46f5f557426feb4d2bdfdad1aa5f9</id>
<content type='text'>
Add AVX2 optimized gen_syndrom functions, which is simply based on
sse2.c written by hpa.

Signed-off-by: Yuanhan Liu &lt;yuanhan.liu@linux.intel.com&gt;
Reviewed-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Jim Kukunas &lt;james.t.kukunas@linux.intel.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>lib/raid6: Add AVX2 optimized recovery functions</title>
<updated>2012-12-13T05:42:01Z</updated>
<author>
<name>Jim Kukunas</name>
<email>james.t.kukunas@linux.intel.com</email>
</author>
<published>2012-11-08T21:47:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7056741fd9fc14a65608549a4657cf5178f05f63'/>
<id>urn:sha1:7056741fd9fc14a65608549a4657cf5178f05f63</id>
<content type='text'>
Optimize RAID6 recovery functions to take advantage of
the 256-bit YMM integer instructions introduced in AVX2.

The patch was tested and benchmarked before submission.
However hardware is not yet released so benchmark numbers
cannot be reported.

Acked-by: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Signed-off-by: Jim Kukunas &lt;james.t.kukunas@linux.intel.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>lib/raid6: cleanup gen_syndrome function selection</title>
<updated>2012-05-22T03:54:24Z</updated>
<author>
<name>Jim Kukunas</name>
<email>james.t.kukunas@linux.intel.com</email>
</author>
<published>2012-05-22T03:54:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=96e67703e71f4b3cc32b747dbb6158ec74d01e19'/>
<id>urn:sha1:96e67703e71f4b3cc32b747dbb6158ec74d01e19</id>
<content type='text'>
Reorders functions in raid6_algos as well as the preference check
to reduce the number of functions tested on initialization.

Also, creates symmetry between choosing the gen_syndrome functions
and choosing the recovery functions.

Signed-off-by: Jim Kukunas &lt;james.t.kukunas@linux.intel.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>lib/raid6: Add SSSE3 optimized recovery functions</title>
<updated>2012-05-22T03:54:18Z</updated>
<author>
<name>Jim Kukunas</name>
<email>james.t.kukunas@linux.intel.com</email>
</author>
<published>2012-05-22T03:54:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=048a8b8c89dc427dd7a58527c8923224b1e66d83'/>
<id>urn:sha1:048a8b8c89dc427dd7a58527c8923224b1e66d83</id>
<content type='text'>
Add SSSE3 optimized recovery functions, as well as a system
for selecting the most appropriate recovery functions to use.

Originally-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Jim Kukunas &lt;james.t.kukunas@linux.intel.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>lib/raid6: fix test program build</title>
<updated>2012-05-22T03:54:16Z</updated>
<author>
<name>Jim Kukunas</name>
<email>james.t.kukunas@linux.intel.com</email>
</author>
<published>2012-05-22T03:54:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f674ef7b43881b2ac11f98d6ba2dc5d9dd0dd118'/>
<id>urn:sha1:f674ef7b43881b2ac11f98d6ba2dc5d9dd0dd118</id>
<content type='text'>
&lt;linux/module.h&gt; drags in headers which are not visible to userspace,
thus breaking the build for the test program.

Signed-off-by: Jim Kukunas &lt;james.t.kukunas@linux.intel.com&gt;
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
<entry>
<title>md: Add module.h to all files using it implicitly</title>
<updated>2011-10-31T23:31:18Z</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-07-03T17:58:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=056075c76417b112b4924e7b6386fdc6dfc9ac03'/>
<id>urn:sha1:056075c76417b112b4924e7b6386fdc6dfc9ac03</id>
<content type='text'>
A pending cleanup will mean that module.h won't be implicitly
everywhere anymore.  Make sure the modular drivers in md dir
are actually calling out for &lt;module.h&gt; explicitly in advance.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>Further tidyup of raid6 naming in lib/raid6</title>
<updated>2010-08-11T20:44:54Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2010-08-11T20:44:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a8e026c785b3fecef0ef5c00c15223542c4db8f5'/>
<id>urn:sha1:a8e026c785b3fecef0ef5c00c15223542c4db8f5</id>
<content type='text'>
Rename raid6/raid6x86.h to raid6/x86.h
and modify some comments.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
</entry>
</feed>
