From: ". Christoph Hellwig" <hch@lst.de>
To: Ricardo Ribalda <ribalda@chromium.org>
Cc: ". Christoph Hellwig" <hch@lst.de>,
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Tomasz Figa <tfiga@chromium.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Robin Murphy <robin.murphy@arm.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
IOMMU DRIVERS <iommu@lists.linux-foundation.org>,
Joerg Roedel <joro@8bytes.org>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Sergey Senozhatsky <senozhatsky@google.com>
Subject: Re: [PATCH v3 5/6] media: uvcvideo: Use dma_alloc_noncontiguos API
Date: Wed, 27 Jan 2021 16:56:08 +0100 [thread overview]
Message-ID: <20210127155608.GA20272@lst.de> (raw)
In-Reply-To: <CANiDSCsz+9DJesOTJ5C5HGEH-wwuTmEd3c8yLoHjnDz=2+ndJw@mail.gmail.com>
On Wed, Jan 27, 2021 at 12:29:08AM +0100, Ricardo Ribalda wrote:
> - Is there any platform where dma_alloc_noncontiguos can fail?
> This is, !ops->alloc_noncontiguous and !dev->coherent_dma_mask
> If yes then we need to add a function to let the driver know in
> advance that it has to use the coherent allocator (usb_alloc_coherent
> for uvc)
dev->coherent_dma_mask is set by the driver. So the only reason why
dma_alloc_noncontiguos will fail is because is because it can't
allocate any memory.
> - In dma_alloc_noncontiguos, on the dma_alloc_pages fallback. If we
> have a device where the dma happens in only one direction, could not
> get more performance with DMA_FROM/TO_DEVICE instead of
> DMA_BIDIRECTIONAL ?
Yes, we could probably do that.
>
>
> Then I have tried to use the API, and I have encountered a problem: on
> uvcvideo the device passed to the memory allocator is different for
> DMA_PAGES and NON_CONTIGUOUS:
> https://github.com/ribalda/linux/blob/042cd497739f71c8d4a83a67ee970369e2baca4a/drivers/media/usb/uvc/uvc_video.c#L1236
>
> I need to dig a bit tomorrow to figure out why this is, I have
> hardware to test both paths, so it should not be too difficult.
I always found the USB dma alloc API a little weird, but we might have
to follow the scheme of the usb coherent wrappers there.
WARNING: multiple messages have this Message-ID (diff)
From: ". Christoph Hellwig" <hch@lst.de>
To: Ricardo Ribalda <ribalda@chromium.org>
Cc: Sergey Senozhatsky <senozhatsky@google.com>,
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
IOMMU DRIVERS <iommu@lists.linux-foundation.org>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
". Christoph Hellwig" <hch@lst.de>
Subject: Re: [PATCH v3 5/6] media: uvcvideo: Use dma_alloc_noncontiguos API
Date: Wed, 27 Jan 2021 16:56:08 +0100 [thread overview]
Message-ID: <20210127155608.GA20272@lst.de> (raw)
In-Reply-To: <CANiDSCsz+9DJesOTJ5C5HGEH-wwuTmEd3c8yLoHjnDz=2+ndJw@mail.gmail.com>
On Wed, Jan 27, 2021 at 12:29:08AM +0100, Ricardo Ribalda wrote:
> - Is there any platform where dma_alloc_noncontiguos can fail?
> This is, !ops->alloc_noncontiguous and !dev->coherent_dma_mask
> If yes then we need to add a function to let the driver know in
> advance that it has to use the coherent allocator (usb_alloc_coherent
> for uvc)
dev->coherent_dma_mask is set by the driver. So the only reason why
dma_alloc_noncontiguos will fail is because is because it can't
allocate any memory.
> - In dma_alloc_noncontiguos, on the dma_alloc_pages fallback. If we
> have a device where the dma happens in only one direction, could not
> get more performance with DMA_FROM/TO_DEVICE instead of
> DMA_BIDIRECTIONAL ?
Yes, we could probably do that.
>
>
> Then I have tried to use the API, and I have encountered a problem: on
> uvcvideo the device passed to the memory allocator is different for
> DMA_PAGES and NON_CONTIGUOUS:
> https://github.com/ribalda/linux/blob/042cd497739f71c8d4a83a67ee970369e2baca4a/drivers/media/usb/uvc/uvc_video.c#L1236
>
> I need to dig a bit tomorrow to figure out why this is, I have
> hardware to test both paths, so it should not be too difficult.
I always found the USB dma alloc API a little weird, but we might have
to follow the scheme of the usb coherent wrappers there.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2021-01-27 16:02 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-25 22:19 [PATCH v3 5/6] media: uvcvideo: Use dma_alloc_noncontiguos API Ricardo Ribalda
2020-11-25 22:19 ` Ricardo Ribalda
2020-11-26 11:44 ` Sergey Senozhatsky
2020-11-26 11:44 ` Sergey Senozhatsky
2020-11-30 8:31 ` Christoph Hellwig
2020-11-30 8:31 ` Christoph Hellwig
2020-11-30 8:34 ` Christoph Hellwig
2020-11-30 8:34 ` Christoph Hellwig
2020-11-30 10:49 ` Ricardo Ribalda
2020-11-30 10:49 ` Ricardo Ribalda
2020-12-01 3:36 ` Sergey Senozhatsky
2020-12-01 3:36 ` Sergey Senozhatsky
2020-12-01 14:49 ` Christoph Hellwig
2020-12-01 14:49 ` Christoph Hellwig
2020-12-08 4:54 ` Tomasz Figa
2020-12-08 4:54 ` Tomasz Figa
2020-12-08 6:45 ` Sergey Senozhatsky via iommu
2020-12-08 7:13 ` Sergey Senozhatsky
2020-12-08 7:13 ` Sergey Senozhatsky
2020-12-09 11:16 ` . Christoph Hellwig
2020-12-09 11:16 ` . Christoph Hellwig
2021-01-07 14:14 ` Ricardo Ribalda
2021-01-07 14:14 ` Ricardo Ribalda
2021-01-11 8:36 ` . Christoph Hellwig
2021-01-11 8:36 ` . Christoph Hellwig
2021-01-15 13:08 ` Ricardo Ribalda
2021-01-15 13:08 ` Ricardo Ribalda
2021-01-20 17:17 ` . Christoph Hellwig
2021-01-20 17:17 ` . Christoph Hellwig
2021-01-26 17:06 ` . Christoph Hellwig
2021-01-26 17:06 ` . Christoph Hellwig
2021-01-26 23:29 ` Ricardo Ribalda
2021-01-26 23:29 ` Ricardo Ribalda
2021-01-27 15:56 ` . Christoph Hellwig [this message]
2021-01-27 15:56 ` . Christoph Hellwig
2021-01-27 21:35 ` Ricardo Ribalda
2021-01-27 21:35 ` Ricardo Ribalda
2021-01-28 7:57 ` . Christoph Hellwig
2021-01-28 7:57 ` . Christoph Hellwig
2020-12-09 11:12 ` Christoph Hellwig
2020-12-09 11:12 ` Christoph Hellwig
2020-12-09 13:05 ` Robin Murphy
2020-12-09 13:05 ` Robin Murphy
2020-12-10 5:08 ` Tomasz Figa
2020-12-10 5:08 ` Tomasz Figa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210127155608.GA20272@lst.de \
--to=hch@lst.de \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mchehab@kernel.org \
--cc=ribalda@chromium.org \
--cc=robin.murphy@arm.com \
--cc=senozhatsky@google.com \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.