2007-02-06 23:52:51

by Chris Leech

[permalink] [raw]
Subject: RE: [RFC][PATCH 00/12] md raid acceleration and performance analysis

Hi Dan,

I've been looking over how your patches change the ioatdma driver. I
like the idea of removing the multiple entry points for virtual address
vs. page struct arguments, and just using dma_addr_t for the driver
interfaces.

But, I don't think having both ioatdma and iop-adma implement map_page,
map_single, unmap_page, and unmap_single entry points is much better.
Do you see a reason why it wouldn't work to expose the generic device
for a DMA channel, and replace instances of

dma_device->map_single(dma_chan, src, len, DMA_TO_DEVICE)

with

dma_map_single(dma_device->dev, src, len, DMA_TO_DEVICE)

I am a little concerned about having the DMA mapping happen outside of
the driver, but the unmapping is still in the driver cleanup routine.
I'm not sure if it's really a problem, or how I'd change it though.

- Chris


2007-02-07 22:37:01

by Dan Williams

[permalink] [raw]
Subject: Re: [RFC][PATCH 00/12] md raid acceleration and performance analysis

On 2/6/07, Leech, Christopher <[email protected]> wrote:
> Hi Dan,
>
> I've been looking over how your patches change the ioatdma driver. I
> like the idea of removing the multiple entry points for virtual address
> vs. page struct arguments, and just using dma_addr_t for the driver
> interfaces.
>
> But, I don't think having both ioatdma and iop-adma implement map_page,
> map_single, unmap_page, and unmap_single entry points is much better.
> Do you see a reason why it wouldn't work to expose the generic device
> for a DMA channel, and replace instances of
>
> dma_device->map_single(dma_chan, src, len, DMA_TO_DEVICE)
>
> with
>
> dma_map_single(dma_device->dev, src, len, DMA_TO_DEVICE)
>

I was initially concerned about a case where dma_map_single was not
equivalent to pci_map_single. Looking now, it appears that case would
be a bug, so I will integrate this change.

> I am a little concerned about having the DMA mapping happen outside of
> the driver, but the unmapping is still in the driver cleanup routine.
> I'm not sure if it's really a problem, or how I'd change it though.
>
> - Chris

Thanks,
Dan