Captured stock kwin 6.6.4 ioctl baselines on ohm (PineTab2 / RK3566 / mainline 6.19.10 / Plasma 6.6.4 Wayland): - Brave + bbb 1080p30 (sw decode), 60 s: 96,120 ioctls, 0 EXPORT_SYNC_FILE - chromium-fourier + bbb 1080p30, 30 s: 29,128 ioctls, 0 EXPORT_SYNC_FILE, ~7,800 SYNCOBJ_* (explicit sync) Finding: KWin 6.6.4 + drm-syncobj-aware clients negotiate wp_linux_drm_syncobj_v1 explicit sync, leaving Transaction::watchDmaBuf on the legacy implicit-sync path that fires only for clients that don't advertise drm-syncobj support. Updated kde-mr-body.md to reflect honest scope: structural cleanup of the legacy path (still relevant for older clients / V4L2 pipelines that don't wrap dmabufs in syncobjs) rather than the originally- hypothesized per-frame ioctl reduction. Patch is correct by construction; no regression on the no-targeted-path workload. Evidence files saved under measurements/. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
upstream-submissions/
Drafts of the upstream submission texts for the patch series in
arch/ and kernel/. Each subdirectory pairs a patch series with
the issue / merge-request / mailing-list body that should accompany
it when going upstream.
Layout
upstream-submissions/
├── qt6-base-fourier/ # bugreports.qt.io issue + Gerrit notes
│ └── qt-bug-report.md
├── kwin-fourier/ # invent.kde.org MR body + KDE flow notes
│ └── kde-mr-body.md
└── vb2-dma-resv/ # linux-media cover letter + send-email recipe
└── lkml-submission-notes.md
The patches themselves live in:
arch/qt6-base-fourier/0001..0003-*.patch(Qt 6 patches)arch/kwin-fourier/0002-*.patch(KWin upstream-shape patch;0001-*-bypass-*.patchis the local diagnostic, not for upstream)kernel/vb2-dma-resv-rfc/0001..0003-*.patchplus0000-cover-letter.patch(kernel patches)
Submission status
| Series | Bug filed | Patches submitted | Landed |
|---|---|---|---|
| qt6-base-fourier | not yet | not yet | not yet |
| kwin-fourier (0002) | n/a — KDE goes straight to MR | not yet | not yet |
| vb2-dma-resv | n/a — kernel goes straight to mailing list | not yet | not yet |
Validation gates before submitting
Each subdirectory's notes file lists the validation gates specific to that series. Common to all three:
- Patches must apply cleanly to the latest upstream branch (rebase before sending).
- Build must complete (compile-test for kernel; the others are already validated as building cleanly).
- End-to-end runtime test on ohm should still pass with the patch applied (preferably with the other layers of the campaign also applied, so the patch doesn't get blamed for behavior in another layer).
Submission order
Recommended:
-
vb2-dma-resv to linux-media first. The kernel-side fix is the architectural correction that makes the kwin patch's premise (the wait will signal correctly) actually true. If the kernel patch isn't merged or accepted, the kwin patch submission can still proceed but on weaker rationale.
-
qt6-base-fourier to bugreports.qt.io + Gerrit second. Independent of the others; pure spec-correctness improvement for OpenGL ES 3.x, can land at any time.
-
kwin-fourier (0002) to invent.kde.org last, ideally referencing the merged or in-flight kernel patch as the underlying correctness fix.
Cadence after submitting
- Watch each upstream for review feedback; revise and resubmit.
- After landing, request backports to LTS branches where applicable (Qt 6.5 LTS, Plasma 6.x, kernel stable).
- Once landed in a release shipping to Arch / Debian / etc., the
corresponding
arch/*-fourier/package becomes redundant and can be retired (drop theepoch=1override, archive the PKGBUILD as historical reference).