[libcamera-devel] [PATCH v2 0/2] lc-compliance: Add test to queue more requests than hardware depth

Nícolas F. R. A. Prado nfraprado at collabora.com
Sat Apr 17 00:28:28 CEST 2021


This series adds a new test to lc-compliance that tests queuing a lot of
requests at once and hopefully exposing the issue described in [1].

I hardcoded the amount of buffers to allocate at once to 8 since more than that
would cause errors when allocating.

Hirokazu,
since you have a patch series addressing this issue on the IPU3
pipeline [2], could you test this series? If both my and your patch series are
working, lc-compliance should crash before applying your series but run through
completion after applying it.

Changes in v2:
- Renamed and reworded commits and series
- Dropped patches 2 and 3, which were hacks to test, and added patch 1 to add
  count to FrameBufferAllocator
- Thanks to Niklas:
  - Created new standalone test instead of looping over the other tests

[1] https://bugs.libcamera.org/show_bug.cgi?id=24
[2] https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019108.html

v1: https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019139.html

Nícolas F. R. A. Prado (2):
  libcamera: framebuffer_allocator: Make allocate() accept count
  lc-compliance: Add test to queue more requests than hardware depth

 include/libcamera/camera.h                    |  3 +-
 include/libcamera/framebuffer_allocator.h     |  2 +-
 include/libcamera/internal/pipeline_handler.h |  3 +-
 src/cam/capture.cpp                           |  2 +-
 src/lc-compliance/simple_capture.cpp          | 69 +++++++++++++++++--
 src/lc-compliance/simple_capture.h            | 16 ++++-
 src/lc-compliance/single_stream.cpp           | 28 +++++++-
 src/libcamera/camera.cpp                      |  5 +-
 src/libcamera/framebuffer_allocator.cpp       |  5 +-
 src/libcamera/pipeline/ipu3/ipu3.cpp          |  9 ++-
 .../pipeline/raspberrypi/raspberrypi.cpp      |  9 ++-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  9 ++-
 src/libcamera/pipeline/simple/simple.cpp      |  9 ++-
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |  9 ++-
 src/libcamera/pipeline/vimc/vimc.cpp          |  9 ++-
 src/libcamera/pipeline_handler.cpp            |  1 +
 src/qcam/main_window.cpp                      |  2 +-
 test/camera/capture.cpp                       |  2 +-
 test/camera/statemachine.cpp                  |  2 +-
 test/mapped-buffer.cpp                        |  2 +-
 20 files changed, 160 insertions(+), 36 deletions(-)

-- 
2.31.1



More information about the libcamera-devel mailing list