Skip to content

linux-ptl: rebase to 7.2.2.arch1, carry all patches + Xe opportunistic compaction - #271

Open
spencerbull wants to merge 1 commit into
masterfrom
t3code/retarget-linux-ptl-patches
Open

linux-ptl: rebase to 7.2.2.arch1, carry all patches + Xe opportunistic compaction#271
spencerbull wants to merge 1 commit into
masterfrom
t3code/retarget-linux-ptl-patches

Conversation

@spencerbull

@spencerbull spencerbull commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Rebase linux-ptl from 7.1.8.arch1-2 to Arch's current base linux 7.2.2.arch1-1 (kernel.org 7.2.2 tarball + v7.2.2-arch1 patch), and fold in PR #136 (Brost v6 mm+xe opportunistic compaction) so it ships with the new base.

Every carried patch was analyzed against the 7.2.2 tree and independent lore/mirror research before deciding keep/drop: none of the five are upstream in 7.2.2 (or master through the 7.3 merge window), so all adds are kept.

Patch-by-patch analysis

Patch 7.2.2 status Action
0020 alpm PR_ALPM gating Not upstream; bug still reachable — 7.2 moved PR_ALPM_CTL programming under intel_alpm_is_alpm_aux_less(), which is also true for LOBF-only (no Panel Replay) configs Retargeted onto the new block (&& crtc_state->has_panel_replay)
0028 XPS 14/16 Panel Replay ALPM lag workaround Not upstream; upstream doubled down the other way — 7.2 now ships Panel Replay disable quirks for both 1028:0db9 (XPS 14) and 1028:0dba (XPS 16, new in 7.2) Reworked: repoint both upstream entries at the keep-enabled workaround quirk instead of carrying our own 0dba entry; commit message updated
0029 drm/edid DisplayID adaptive-sync monitor range Not upstream; drm_edid surfaces byte-identical 7.1.8→7.2.2 Carried; plus a review-driven fix (below)
1001/1002 opportunistic compaction (from #136) v6 (2026-06-17) is still the latest revision on lore — no v7; nothing merged to Linus/mm/drm-xe-next; discussion stalled after Brost's 2026-07-31 reply to Chinner Carried as the complete b4 v6 patches with byte-identical +/- payload lines, context-refreshed for 7.2 vmscan drift (2 hunks, pure context: successneed_rotate rename, vmpressure() order arg, new balance_pgdat tracepoint)

config.x86_64 is Arch stock 7.2.2.arch1-1 (our previous config was byte-identical to Arch stock 7.1.8, so there were no local deltas to carry).

Review-driven fix in 0029

Deep review found the adaptive-sync parser selected the descriptor with the widest min→max span. DisplayID 2.0 defines descriptor 0 as the panel's primary operating range; later descriptors are alternate operation modes, so widest-span could feed an unsustainable min into intel_vrr on multi-descriptor panels (low-end flicker risk). Now selects the first valid descriptor. Single-descriptor panels (the XPS OLEDs) see no behavior change.

Review + build verification

  • Retarget done as per-patch commits on a pristine 7.2.2-arch1 baseline; regenerated patch files apply with --fuzz=0, zero offsets, and reproduce the reviewed tree byte-for-byte. Original b4 mail headers/trailers preserved on 1001/1002.
  • Two review rounds (independent reviewer agents):
    • Round 1 (rebase correctness): all hunks verified landed in the right functions; exhaustive cancel-site audit of the new PSR delayed work (no missed teardown path); DEVICE_ID_ANY quirk matching intact; all shrink_slab() callers/signature audit clean; all seven touched objects compiled warning-free with CONFIG_WERROR=y forced.
    • Round 2 (upstream-interaction deep dive + fix verification): zero rebase-specific regressions. drm_edid/mm/shrinker/xe/TTM surfaces are byte-identical 7.1.8→7.2.2; i915 deltas verified non-interacting (LOBF/PR structurally mutually exclusive; new Wa_16025596647 machinery excludes PR; DC3CO path upstream-dead).
  • Docker build (./bin/build --package linux-ptl): checksums + GPG verified in-container, all six patches applied, 1 built / 0 failed. Produced linux-ptl-7.2.2.arch1-1 + headers; package contains vmlinuz, i915.ko.zst, xe.ko.zst; prepared version 7.2.2-arch1-1-ptl.

Known items deliberately not addressed here

  • Two findings inside the v6 opportunistic-compaction design (an nr_deferred clamp that can discard xe backup-reclaim debt on opportunistic passes, and a hint-unaware runtime-PM force-wake) are upstream-series issues, present since 7.1.8 — per the linux-ptl: fix Xe reclaim stalls under fragmentation #136 review principle we carry the reviewed v6 verbatim rather than forking it downstream. They belong in the lore thread; if xe backup reclaim ever looks anemic under THP pressure, the deferred clamp is the first suspect.
  • Watch for a reworked v7+ of the series (Chinner is pushing a compaction-aware shrinker architecture instead — if that lands, 1001/1002 need a rethink, not a rebase).
  • Runtime validation on XPS 14/16 hardware still applies: un-disabling Panel Replay newly exercises 7.2's PANEL_REPLAY_CONFIG3/coasting-vtotal paths on these LGD panels, and the flush-exit trades some power under sustained animation for the idle savings.

Test plan

  • makepkg source verification + prepare() (host and docker)
  • Full docker package build, both packages produced
  • Boot + A/B on XPS 14 DA14260 / XPS 16 DA16260 (Panel Replay idle power, cursor lag, VRR range, Xe reclaim under 5K load)

Rebase onto Arch linux 7.2.2.arch1-1 (kernel.org 7.2.2 + v7.2.2-arch1).

Patch analysis vs 7.2.2 (none upstream; all adds kept):
- 0020 alpm PR_ALPM gating: retargeted; upstream moved PR_ALPM_CTL
  programming under intel_alpm_is_alpm_aux_less() where LOBF-only
  aux-less configs can still reach it without Panel Replay.
- 0028 XPS 14/16 Panel Replay ALPM lag workaround: upstream 7.2 now
  disables Panel Replay on both machines (0db9 + 0dba quirks); repoint
  both entries at the lag workaround instead of carrying our own 0dba
  entry.
- 0029 drm/edid DisplayID adaptive-sync monitor range: still absent
  upstream. Review fix: select the first valid adaptive-sync
  descriptor (the panel's primary operating range per DisplayID 2.0)
  instead of the widest advertised span, which could pick an
  unsustainable alternate-mode range on multi-descriptor panels.
- 1001/1002 (PR #136, Brost v6 mm+xe opportunistic compaction):
  context-refreshed for 7.2 vmscan drift; v6 remains latest on lore,
  not merged in 7.2.y or master. Payloads carried byte-identical to
  the reviewed b4 series.

config.x86_64: adopt Arch stock 7.2.2.arch1-1 config (previous file was
byte-identical to Arch stock 7.1.8).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant