SysadminNews

Linux 7.2 kept FIFO for the shared DRM scheduler

On this page
  1. A revert that reached the final release
  2. Which queue is being discussed?
  3. A useful comparison preserves context

Linux 7.2’s final shared DRM scheduler defaults to FIFO. The earlier plan to use fair scheduling changed late in the release cycle, so pre-release feature lists need a dated correction.

Conceptual DRM path: client A waits for a dependency while client B has eligible work. Eligibility, scheduling and GPU execution are different stages. Linux v7.2 defaults the shared DRM scheduler to FIFO; the fair policy is marked experimental.
Conceptual DRM path: client A waits for a dependency while client B has eligible work. Eligibility, scheduling and GPU execution are different stages. Linux v7.2 defaults the shared DRM scheduler to FIFO; the fair policy is marked experimental. Chart : PeopleAreGeek. Data source.
View full-size image

A revert that reached the final release

Tvrtko Ursulin’s August 11 v3 series contains nineteen patches restoring the earlier interfaces and default after a late regression report. It also labels the fair policy experimental. The author said he had not reproduced the issue locally and further debugging was needed.

The Linux v7.2 source provides the delivered-state check: drm_sched_policy defaults to DRM_SCHED_POLICY_FIFO, while the module description marks fair as experimental. This is stronger evidence of the shipped default than the original proposal.

Which queue is being discussed?

This concerns the shared DRM GPU scheduler. It is not a switch in the CPU scheduler, nor a claim that every graphics driver uses the same path and configuration. A downstream kernel or explicit policy override can also differ from the upstream default.

Our conceptual example contains two clients. Client A has a job waiting on a dependency; client B has ready work. Deciding which eligible work to submit is distinct from making A’s dependency complete. A policy name alone does not tell you whether a delay occurs in eligibility, submission or execution on the GPU.

That distinction matters when collecting a regression report. A frozen frame, continuing audio and a busy GPU are observations; none individually identifies the failed layer. Changing several driver, compositor and kernel versions at once makes it harder to connect the outcome to one change.

A useful comparison preserves context

Record the complete kernel build, GPU model, userspace graphics stack, compositor and workload. Compare a known-working build and the suspect build while keeping other inputs stable. Include the policy in use if it was overridden, and distinguish a repeatable trigger from an occasional symptom.

The revert restores a conservative default while debugging continues. It does not prove that every desktop freeze is caused by the fair policy or that switching to Linux 7.2 resolves every graphics fault. The practical correction is precise: this particular default change did not survive into the final upstream release.

Verify shipped v7.2 FIFO default and experimental fair mode; avoid all-driver or all-freeze guarantees and distinguish dependency readiness from scheduling.