[libcamera-devel] [PATCH v2 0/8] IPU3 Stability

Jacopo Mondi jacopo at jmondi.org
Sat Mar 13 10:18:37 CET 2021


Hi Kieran

On Fri, Mar 12, 2021 at 05:47:19AM +0000, Kieran Bingham wrote:
> This series continues the investigation and resolution of stability
> issues identified on the IPU3 platform and pipeline handler.
>
> Patches [1/8] and [2/8] are split from a test patch provided to me by
> Laurent, where I have added the commit messages.
>
> These ensure that messages sent by the IPA are handled correctly and do
> not race at stop() time
>
> Patch [3/8] was identified by valgrind and fixes an issue related to
> uninitialised accesses on the buffers.
>
> Patch [4/8] extends the state machine checks of the Camera to ensure
> that the pipeline handler does not queue requests out of state.
>
> Patch [5/8] is techincally the only remaining patch from v1 of the IPU3
> stability series but now makes this condtion a fatal error to catch
> incorrect usages in pipeline handlers.
>
> Patch [6/8] has already been posted separately and is key to the
> resolution of the IPU3 IPA shutdown procedure fixes.
>
> Patch [7/8] adds a guarantee that all requests have completed before
> releasing buffers. This guarantee would fail before this series. It
> may be helpful to add this assertion to a common call in the pipeline
> handler base class, or to the CameraData as part of future developments.
>
> Patch [8/8] adds further assertions that the FrameInfo can be found
> during event handling from the IPA. This also would have failed before
> this series.
>

No regressions noticed when running CTS
Tested-by: Jacopo Mondi <jacopo at jmondi.org>

Thanks
   j

>
> Kieran Bingham (6):
>   libcamera: buffer: Initialise status
>   libcamera: camera: Validate requests are completed in Running state
>   libcamera: v4l2_videodevice: Prevent queueing buffers without a cache
>   libcamera: pipeline: ipu3: Stop IPA before stopping devices
>   libcamera: pipeline: ipu3: Ensure no requests are pending at stop()
>   libcamera: pipeline: ipu3: Fail if the FrameInfo can't be found
>
> Laurent Pinchart (2):
>   utils: ipc: proxy: Assert asynchronous calls execute in the running
>     state
>   utils: ipc: proxy: Process pending messages
>
>  include/libcamera/buffer.h                     |  4 ++--
>  src/libcamera/camera.cpp                       | 10 ++++++++--
>  src/libcamera/pipeline/ipu3/ipu3.cpp           | 18 +++++++++++++++---
>  src/libcamera/v4l2_videodevice.cpp             | 10 ++++++++++
>  .../module_ipa_proxy.cpp.tmpl                  |  2 ++
>  .../libcamera_templates/proxy_functions.tmpl   |  6 ++++--
>  6 files changed, 41 insertions(+), 9 deletions(-)
>
> --
> 2.25.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list