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

From: Jon Mason
Date: Wed Jun 19 2013 - 13:52:14 EST


On Tue, Jun 18, 2013 at 05:59:59PM -0700, Dan Williams wrote:
> On Tue, Jun 18, 2013 at 5:46 PM, Jon Mason <jon.mason@xxxxxxxxx> wrote:
> > Set the DMA_PRIVATE dma_transaction_type in the capability mask. This
> > enables the ability to get an exclusive ioatdma DMA channel for any
> > devices that requests one via the dma_request_channel function call.
> >
> > Signed-off-by: Jon Mason <jon.mason@xxxxxxxxx>
> > Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx>
> > ---
> > drivers/dma/ioat/dma_v3.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
> > index ca6ea9b..ac2aeef 100644
> > --- a/drivers/dma/ioat/dma_v3.c
> > +++ b/drivers/dma/ioat/dma_v3.c
> > @@ -1883,6 +1883,7 @@ int ioat3_dma_probe(struct ioatdma_device *device, int dca)
> > dma->copy_align = 6;
> >
> > dma_cap_set(DMA_INTERRUPT, dma->cap_mask);
> > + dma_cap_set(DMA_PRIVATE, dma->cap_mask);
> > dma->device_prep_dma_interrupt = ioat3_prep_interrupt_lock;
>
> 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?

Thanks,
Jon
--
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/