Thread (43 messages) 43 messages, 6 authors, 2009-03-30

Re: [PATCH 06/13] async_tx: add support for asynchronous GF multiplication

From: H. Peter Anvin <hidden>
Date: 2009-03-19 16:07:32
Also in: lkml

Dan Williams wrote:
+ * @scfs: array of source coefficients used in GF-multiplication
Array of source coefficients?  Are you doing a vector-vector
multiplication here?

Given this code:
	for (d = 0; d < len; d++) {
+		wq = wp = ptrs[0][d];
+		for (z = 1; z < src_cnt; z++) {
+			wd = ptrs[z][d];
+			wp ^= wd;
+			wq ^= raid6_gfmul[scfs[z]][wd];
+		}
... it kinds of looks like that.

This is really quite expensive!  The whole point of the restore code
that exists is that we never do a two-dimensional lookup, instead
caching a pointer to the multiplication table that we intend to use,
because the RAID-6 code only ever contains scalar-vector multiplications.

I really don't get this, and I think it's broken.

	-hpa
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help