fourier:vb2_dma_resv_rfc
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| fourier:vb2_dma_resv_rfc [2026/04/29 04:16] – fix HTML-entity over-escape (' -> ' ; " -> "); restores monospace markup markus_fritsche | fourier:vb2_dma_resv_rfc [2026/04/30 08:56] (current) – v1 sent + reviews from Nicolas/Christian + v2 sketch backlogged + lore-watch caveat markus_fritsche | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== fourier — vb2-dma-resv kernel RFC ====== | ====== fourier — vb2-dma-resv kernel RFC ====== | ||
| - | 3-patch kernel RFC drafted as part of the fourier campaign. Targets the | + | 3-patch kernel RFC. Sent to **linux-media** |
| - | **linux-media** | + | linux-rockchip + linux-arm-kernel + linux-kernel on 2026-04-29 19:53 UTC. |
| + | Index: [[fourier: | ||
| - | ===== Why this exists | + | ===== Status (2026-04-30) |
| - | The architectural correction that makes the kwin-fourier wait premise | + | * **v1 sent:** Cover Msg-Id ''< |
| - | (//"the wait will signal correctly" | + | * **Two reviewer replies received** the same day. Both substantive, |
| + | * **v2 sketch backlogged.** Drafted but not yet rewritten in user voice; awaiting review before patches get touched. | ||
| + | |||
| + | ===== Why this exists ===== | ||
| vb2 currently does **not** propagate V4L2 producer state into the dmabuf | vb2 currently does **not** propagate V4L2 producer state into the dmabuf | ||
| - | '' | + | '' |
| - | KWin compositor polling a dmabuf for completion) cannot rely on the | + | compositor polling a dmabuf for completion) cannot rely on the fence |
| - | fence to indicate " | + | to indicate " |
| - | compositor | + | either spins on stub fences (the bug kwin-fourier 0001 works around) |
| - | identified) or has to do the wait itself | + | or has to do the wait the hard way at compositor level. |
| - | as a workaround). | + | |
| + | ===== Patches | ||
| + | |||
| + | - vb2 helper API '' | ||
| + | - hantro opt-in (called from '' | ||
| + | - rockchip-rga opt-in (same shape, same problem) | ||
| + | |||
| + | ===== v1 reviewer replies ===== | ||
| + | |||
| + | ==== Nicolas Dufresne (V4L2 maintainer side) ==== | ||
| + | |||
| + | ''< | ||
| + | 2026-04-29 21:22 UTC. | ||
| + | |||
| + | * Why implicit fencing instead of explicit? | ||
| + | * **Critical contract violation: | ||
| + | * **Right attach point for hantro:** right before the DEC bit on the control register, after bitstream + params + request are queued. | ||
| + | * Suggests basing the design on '' | ||
| + | * Mentions Freedreno + Etnaviv "back flash" issue with implicit fences on imported V4L2 buffers as higher-priority work — the GL drivers attach their submit fence into the V4L2 dmabuf' | ||
| + | |||
| + | ==== Christian König (dma-buf / dma-resv maintainer, AMD) ==== | ||
| + | |||
| + | ''< | ||
| + | in reply to Nicolas. | ||
| + | |||
| + | * " | ||
| + | * " | ||
| + | * **But:** " | ||
| + | * Maintainer-hat ask: annotate fence-publish path with Sima Vetter' | ||
| + | |||
| + | ===== v2 plan (sketch backlogged) ===== | ||
| + | |||
| + | Net of the two reviews: not a NACK. A directed redirect with a permission | ||
| + | slip (" | ||
| + | reference saved in the gitea repo at: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== v2 decisions taken ==== | ||
| + | |||
| + | * **Attach point moves** from '' | ||
| + | * **Per-driver opt-in:** new '' | ||
| + | * **Kconfig: | ||
| + | * **Lockdep: | ||
| + | * **Tag:** keep '' | ||
| + | * **CC:** Daniel/Sima Vetter ('' | ||
| + | |||
| + | ==== Open for v3 / future ==== | ||
| + | |||
| + | * '' | ||
| + | * Auto-on per vb2-CAPTURE queue. Probably not — opt-in is the safer story given the unfixed freedreno/ | ||
| + | |||
| + | ===== Relation to the rest of the fourier campaign ===== | ||
| - | ===== Patches ===== | + | * **kwin-fourier 0001-skip-wait** (currently shipped, '' |
| + | * **kwin-fourier 0002-upstream-shape** was an attempt to write the dmabuf-fd poll dance the way upstream would accept it. Reviewer on KDE MR 9157 (now closed) showed the technical claims were wrong — sync_file is a fence snapshot at export, dmabuf-fd polling tracks later-added fences, Mutter explicitly moved off the polling path on amdgpu. Not for re-submission. | ||
| + | * **vb2-dma-resv RFC v2** fixes the gap at the producer level so kwin-fourier 0001's bypass is no longer needed: KWin's stock '' | ||
| + | * Both are shippable independently. The kwin patch helps on kernels that never get the RFC; the RFC helps on compositors that never take the kwin patch. With both in tree the kwin patch becomes a no-op and can be retired. | ||
| - | - vb2 helper API for '' | + | ===== How to fetch reply traffic on this thread ===== |
| - | - hantro opt-in | + | |
| - | - rockchip-rga opt-in | + | |
| - | All kernel APIs verified against | + | '' |
| - | Patches are drafted, regenerated via '' | + | headers. Mid-thread replies that drop the address (the common case for |
| - | shape linux-media expects. | + | review threads) are NOT caught. Both 2026-04-30 replies were missed. |
| + | Manual walk: | ||
| - | ===== Submission ===== | + | <code bash> |
| + | ssh noether | ||
| + | git clone --bare --depth 500 \ | ||
| + | https:// | ||
| + | ~/ | ||
| + | cd ~/ | ||
| + | git fetch --depth 1000 origin | ||
| + | git log --all --format='%H %ci %s' | \ | ||
| + | grep -i ' | ||
| + | git show < | ||
| + | </ | ||
| - | * **Target list: | + | linux-media's live public-inbox epoch is **1** as of 2026-04-30; probe |
| - | | + | higher numbers if no hits. Anubis blocks lore HTTP; git pack-protocol |
| - | * **Source path:** '' | + | bypasses it cleanly. |
| - | ===== Relation to the rest of the campaign | + | ===== Source paths ===== |
| - | * **kwin-fourier 0002** does the dmabuf-fd poll dance as a workaround at the compositor level. | + | * **Patches (v1):** '' |
| - | * **vb2-dma-resv | + | * **v1 submission notes (CC list, send recipe):** '' |
| - | * Both are shippable independently — different upstreams, different review cadences. The kwin patch is useful even on kernels that never get the RFC; the RFC is useful even on compositors that never take the kwin patch. | + | * **v2 sketch + prior art:** '' |
fourier/vb2_dma_resv_rfc.1777436203.txt.gz · Last modified: by markus_fritsche
