From: Yuri Tikhonov <yur@emcraft.com>
To: "Dan Williams" <dan.j.williams@intel.com>
Cc: linux-raid@vger.kernel.org, linuxppc-dev@ozlabs.org, wd@denx.de,
dzu@denx.de, yanok@emcraft.com
Subject: Re[2]: [PATCH 03/11][v3] async_tx: add support for asynchronous RAID6 recovery operations
Date: Fri, 16 Jan 2009 14:51:42 +0300 [thread overview]
Message-ID: <498243073.20090116145142@emcraft.com> (raw)
In-Reply-To: <e9c3a7c20901141706v17215220s22d973f81369be72@mail.gmail.com>
=0D=0AOn Thursday, January 15, 2009 Dan Williams wrote:
> On Mon, Jan 12, 2009 at 5:43 PM, Yuri Tikhonov <yur@emcraft.com> wrote:
>> + /* (2) Calculate Q+Qxy */
>> + lptrs[0] =3D ptrs[failb];
>> + lptrs[1] =3D ptrs[disks-1];
>> + lptrs[2] =3D NULL;
>> + tx =3D async_pq(lptrs, NULL, 0, 1, bytes, ASYNC_TX_DEP_ACK,
>> + tx, NULL, NULL);
>> +
>> + /* (3) Calculate P+Pxy */
>> + lptrs[0] =3D ptrs[faila];
>> + lptrs[1] =3D ptrs[disks-2];
>> + lptrs[2] =3D NULL;
>> + tx =3D async_pq(lptrs, NULL, 0, 1, bytes, ASYNC_TX_DEP_ACK,
>> + tx, NULL, NULL);
>> +
> These two calls convinced me that ASYNC_TX_PQ_ZERO_{P,Q} need to go.
> A 1-source async_pq operation does not make sense.
Another source is hidden under not-set ASYNC_TX_PQ_ZERO_{P,Q} :)=20
Though, I agree, this looks rather misleading.
> These should be:
> /* (2) Calculate Q+Qxy */
> lptrs[0] =3D ptrs[disks-1];
> lptrs[1] =3D ptrs[failb];
> tx =3D async_xor(lptrs[0], lptrs, 0, 2, bytes,
> ASYNC_TX_XOR_DROP_DST|ASYNC_TX_DEP_ACK, tx, NULL, N=
ULL);
> /* (3) Calculate P+Pxy */
> lptrs[0] =3D ptrs[disks-2];
> lptrs[1] =3D ptrs[faila];
> tx =3D async_xor(lptrs[0], lptrs, 0, 2, bytes,
> ASYNC_TX_XOR_DROP_DST|ASYNC_TX_DEP_ACK, tx, NULL, N=
ULL);
The reason why I preferred to use async_pq() instead of async_xor()=20
here is to maximize the chance that the whole D+D recovery operation=20
will be handled in one ADMA device, i.e. without channels switch and=20
the latency introduced because of that.
So, if we'll decide to stay with ASYNC_TX_PQ_ZERO_{P,Q}, then this=20
should be probably kept unchanged, but if we'll get rid of=20
ASYNC_TX_PQ_ZERO_{P,Q}, then, obviously, we'll have to use=20
async_xor()s here as you suggest.
Regards, Yuri
--
Yuri Tikhonov, Senior Software Engineer
Emcraft Systems, www.emcraft.com
next prev parent reply other threads:[~2009-01-16 11:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-13 0:43 [PATCH 03/11][v3] async_tx: add support for asynchronous RAID6 recovery operations Yuri Tikhonov
2009-01-15 1:06 ` Dan Williams
2009-01-16 11:51 ` Yuri Tikhonov [this message]
2009-01-16 18:37 ` Re[2]: " Dan Williams
2009-01-17 12:26 ` Re[4]: " Yuri Tikhonov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=498243073.20090116145142@emcraft.com \
--to=yur@emcraft.com \
--cc=dan.j.williams@intel.com \
--cc=dzu@denx.de \
--cc=linux-raid@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=wd@denx.de \
--cc=yanok@emcraft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).