mbox series

[v3,0/4] stk1160: allocate urb buffs with the DMA noncontiguous API

Message ID 20220217060724.7763-1-dafna@fastmail.com (mailing list archive)
Headers show
Series stk1160: allocate urb buffs with the DMA noncontiguous API | expand

Message

Dafna Hirschfeld Feb. 17, 2022, 6:07 a.m. UTC
This set replaces urb buffers allocation to use the DMA
noncontiguous API. Similarly to a commit sent to uvc: [1]
This improves performance on ARM while not damaging performance
on other platforms. The cpu performance on ARM
improves because the new API does not cause the cache disable on ARM
while the coherent API do.
Measurements are shown in patch 4/4

[1] https://lkml.org/lkml/2021/3/12/1506

Patches Summary:
* patches 1+2 are bug fixes.
* patch 3 changes the way data is stored. This is a preparation
to patch 4.
* patch 4 is the change of API to use the noncontiguougs.

Since changes on v3 are minors, I only tested that the driver works but not tested performance again.

Changes since v2:
1. improve commit log for patch 4, and "s/stk_free_urb_buffer/stk1160_free_urb/"

Changes since v1:
1. reduce line length to be not too longer than 80 char
2. reformulate commit log of patch 4/4 and add measurements results
3. in patch 4, invalidate the vmap range before the direct mapping range.
4. test regressions for patches 1-3 (not including patch 4) and improve vars names
5. patch 2 is a new bug fix I found
6. patch 1 is extended to fix two cases of not allocating all intended urb buffers.

Dafna Hirschfeld (4):
  media: stk1160: fix number of buffers in case not all buffers are
    created
  media: stk1160: If start stream fails, return buffers with
    VB2_BUF_STATE_QUEUED
  media: stk1160: move transfer_buffer and urb to same struct
    'stk1160_urb'
  media: stk1160: use dma_alloc_noncontiguous API

 drivers/media/usb/stk1160/stk1160-core.c  |   2 +-
 drivers/media/usb/stk1160/stk1160-v4l.c   |  16 ++-
 drivers/media/usb/stk1160/stk1160-video.c | 142 ++++++++++++----------
 drivers/media/usb/stk1160/stk1160.h       |  23 +++-
 4 files changed, 104 insertions(+), 79 deletions(-)

Comments

Hans Verkuil Feb. 18, 2022, 11:55 a.m. UTC | #1
On 17/02/2022 07:07, Dafna Hirschfeld wrote:
> This set replaces urb buffers allocation to use the DMA
> noncontiguous API. Similarly to a commit sent to uvc: [1]
> This improves performance on ARM while not damaging performance
> on other platforms. The cpu performance on ARM
> improves because the new API does not cause the cache disable on ARM
> while the coherent API do.
> Measurements are shown in patch 4/4
> 
> [1] https://lkml.org/lkml/2021/3/12/1506
> 
> Patches Summary:
> * patches 1+2 are bug fixes.
> * patch 3 changes the way data is stored. This is a preparation
> to patch 4.
> * patch 4 is the change of API to use the noncontiguougs.
> 
> Since changes on v3 are minors, I only tested that the driver works but not tested performance again.
> 
> Changes since v2:
> 1. improve commit log for patch 4, and "s/stk_free_urb_buffer/stk1160_free_urb/"

Ah, I missed the v3. But in the v2 I merged for the pull request I made exactly
the same changes in patch 4. So I will just mark this v3 as 'Obsoleted' and
keep the version in the PR.

Regards,

	Hans

> 
> Changes since v1:
> 1. reduce line length to be not too longer than 80 char
> 2. reformulate commit log of patch 4/4 and add measurements results
> 3. in patch 4, invalidate the vmap range before the direct mapping range.
> 4. test regressions for patches 1-3 (not including patch 4) and improve vars names
> 5. patch 2 is a new bug fix I found
> 6. patch 1 is extended to fix two cases of not allocating all intended urb buffers.
> 
> Dafna Hirschfeld (4):
>   media: stk1160: fix number of buffers in case not all buffers are
>     created
>   media: stk1160: If start stream fails, return buffers with
>     VB2_BUF_STATE_QUEUED
>   media: stk1160: move transfer_buffer and urb to same struct
>     'stk1160_urb'
>   media: stk1160: use dma_alloc_noncontiguous API
> 
>  drivers/media/usb/stk1160/stk1160-core.c  |   2 +-
>  drivers/media/usb/stk1160/stk1160-v4l.c   |  16 ++-
>  drivers/media/usb/stk1160/stk1160-video.c | 142 ++++++++++++----------
>  drivers/media/usb/stk1160/stk1160.h       |  23 +++-
>  4 files changed, 104 insertions(+), 79 deletions(-)
>