[PATCH 03/11][v3] async_tx: add support for asynchronous RAID6 recovery operations

Yuri Tikhonov yur at emcraft.com
Sat Jan 17 23:26:57 EST 2009


On Friday, January 16, 2009 you wrote:

> On Fri, Jan 16, 2009 at 4:51 AM, Yuri Tikhonov <yur at emcraft.com> wrote:
>>  The reason why I preferred to use async_pq() instead of async_xor()
>> here is to maximize the chance that the whole D+D recovery operation
>> will be handled in one ADMA device, i.e. without channels switch and
>> the latency introduced because of that.
>>

> This should be a function of the async_tx_find_channel implementation.
>  The default version tries to keep a chain of operations on one
> channel.

> struct dma_chan *
> __async_tx_find_channel(struct dma_async_tx_descriptor *depend_tx,
>         enum dma_transaction_type tx_type)
> {
>         /* see if we can keep the chain on one channel */
>         if (depend_tx &&
>             dma_has_cap(tx_type, depend_tx->chan->device->cap_mask))
>                 return depend_tx->chan;
>         return dma_find_channel(tx_type);
> }

 Right. Then I need to update my ADMA driver, and add support for 
explicit DMA_XOR capability on channels which can process DMA_PQ.
Thanks.

 Regards, Yuri

 --
 Yuri Tikhonov, Senior Software Engineer
 Emcraft Systems, www.emcraft.com




More information about the Linuxppc-dev mailing list