Files
marfrit-packages/upstream-submissions/vb2-dma-resv/lkml-submission-notes.md
T
marfrit d3564b061c upstream-submissions/vb2-dma-resv: linux-media submission notes
Submission notes for the kernel/vb2-dma-resv-rfc series. Captures:

- Pre-flight gates (full-tree compile-test, boot-test on ohm,
  runtime validation by uninstalling kwin-fourier and confirming
  chrome still plays through, syscall-count delta).
- The git send-email recipe with the full CC list (linux-media,
  V4L2 maintainers, hantro maintainer Tomasz Figa, dma-buf
  reviewers Sumit Semwal / Christian König / Jason Ekstrand,
  dri-devel, linux-rockchip, Heiko / Jeffy).
- Expected reviewer feedback (opt-in vs. auto-on, selftest
  request, signal-point semantics for async producers,
  Pick-to-LTS decision).
- Withdraw conditions if upstream is already doing this work or
  the design has a fundamental issue we didn't see.

This is the third upstream-submission draft in the campaign:

   upstream-submissions/qt6-base-fourier/   bugreports.qt.io draft
   upstream-submissions/kwin-fourier/       invent.kde.org MR draft
   upstream-submissions/vb2-dma-resv/       linux-media draft (this)
2026-04-28 19:52:02 +00:00

5.0 KiB

linux-media submission notes — vb2 dma_resv release-fence series

The 3-patch RFC series at marfrit-packages/kernel/vb2-dma-resv-rfc/ is ready to send. Cover letter is filled in; patches apply cleanly via git am against Linux 6.12 mainline; all kernel APIs verified.

Pre-flight gates (re-stated)

  1. Full-tree compile-test — apply the 3 patches to a complete kernel checkout (not a sparse one), make defconfig + enable CONFIG_VIDEO_HANTRO=y and CONFIG_VIDEO_ROCKCHIP_RGA=y, then build. A focused make drivers/media/common/videobuf2/videobuf2-core.o drivers/media/platform/verisilicon/hantro_v4l2.o drivers/media/platform/rockchip/rga/rga-buf.o is the minimal safe-to-send threshold; full make is the higher confidence bar.
  2. Boot-test on ohm — install the patched kernel, verify lsmod shows hantro_vpu and rockchip_rga loaded, run mpv --vo=drm --hwdec=v4l2request bbb_1080p30_h264.mp4 and confirm playback still works (smoke test that we haven't broken the existing buffer-state machine).
  3. Runtime validation — install patched kernel, pacman -R kwin-fourier so KWin's stock watchDmaBuf is re-enabled, play bbb_1080p30_h264.mp4 in chromium-fourier under KDE Plasma. Should plays through end-to-end because the fence the compositor waits on is now real (signals when hantro completes). Compare CPU profile against the kwin-fourier-bypassed baseline — should be equivalent or marginally lower.
  4. Capture syscall numbersstrace -c -p $(pgrep kwin_wayland) during a 60-second playback, before and after the kernel patch (with stock KWin, kwin-fourier uninstalled). Reports the ioctl reduction the patch enables (since EXPORT_SYNC_FILE will now signal real fences instead of stub ones, but the call itself remains). The reduction is greater if the KWin upstream-shape patch is also in, but the kernel patch alone is sufficient to make the existing KWin path correct.

Send command

After all four gates pass, format-patch and send:

cd <linux-tree-with-patches-applied>
git format-patch --cover-letter --base=auto -3 \
                 -o /tmp/vb2-dma-resv-out HEAD
# Verify cover letter has the right Subject and blurb (we already
# filled them in, but git format-patch will overwrite — so paste
# the canonical ones from kernel/vb2-dma-resv-rfc/0000-cover-letter.patch)
git send-email \
    --to=linux-media@vger.kernel.org \
    --cc='Mauro Carvalho Chehab <mchehab@kernel.org>' \
    --cc='Hans Verkuil <hverkuil-cisco@xs4all.nl>' \
    --cc='Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>' \
    --cc='Tomasz Figa <tfiga@chromium.org>' \
    --cc='Sumit Semwal <sumit.semwal@linaro.org>' \
    --cc='Christian König <christian.koenig@amd.com>' \
    --cc='Jason Ekstrand <jason@jlekstrand.net>' \
    --cc='dri-devel@lists.freedesktop.org' \
    --cc='linux-rockchip@lists.infradead.org' \
    --cc='Heiko Stuebner <heiko@sntech.de>' \
    --cc='Jeffy Chen <jeffy.chen@rock-chips.com>' \
    /tmp/vb2-dma-resv-out/*.patch

Rationale for the CC list:

  • linux-media@vger.kernel.org — primary list (V4L2 / videobuf2)
  • Mauro / Hans / Ezequiel — V4L2 maintainers
  • Tomasz Figa — hantro maintainer (Collabora / Chromium overlap)
  • Sumit Semwal / Christian König / Jason Ekstrand — dma-buf reviewers (this patch touches dma_resv semantics, so the dma-buf folks need a look)
  • dri-devel — graphics list, the consumer side of the fence
  • linux-rockchip@lists.infradead.org — RK3xxx-specific feedback
  • Heiko Stübner — Rockchip / arm64 maintainer
  • Jeffy Chen — Rock-Chips media stack lead

Expected feedback

  • "Why opt-in vs auto-on for all CAPTURE queues?" — answered in cover letter; willing to switch to auto-on if reviewers prefer the audit burden.
  • "Does this need a vb2 selftest?" — videobuf2 doesn't have great in-tree dmabuf coverage; offer to add a minimal kselftest if reviewers ask.
  • "Is vb2_buffer_done the right signal point for asynchronous drivers?" — for hantro and rga it is (they're synchronous m2m). For drivers with async post-processing, may need a separate hook; out of scope for this RFC.
  • "Pick-to: stable trees?" — Maintainers will decide. The patch is invasive enough that LTS backport may not be wanted; the contract gap has been there since vb2's introduction so it's not a regression fix.

Withdraw conditions

If reviewers point out that:

  • A driver in the wider tree already does this and we missed it (the auto-on path would just naturally pick that up; switch approach).
  • vb2's dma_resv integration is being done in a different upstream effort already (search lkml for videobuf2 dma_resv before sending — should already be in the cover letter).
  • The fence semantics are wrong for some driver class we didn't consider (most likely image-sensor → CSI → ISP → output, where the producer fence at the camera side and the user-visible fence at the ISP output may be different).

…drop the series, write up the lessons, retry next cycle.