Re: [PATCH v4] media: iris: optimize COMV buffer allocation for VPU3x and VPU4x

From: bod

Date: Fri May 29 2026 - 20:30:14 EST


On 2026-05-14 00:28 +0530, Vishnu Reddy wrote:
> The existing iris_vpu_dec_comv_size() used VIDEO_MAX_FRAME (32) as
> num_comv count unconditionally when calculating the co-located motion
> vector (COMV) buffer size. This resulted in an oversized COMV buffer
> allocation throughout decode session, wasting memory regardless of
> actual number of buffers required.
>
> For VPU3x and VPU4x platforms, introduce iris_vpu3x_4x_dec_comv_size() to
> replace iris_vpu_dec_comv_size(). These derive num_comv dynamically, it
> uses inst->fw_min_count once the firmware has reported its buffer
> requirements, and fallback to output count during initialization before
> firmware has communicated its requirements. This aligns the COMV buffer
> size to the actual count needed rather than always allocating with fixed
> VIDEO_MAX_FRAME value.
>
> Additionally, during iris_vdec_inst_init(), fw_min_count was initialized
> to MIN_BUFFERS instead of 0. This masked the fallback logic and caused the
> COMV size calculation to use MIN_BUFFERS even before firmware had reported
> its actual requirements. Fix this by initializing fw_min_count to 0.
>
> During testing of 1080p AVC, it reduces the COMV buffer size from 32.89MB
> to 6.16MB per decode session, significantly reducing memory consumption.
>
> Reviewed-by: Vikash Garodia <vikash.garodia@xxxxxxxxxxxxxxxx>
> Signed-off-by: Vishnu Reddy <busanna.reddy@xxxxxxxxxxxxxxxx>
> ---
> Changes in v4:
> - Rebase on linux-media/users/bodonoghue next+fixes
> - Resolve merge conflicts due to merged patch "media: qcom: iris: don't
> use function indirection in gen2-specific code"
> - Link to v3: https://lore.kernel.org/all/20260506-optimize_comv_buffer-v3-1-c1b4a44e4300@xxxxxxxxxxxxxxxx/
>
> Changes in v3:
> - Update num_comv from instance data instead of using caps num_comv
> in set_num_comv function to avoid wrong value update during concurrency.
> - Link to v2: https://lore.kernel.org/r/20260504-optimize_comv_buffer-v2-1-69379a59e17d@xxxxxxxxxxxxxxxx
>
> Changes in v2:
> - Update commit description (Bryan)
> - Update hfi comv buffer count value to use actual num_comv count which
> used for buffer calculation to avoid any overhead or fixed values (Vikash)
> - Link to v1: https://lore.kernel.org/r/20260421-optimize_comv_buffer-v1-1-7c9a24da3ad3@xxxxxxxxxxxxxxxx

Please rebase.

<<< deckard@inspiron14p-linux~/Development/linux-worktrees/b4/bod-media-committers-next-plaform-qcom
>>> b4 shazam 20260514-optimize_comv_buffer-v4-1-7da70b586aec@xxxxxxxxxxxxxxxx ‹git:next-smoketest ✘› 01:14.01 Sat May 30 2026 >>>
Looking up https://lore.kernel.org/all/20260514-optimize_comv_buffer-v4-1-7da70b586aec@xxxxxxxxxxxxxxxx/
Grabbing thread from lore.kernel.org/all/20260514-optimize_comv_buffer-v4-1-7da70b586aec@xxxxxxxxxxxxxxxx/t.mbox.gz
Checking for newer revisions
Grabbing search results from lore.kernel.org
Nothing matching that query.
Analyzing 1 messages in the thread
Looking for additional code-review trailers on lore.kernel.org
Analyzing 0 code-review messages
Checking attestation on all messages, may take a moment...
---
✗ [PATCH v4] media: iris: optimize COMV buffer allocation for VPU3x and VPU4x
---
✗ No key: ed25519/busanna.reddy@xxxxxxxxxxxxxxxx
---
NOTE: install dkimpy for DKIM signature verification
---
Total patches: 1
---
Applying: media: iris: optimize COMV buffer allocation for VPU3x and VPU4x
Patch failed at 0001 media: iris: optimize COMV buffer allocation for VPU3x and VPU4x
error: patch failed: drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c:10
error: drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c: patch does not apply
error: patch failed: drivers/media/platform/qcom/iris/iris_platform_common.h:87
error: drivers/media/platform/qcom/iris/iris_platform_common.h: patch does not apply
error: patch failed: drivers/media/platform/qcom/iris/iris_platform_qcs8300.h:15
error: drivers/media/platform/qcom/iris/iris_platform_qcs8300.h: patch does not apply
error: patch failed: drivers/media/platform/qcom/iris/iris_platform_sm8550.h:23
error: drivers/media/platform/qcom/iris/iris_platform_sm8550.h: patch does not apply
error: patch failed: drivers/media/platform/qcom/iris/iris_vdec.c:24
error: drivers/media/platform/qcom/iris/iris_vdec.c: patch does not apply
error: patch failed: drivers/media/platform/qcom/iris/iris_vpu_buffer.c:2025
error: drivers/media/platform/qcom/iris/iris_vpu_buffer.c: patch does not apply
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"

---
bod