[libcamera-devel,v4,0/7] libcamera: V4L2BufferCache: Improve cache eviction strategy
mbox series

Message ID 20200305203808.536050-1-niklas.soderlund@ragnatech.se
Headers show
Series
  • libcamera: V4L2BufferCache: Improve cache eviction strategy
Related show

Message

Niklas Söderlund March 5, 2020, 8:38 p.m. UTC
Hello,

This series improves the function of the V4L2BufferCache and how
it selects which cache entries to evict. This solves a real issue where
if the cache is not pre-allocated the cache can perform suboptimally and
not utilise all the entries in the cache.

Patch 1/7 fix an error in the test class BufferSource found as code in
v1 of this series was based on it. 2/7 Extracts the BufferSource from
the camera buffer import test so it can be used in the new test
for the V4L2BufferCache. Patch 3/7, 4/7 and 5/7 fix small issues with
the V4L2BufferCache pointed out in review of v2. Patch 6/7 add tests
which breaks without the improved cache eviction strategy introduced in
7/7.

Niklas Söderlund (7):
  test: camera: buffer_import: Fix error messages
  test: Extract BufferSource class out of camera tests to libtest
  libcamera: V4L2BufferCache: Mark Entry::operator==() as const
  libcamera: V4L2BufferCache: Use the entry reference
  libcamera: V4L2BufferCache: Check for hot hit first
  test: v4l2_videodevice: Add test for V4L2BufferCache
  libcamera: V4L2BufferCache: Improve cache eviction strategy

 src/libcamera/include/v4l2_videodevice.h |   9 +-
 src/libcamera/v4l2_videodevice.cpp       |  31 ++--
 test/camera/buffer_import.cpp            |  92 +---------
 test/libtest/buffer_source.cpp           |  98 +++++++++++
 test/libtest/buffer_source.h             |  32 ++++
 test/libtest/meson.build                 |  11 +-
 test/v4l2_videodevice/buffer_cache.cpp   | 215 +++++++++++++++++++++++
 test/v4l2_videodevice/meson.build        |   1 +
 8 files changed, 379 insertions(+), 110 deletions(-)
 create mode 100644 test/libtest/buffer_source.cpp
 create mode 100644 test/libtest/buffer_source.h
 create mode 100644 test/v4l2_videodevice/buffer_cache.cpp

Comments

Niklas Söderlund March 6, 2020, 4:56 p.m. UTC | #1
Hi,

I have now pushed this series to master.

On 2020-03-05 21:38:01 +0100, Niklas Söderlund wrote:
> Hello,
> 
> This series improves the function of the V4L2BufferCache and how
> it selects which cache entries to evict. This solves a real issue where
> if the cache is not pre-allocated the cache can perform suboptimally and
> not utilise all the entries in the cache.
> 
> Patch 1/7 fix an error in the test class BufferSource found as code in
> v1 of this series was based on it. 2/7 Extracts the BufferSource from
> the camera buffer import test so it can be used in the new test
> for the V4L2BufferCache. Patch 3/7, 4/7 and 5/7 fix small issues with
> the V4L2BufferCache pointed out in review of v2. Patch 6/7 add tests
> which breaks without the improved cache eviction strategy introduced in
> 7/7.
> 
> Niklas Söderlund (7):
>   test: camera: buffer_import: Fix error messages
>   test: Extract BufferSource class out of camera tests to libtest
>   libcamera: V4L2BufferCache: Mark Entry::operator==() as const
>   libcamera: V4L2BufferCache: Use the entry reference
>   libcamera: V4L2BufferCache: Check for hot hit first
>   test: v4l2_videodevice: Add test for V4L2BufferCache
>   libcamera: V4L2BufferCache: Improve cache eviction strategy
> 
>  src/libcamera/include/v4l2_videodevice.h |   9 +-
>  src/libcamera/v4l2_videodevice.cpp       |  31 ++--
>  test/camera/buffer_import.cpp            |  92 +---------
>  test/libtest/buffer_source.cpp           |  98 +++++++++++
>  test/libtest/buffer_source.h             |  32 ++++
>  test/libtest/meson.build                 |  11 +-
>  test/v4l2_videodevice/buffer_cache.cpp   | 215 +++++++++++++++++++++++
>  test/v4l2_videodevice/meson.build        |   1 +
>  8 files changed, 379 insertions(+), 110 deletions(-)
>  create mode 100644 test/libtest/buffer_source.cpp
>  create mode 100644 test/libtest/buffer_source.h
>  create mode 100644 test/v4l2_videodevice/buffer_cache.cpp
> 
> -- 
> 2.25.1
>