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

Dan Williams dan.j.williams at intel.com
Sat Jan 17 05:37:07 EST 2009


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);
}

--
Dan



More information about the Linuxppc-dev mailing list