Re: [PATCH 2/2] ioatdma: add DMA_PRIVATE capabilities flag

From: Dan Williams
Date: Wed Jun 19 2013 - 16:44:16 EST


On Wed, Jun 19, 2013 at 1:10 PM, Jon Mason <jon.mason@xxxxxxxxx> wrote:
> On Wed, Jun 19, 2013 at 11:56:38AM -0700, Dan Williams wrote:
>> On Wed, Jun 19, 2013 at 10:52 AM, Jon Mason <jon.mason@xxxxxxxxx> wrote:
>> >> DMA_PRIVATE here keeps all channels private, so they couldn't be used
>> >> elsewhere, for example raid offload. Do you need a private allocation
>> >> or can you get away with a dynamically assigned channel?
>> >
>> > I would like to have a dedicated DMA engine. async_tx could cause the
>> > copies to complete out of order. Do I need to add infrastructure to
>> > allow for private channel usage, and when unused allow the channel to
>> > be used by async_tx?
>>
>> Can NTB just call dma_find_channel() once and be done? Also, async_tx
>> will only get things out of order if you allow it to pick a new
>> channel for every operation, but as long as you specify a dependency
>> chain it will keep things in order (same as remembering the result of
>> dma_find_channel).
>
> Neither of these allow a device exclusive access to a channel. Is
> this not something that is desired by other users of DMA Engines, or
> do I have a unique usage model?
>

Yes, ioatdma has never been used in a mixed model. Other platforms
are either using devicetree bindings for specifying channels to their
master devices or are exclusively slave channels. Other slave usage
models require use of a dedicated channel, since NTB is alternating
between cpu and dma it seems it could get away with using a "public"
channel.
--
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/