Re: [PATCH v2 2/2] Crypto: Talitos: Support for Async_tx XOR offload

From: Dan Williams
Date: Thu Dec 17 2009 - 19:58:39 EST


On Thu, Dec 17, 2009 at 11:45 AM, Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx> wrote:
>> The specific case it is needed for Talitos/raid is a channel switch interrupt.  The interrupt causes the cleanup operation to be run which will kick off any pending dependent operations on the xor channel.  In the raid case we only have callbacks at the end of a chain, so we need the interrupt to kick the engine in an operation chain like xor->copy->xor->callback.
>
> Ok, I'm still confused as to how the DMA interrupt interacts with the Talitos/raid side of things.  The should be completely independent (separate interrupts, separate IP blocks).
>

To keep hardware implementation details out of md/raid the async_tx
api provides support for managing cross-channel dependency chains.
When the raid5 code submits a xor->copy->xor chain the api prepares
all the descriptors across all the involved channels but then delays
submission as needed to maintain ordering. So at a minimum we need
two interrupts in this scenario one from Talitos to kick the
submission of the copy-descriptor to fsldma when the first xor
completes, and another one to kick the submission of the second
xor-descriptor on Talitos when fsldma completes the copy. Needless to
say it is more efficient when a channel has all the capabilities, but
this channel switch mechanism has proven effective on iop3xx and
ppc4xx.

--
Dan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/