Discussion:
[meta-freescale] iMX6 VPU Dma allocation
Mauro Ziliani
2018-11-16 14:22:49 UTC
Permalink
Hi all.

I'm working with an imx6dl-sabresd derived board.

Sometimes the video stop to work, even if I replay the same video many
times.

It happens that I play the video 10 times, and the 11th doesn't start

The reason of this behaviour is due to a dma allocation fault in
vpu_alloc_dma_buffer( drivers/mxc/vpu/mxc_vpu.c)
This fault is generated because the system try to alloc 5238784 bytes
for the DMA, and this space is not available.
The video play is done with gstreamer1.0 and imx-gst1.0-plugin (from a
QMediaPlayer 5.6.1).

Why suddenly gstreamer try to alloc a buffer of 5M? (wich dma cannot
manage due the fragmentation)


To solve this matter I try to integrate this patch into mxc_vpu.c

https://dev.sigmadrone.org/sigmadrone/linux-colibri/commit/7cbd06b2904c1855109084ca6b0c84990bc69233


Any other solutions?


Best regards,

  MZ




--
Mauro Ziliani
2018-11-16 14:25:22 UTC
Permalink
Sorry.

The kernel il linux-imx.4.1.15

MZ
Post by Mauro Ziliani
Hi all.
I'm working with an imx6dl-sabresd derived board.
Sometimes the video stop to work, even if I replay the same video many
times.
It happens that I play the video 10 times, and the 11th doesn't start
The reason of this behaviour is due to a dma allocation fault in
vpu_alloc_dma_buffer( drivers/mxc/vpu/mxc_vpu.c)
This fault is generated because the system try to alloc 5238784 bytes
for the DMA, and this space is not available.
The video play is done with gstreamer1.0 and imx-gst1.0-plugin (from a
QMediaPlayer 5.6.1).
Why suddenly gstreamer try to alloc a buffer of 5M? (wich dma cannot
manage due the fragmentation)
To solve this matter I try to integrate this patch into mxc_vpu.c
https://dev.sigmadrone.org/sigmadrone/linux-colibri/commit/7cbd06b2904c1855109084ca6b0c84990bc69233
Any other solutions?
Best regards,
  MZ
--

Loading...