[libcamera-devel,v3,0/5] libcamera: control serializer fixes
mbox series

Message ID 20210924172525.160482-1-jacopo@jmondi.org
Headers show
Series
  • libcamera: control serializer fixes
Related show

Message

Jacopo Mondi Sept. 24, 2021, 5:25 p.m. UTC
This series has started from investigating an error triggered by running
consecutive capture sessions with the IPU3 IPA module running in isolation.

From there a few more fixes/improvements have lead me to be capable to running
CTS with isolated IPA with a single failure (the flaky recording tests).

Patch 1 is a small cleanup of the IPU3 IPA interface.
Patches 2, 3 and 4 fix issues in the control serializer, most of them went not
noticed as the IPA is seldom run isolated for the moment.

Patch 5 is new and replaces "libcamera: control_serializer: Keep handles in
sync" from v1 and represents the most relevant change.

As the v1 version still allowed conflicts to happen, this new version adds a
'seed' to the ControlSerializer and partitions the handles numerical space on
the two sides of the IPC boundary so that the Proxy and the ProxyWorker will
never use the same handles.

Thanks
  j

Jacopo Mondi (5):
  libcamera: ipu3: Drop entityControls map
  ipa: proxy_worker: Reset ControlSerializer on worker
  libcamera: control_serializer: Use the right idmap
  libcamera: control_serializer: Serialize info::def()
  libcamera: control_serializer: Separate the handles space

 include/libcamera/controls.h                  |   1 +
 .../libcamera/internal/control_serializer.h   |   8 +-
 include/libcamera/ipa/ipu3.mojom              |   2 +-
 src/ipa/ipu3/ipu3.cpp                         |   6 +-
 src/libcamera/control_serializer.cpp          | 120 +++++++++++++++---
 src/libcamera/controls.cpp                    |   8 ++
 src/libcamera/ipa_controls.cpp                |  14 +-
 src/libcamera/pipeline/ipu3/ipu3.cpp          |   2 +-
 test/serialization/control_serialization.cpp  |   4 +-
 .../ipa_data_serializer_test.cpp              |   6 +-
 .../module_ipa_proxy.cpp.tmpl                 |   3 +-
 .../module_ipa_proxy_worker.cpp.tmpl          |   7 +-
 12 files changed, 146 insertions(+), 35 deletions(-)

--
2.32.0