Linux 7.2 is verschenen in een van de drukste releasecycli tot nu toe. De kernel introduceert diverse technische verbeteringen, waaronder cache-aware scheduling, MGLRU-optimalisaties en multi-size transparent hugepages.
Een aanzienlijk deel van de updates komt van Igalia, met een focus op de volgende punten:
- GPU-scheduling: De DRM scheduler fair policy is toegevoegd, maar staat vanwege een regressie momenteel op opt-in.
- Raspberry Pi: Er is Runtime Power Management geïmplementeerd voor de GPU's van de Raspberry Pi 4 en 5 om het stroomverbruik bij inactiviteit te verlagen. Daarnaast zijn er hardnekkige GPU-bugs in de Raspberry Pi 3 opgelost die voorheen leidden tot crashes bij RetroPie-gebruikers.
- Systeem & Drivers: Er zijn verbeteringen doorgevoerd in
sched_ext voor betere diagnose van runtime-fouten, fixes voor de futex() systeemaanroep en initiële ondersteuning voor HDMI 2.1 Fixed Rate Link (FRL) in de amdgpu-driver.
Linux 7.2 is uitgebracht
19 augustus 2026
Linux 7.2 is deze week volgens het reguliere schema getagd en uitgebracht.
Deze cyclus was een van de drukste ooit, alleen overtroffen door versie 6.7. Dit wordt beschouwd als de "nieuwe normaal", aangezien de laatste drie of vier cycli erg druk waren, vooral wat betreft fixes. Er zijn deze cyclus enkele interessante prestaties geboekt, zoals cache-aware scheduling, verbeteringen aan MGLRU, het concept van sub-schedulers voor sched_ext (zie de goede introductie over dit onderwerp door LWN), de automatische creatie van multi-size transparent hugepages (eveneens met een goede introductie op LWN) en meer. Voor het volledige overzicht kunnen de LWN-artikelen (deel 1 en deel 2) worden geraadpleegd.
Igalia heeft zoals gebruikelijk een aanzienlijk aandeel geleverd, voornamelijk de DRM scheduler fair policy. Vanwege een regressie die op het laatste moment werd gemeld (zie hieronder), is deze momenteel beschikbaar als opt-in. Daarnaast hebben we zeer handige runtime power management geïmplementeerd voor GPU's in de Raspberry Pi 4 en 5, verbeteringen doorgevoerd in sched_ext en futex, en diverse algemene bugfixes geleverd. Hieronder volgen de hoogtepunten.
Igalia Changelog
DRM-scheduler fair policy
Voor deze releasecyclus was het plan om de DRM scheduler fair policy te implementeren en te activeren. Deze brengt aanzienlijke verbeteringen in scenario's waarin meerdere cliënten de GPU delen, en wanneer een lichte interactieve cliënt concurreert met een veeleisende cliënt. Helaas, door een melding van een regressie tijdens de week van 7.2-rc7, blijft de standaardpolicy de oude first-in/first-out (FIFO) scheduler. Omdat de oplossing voor de regressie van de fair policy al bekend is en vroege tests veelbelovend zijn, hopen we dat deze in een volgende kernel-release opnieuw wordt geactiveerd.
sched_ext
We hebben de observeerbaarheid van schedext verbeterd om het debuggen te vereenvoudigen. Wanneer een aangepaste schedext-scheduler een runtime-fout vertoont – zoals het niet kunnen inplannen van een taak gedurende meer dan 30 seconden – verwijdert de kernel deze en schakelt terug naar de standaard scheduler. Om deze fouten te kunnen diagnosticeren, dumpt de kernel de status van elke CPU. Vooral op systemen met veel cores kunnen deze dumps echter worden afgebroken door bufferlimieten tussen de kernel- en gebruikersruimte. We hebben dit opgelost door de exit CPU (de CPU die de fout veroorzaakte) prioriteit te geven, zodat deze als eerste wordt gedumpt, terwijl de CPU-ID direct zichtbaar wordt gemaakt voor BPF-schedulers en tools in de gebruikersruimte.
Energiebeheer voor Raspberry Pi GPU's en meer
In deze release hebben we ondersteuning toegevoegd voor Runtime Power Management op de GPU's van de Raspberry Pi 4 en 5.
Tot nu toe had de V3D-driver een zeer simpel energiemodel: de GPU-klok werd geactiveerd tijdens het proben en bleef gedurende de gehele levensduur van de driver geactiveerd. Hoewel deze aanpak simpel en functioneel was, betekende dit dat een inactieve GPU nog steeds stroom verbruikte, zelfs als er geen actieve taken werden uitgevoerd. Met Runtime PM wordt de GPU alleen van stroom voorzien wanneer deze daadwerkelijk werk verwerkt, en kan de klok worden uitgeschakeld wanneer de GPU inactief is. Dit vermindert het stroomverbruik wanneer de Raspberry Pi de GPU niet gebruikt. We hebben hier een blogpost over geschreven met meer details en stroommetingen.
daarnaast hebben we twee hardnekkige bugs in de Raspberry Pi 3 GPU-driver opgelost die RetroPie-gebruikers al jaren hinderden en zorgden voor willekeurige GPU-hangs en volledige systeemcrashes. De problemen bleken te liggen bij de manier waarop de kernel omging met tile memory wanneer de GPU geen ruimte meer had tijdens het verwerken van een frame. Onze fixes zorgen ervoor dat elke grafische taak alleen naar zijn eigen geheugengebied schrijft en dat hergebruikt geheugen correct wordt gewist voordat het opnieuw wordt gebruikt, waardoor voorkomen wordt dat verouderde of corrupte data de GPU bereikt. Hiermee zouden RetroPie-gebruikers geen crashes meer moeten ervaren tijdens het navigeren door de menu's.
Tot slot hebben we verschillende fixes doorgevoerd voor GPU-resets op de Raspberry Pi 4 en 5, waardoor het resetproces betrouwbaarder en consistenter is geworden.
Futex-tests en documentatie
We werken door aan de verbetering en het onderhoud van futex(), een belangrijke systeemaanroep die door alle soorten workloads wordt gebruikt om synchronisatiemechanismen te creëren. In deze cyclus hebben we geholpen bij het ontwerpen en implementeren van een oplossing voor een 14 jaar oude bug die in bepaalde randgevallen zorgde voor datacorruptie in het robust list-mechanisme.
Algemene bugfixes
We hebben een langdurig probleem in de ueagle-atm-driver opgelost. Dit kon leiden tot een race condition tussen kernfs create en remove-operaties tijdens het proben en disconnecten van apparaten via de request_firmware API, wat in de loop der jaren tot verschillende bugrapporten in syzbot heeft geleid.
Ook hebben we geholpen de correctheid van de inline-assembly implementatie van memcmp() te verbeteren die wordt gebruikt tijdens de x86-boot, om subtiele potentiële bugs door compiler-optimalisatie en instructie-herschikking te voorkomen.
Richting volledige HDMI 2.1-ondersteuning
Een deel van de HDMI 2.1 Fixed Rate Link (FRL) ondersteuning in deze versie is gebaseerd op het werk van Rodrigo Siqueira van Igalia tijdens zijn tijd bij AMD. Dit werk implementeert de initiële ondersteuning waarmee de amdgpu-driver kan communiceren met HDMI 2.1-monitoren (voornamelijk de FRL-implementatie). Deze implementatie bevond zich enkele jaren buiten de hoofdcode voordat deze in de broncode werd opgenomen, waarbij sommige delen vrijwel ongewijzigd zijn gebleven en andere delen gedurende het proces zijn herzien. Bij Igalia hebben we ervaring met diverse DRM/KMS-drivers, en deze praktijkervaring met HDMI 2.1-functies vult de kennis aan die nodig is voor leveranciers om geavanceerde functies in hun eigen drivers te activeren.
Bijdragen
Auteurschap (82)
- André Almeida
- Documentation: futex: Add a note about robust list race condition
- selftests: futex: Add tests for robust release operations
- Changwoo Min
- schedext: Extract scxdumpcpu() from scxdump_state()
- sched_ext: Dump the exit CPU first
- schedext: Expose exitcpu to BPF and userspace
- Helen Koike
- fs/ntfs3: call ntfsbad_inode() when failing to rename
- tipc: fix infinite loop in __tipcnlcompat_dumpit
- John Harrison
- drm/connector/hdmi: Fix out of bounds memory read
- Jose Maria Casanova Crespo
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- Mauricio Faria de Oliveira
- usb: atm: ueagle-atm: use dev_dbg() for ‘device found’ message
- usb: atm: ueagle-atm: remove function entry/exit debug messages
- usb: atm: ueagle-atm: wait for pre-firmware load in .disconnect()
- x86/boot: Add volatile, clobbers and zero-length test in memcmp()
- Maíra Canal
- drm/vc4: Use devmrequestirq() for automatic cleanup
- drm/vc4: Clean-up UAPI header inclusion
- drm/v3d: Use devmresetcontrolgetoptional_exclusive()
- drm/v3d: Allocate all resources before enabling the clock
- drm/v3d: Introduce Runtime Power Management
- drm/connector: Make drmconnectorattachhdroutputmetadataproperty() return void
- drm/v3d: Flush MMU TLB and cache during runtime resume
- drm/v3d: Clean caches before runtime suspend
- drm/v3d: Reject invalid indirect BO handle in indirect CSD setup
- drm/v3d: Reach the GMP through the hub registers on V3D 7.x
- drm/v3d: Idle AXI transactions before disabling the clock on suspend
- drm/vc4: Zero the tile state data array before each BIN job
- drm/v3d: Serialize the scheduler timeout handlers
- Thadeu Lima de Souza Cascardo
- drm/amdgpu: initialize irq.lock spinlock earlier
- Tvrtko Ursulin
- dma-fence: Fix potential tracepoint null pointer dereferences
- drm/sched: Disallow initializing entities with no schedulers
- drm/sched: Consolidate entity run queue management
- drm/sched: Move run queue related code into a separate file
- drm/sched: Add some scheduling quality unit tests
- drm/sched: Add some more scheduling quality unit tests
- drm/sched: Implement RR via FIFO
- drm/sched: Free all finished jobs at once
- drm/sched: Account entity GPU time
- drm/sched: Remove idle entity from tree
- drm/sched: Add fair scheduling policy
- drm/sched: Favour interactive clients slightly
- drm/sched: Switch default policy to fair
- drm/sched: Remove FIFO and RR and simplify to a single run queue
- drm/sched: Embed run queue singleton into the scheduler
- accel/amdxdna: Remove drmschedinitargs->numrqs usage
- accel/rocket: Remove drmschedinitargs->numrqs usage
- accel/ethosu: Remove drmschedinitargs->numrqs usage
- drm/amdgpu: Remove drmschedinitargs->numrqs usage
- drm/etnaviv: Remove drmschedinitargs->numrqs usage
- drm/imagination: Remove drmschedinitargs->numrqs usage
- drm/lima: Remove drmschedinitargs->numrqs usage
- drm/msm: Remove drmschedinitargs->numrqs usage
- drm/nouveau: Remove drmschedinitargs->numrqs usage
- drm/panfrost: Remove drmschedinitargs->numrqs usage
- drm/panthor: Remove drmschedinitargs->numrqs usage
- drm/sched: Remove drmschedinitargs->numrqs usage
- drm/v3d: Remove drmschedinitargs->numrqs usage
- drm/xe: Remove drmschedinitargs->numrqs usage
- drm/sched: Remove drmschedinitargs->numrqs
- drm/xe/xelp: Fix Wa_18022495364
- drm/xe: Use fb cached min alignment
- drm/xe: Assign queue name in time for drmschedinit
- drm/sched: Fix clang build warning in kunit tests
- amd/amdkfd: Fix profiler lock init order
- drm/amdgpu: Fix context pstate override handling
- Revert “drm/sched: Remove drmschedinitargs->numrqs”
- Revert “drm/xe: Remove drmschedinitargs->numrqs usage”
- Revert “drm/v3d: Remove drmschedinitargs->numrqs usage”
- Revert “drm/sched: Remove drmschedinitargs->numrqs usage”
- Revert “drm/panthor: Remove drmschedinitargs->numrqs usage”
- Revert “drm/panfrost: Remove drmschedinitargs->numrqs usage”
- Revert “drm/nouveau: Remove drmschedinitargs->numrqs usage”
- Revert “drm/msm: Remove drmschedinitargs->numrqs usage”
- Revert “drm/lima: Remove drmschedinitargs->numrqs usage”
- Revert “drm/imagination: Remove drmschedinitargs->numrqs usage”
- Revert “drm/etnaviv: Remove drmschedinitargs->numrqs usage”
- Revert “drm/amdgpu: Remove drmschedinitargs->numrqs usage”
- Revert “accel/ethosu: Remove drmschedinitargs->numrqs usage”
- Revert “accel/rocket: Remove drmschedinitargs->numrqs usage”
- Revert “accel/amdxdna: Remove drmschedinitargs->numrqs usage”
- Revert “drm/sched: Embed run queue singleton into the scheduler”
- Revert “drm/sched: Remove FIFO and RR and simplify to a single run queue”
- Revert “drm/sched: Switch default policy to fair”
- drm/sched: Mark fair policy as experimental
Reviewers (74)
- André Almeida
- futex: Move futex task related data into a struct
- futex: Provide UABI defines for robust list entry modifiers
- uaccess: Provide unsafeatomicstorereleaseuser()
- x86: Select ARCHMEMORYORDER_TSO
- futex: Cleanup UAPI defines
- futex: Add support for unlocking robust futexes
- futex: Add robust futex unlock IP range
- futex: Provide infrastructure to plug the non contended robust futex unlock race
- x86/vdso: Prepare for robust futex unlock support
- x86/vdso: Implement __vdsofutexrobusttryunlock()
- mailmap: Update Maíra Canal’s email address
- Changwoo Min
- schedext: Add exttypes.h for early subsystem-wide defs
- schedext: Rename opscpuvalid() to scxcpu_valid() and expose it
- schedext: Move scxexit(), scxerror() and friends to extinternal.h
- schedext: Shift scxkickcpu() validity check to scxbpfkickcpu()
- schedext: Relocate cpuacquire/cpurelease to end of struct schedext_ops
- schedext: Make scxenable() take scxenablecmd
- sched_ext: Add topological CPU IDs (cids)
- schedext: Add scxbpfcidoverride() kfunc
- tools/schedext: Add structsize() helpers to common.bpf.h
- sched_ext: Add cmask, a base-windowed bitmap over cid space
- sched_ext: Add cid-form kfunc wrappers alongside cpu-form
- schedext: Add bpfschedextopscid structops type
- sched_ext: Forbid cpu-form kfuncs from cid-form schedulers
- tools/schedext: scxqmap: Restart on hotplug instead of cpu_online/offline
- tools/schedext: scxqmap: Add cmask-based idle tracking and cid-based idle pick
- tools/schedext: scxqmap: Port to cid-form struct_ops
- schedext: Require cid-form structops for sub-sched support
- Christian Gmeiner
- drm/etnaviv: Remove drmschedinitargs->numrqs usage
- Iago Toral Quiroga
- drm/v3d: Flush MMU TLB and cache during runtime resume
- drm/v3d: Clean caches before runtime suspend
- drm/v3d: Reject invalid indirect BO handle in indirect CSD setup
- drm/v3d: Reach the GMP through the hub registers on V3D 7.x
- drm/v3d: Idle AXI transactions before disabling the clock on suspend
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- drm/vc4: Zero the tile state data array before each BIN job
- drm/v3d: Serialize the scheduler timeout handlers
- Luis Henriques
- fuse: invalidate readdir cache on epoch bump
- fs: preserve ACLDONTCACHE state in forgetcachedacl()
- Maíra Canal
- drm/vc4: Prevent shader BO mappings from becoming writable
- drm/vc4: hvs/v3d: Fix null dereference in unbind
- drm/vc4: Shut down BO cache timer before teardown
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- Melissa Wen
- drm/vc4: Use devmrequestirq() for automatic cleanup
- drm/vc4: Clean-up UAPI header inclusion
- drm/v3d: Use devmresetcontrolgetoptional_exclusive()
- drm/v3d: Allocate all resources before enabling the clock
- drm/v3d: Introduce Runtime Power Management
- drm/connector: Make drmconnectorattachhdroutputmetadataproperty() return void
- drm/amd/display: Delete unimplemented dmppapplypowerlevelchangerequest() (v2)
- drm/amd/display: Delete dcegetrequiredclocksstate()
- drm/amd/display: Remove min/max clock levels from clk_mgr (v2)
- drm/amd/display: Delete maxclocksstate
- drm/amd/display: Set max supported display clock without maxclksby_state (v2)
- drm/amd/display: Delete maxclksby_state from DCE clock manager (v2)
- drm/amd/display: Delete dispclkvoltage from integrated info (v2)
- drm/amd/display: Delete dmppclocks_state
- drm/amd/pm: Delete unused getdisplaypower_level() function
- drm/amd/pm: Delete dummy getdalpower_level implementations
- drm/amd/pm: Delete non-functional SMU8 getdalpower_level implementation
- drm/amd/pm: Delete vddcdepondalpwrl
- drm/amd/pm: Delete getdalpower_level
- drm/amd/pm: Delete PPDALPOWERLEVEL
- drm/amd/display: Fix mem_type change detection for async flips
- drm: Guard DRMCLIENTCAPPLANECOLOR_PIPELINE
- drm/amd/display: Fix NULL pointer dereference in amdgpudmcrtcsetvblank()
- Tvrtko Ursulin
- drm/i915/gem: Drop check for changed VM in EXECBUF
- dma-buf/dmafencearray: remove unused functionality v4
- Revert “i915: don’t use a vma that didn’t match the context VM”
- drm/amdgpu: initialize irq.lock spinlock earlier
- amdgpu/ih6.1: Fix minor version
- drm/amdgpu: Use system unbound workqueue for soft IH ring
- drm/i915/gem: Add missing nospec on parallel submit slot
- drm/xe/guc: Keep scheduler timeline name alive
Acked (13)
- Maíra Canal
- drm: Suppress intentional warning backtraces in scaling unit tests
- Melissa Wen
- drm/v3d: Remove drmschedinitargs->numrqs usage
- Thadeu Lima de Souza Cascardo
- platform/x86: classmate-laptop: Address memory leaks on driver removal
- platform/x86: classmate-laptop: Unify probe rollback and remove code
- platform/x86: classmate-laptop: Pass struct device pointer to helpers
- platform/x86: classmate-laptop: Rename two helper functions
- platform/x86: classmate-laptop: Register ACPI notify handlers directly
- platform/x86: classmate-laptop: Convert v4 accel driver to a platform one
- platform/x86: classmate-laptop: Convert accel driver to a platform one
- platform/x86: classmate-laptop: Convert tablet driver to a platform one
- platform/x86: classmate-laptop: Convert ipml driver to a platform one
- platform/x86: classmate-laptop: Convert keys driver to a platform one
- Tvrtko Ursulin
- Revert “drm/i915: replace select with dependency for visible DEBUG_OBJECTS”
Maintainer SoB (5)
- Christian Gmeiner
- drm/etnaviv: use kzalloc_flex
- Maíra Canal
- drm/vc4: Prevent shader BO mappings from becoming writable
- drm/vc4: hvs/v3d: Fix null dereference in unbind
- drm/vc4: Shut down BO cache timer before teardown
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
Linux 7.2 is uitgebracht
19 augustus 2026
Linux 7.2 is deze week volgens het reguliere schema getagd en uitgebracht.
Deze cyclus was een van de drukste ooit, alleen overtroffen door versie 6.7. Dit wordt beschouwd als de "nieuwe normaal", aangezien de laatste drie of vier cycli erg druk waren, vooral wat betreft fixes. Er zijn deze cyclus enkele interessante prestaties geboekt, zoals cache-aware scheduling, verbeteringen aan MGLRU, het concept van sub-schedulers voor sched_ext (zie de goede introductie over dit onderwerp door LWN), de automatische creatie van multi-size transparent hugepages (eveneens met een goede introductie op LWN) en meer. Voor het volledige overzicht kunnen de LWN-artikelen (deel 1 en deel 2) worden geraadpleegd.
Igalia heeft zoals gebruikelijk een aanzienlijk aandeel geleverd, voornamelijk de DRM scheduler fair policy. Vanwege een regressie die op het laatste moment werd gemeld (zie hieronder), is deze momenteel beschikbaar als opt-in. Daarnaast hebben we zeer handige runtime power management geïmplementeerd voor GPU's in de Raspberry Pi 4 en 5, verbeteringen doorgevoerd in sched_ext en futex, en diverse algemene bugfixes geleverd. Hieronder volgen de hoogtepunten.
Igalia Changelog
DRM-scheduler fair policy
Voor deze releasecyclus was het plan om de DRM scheduler fair policy te implementeren en te activeren. Deze brengt aanzienlijke verbeteringen in scenario's waarin meerdere cliënten de GPU delen, en wanneer een lichte interactieve cliënt concurreert met een veeleisende cliënt. Helaas, door een melding van een regressie tijdens de week van 7.2-rc7, blijft de standaardpolicy de oude first-in/first-out (FIFO) scheduler. Omdat de oplossing voor de regressie van de fair policy al bekend is en vroege tests veelbelovend zijn, hopen we dat deze in een volgende kernel-release opnieuw wordt geactiveerd.
sched_ext
We hebben de observeerbaarheid van schedext verbeterd om het debuggen te vereenvoudigen. Wanneer een aangepaste schedext-scheduler een runtime-fout vertoont – zoals het niet kunnen inplannen van een taak gedurende meer dan 30 seconden – verwijdert de kernel deze en schakelt terug naar de standaard scheduler. Om deze fouten te kunnen diagnosticeren, dumpt de kernel de status van elke CPU. Vooral op systemen met veel cores kunnen deze dumps echter worden afgebroken door bufferlimieten tussen de kernel- en gebruikersruimte. We hebben dit opgelost door de exit CPU (de CPU die de fout veroorzaakte) prioriteit te geven, zodat deze als eerste wordt gedumpt, terwijl de CPU-ID direct zichtbaar wordt gemaakt voor BPF-schedulers en tools in de gebruikersruimte.
Energiebeheer voor Raspberry Pi GPU's en meer
In deze release hebben we ondersteuning toegevoegd voor Runtime Power Management op de GPU's van de Raspberry Pi 4 en 5.
Tot nu toe had de V3D-driver een zeer simpel energiemodel: de GPU-klok werd geactiveerd tijdens het proben en bleef gedurende de gehele levensduur van de driver geactiveerd. Hoewel deze aanpak simpel en functioneel was, betekende dit dat een inactieve GPU nog steeds stroom verbruikte, zelfs als er geen actieve taken werden uitgevoerd. Met Runtime PM wordt de GPU alleen van stroom voorzien wanneer deze daadwerkelijk werk verwerkt, en kan de klok worden uitgeschakeld wanneer de GPU inactief is. Dit vermindert het stroomverbruik wanneer de Raspberry Pi de GPU niet gebruikt. We hebben hier een blogpost over geschreven met meer details en stroommetingen.
daarnaast hebben we twee hardnekkige bugs in de Raspberry Pi 3 GPU-driver opgelost die RetroPie-gebruikers al jaren hinderden en zorgden voor willekeurige GPU-hangs en volledige systeemcrashes. De problemen bleken te liggen bij de manier waarop de kernel omging met tile memory wanneer de GPU geen ruimte meer had tijdens het verwerken van een frame. Onze fixes zorgen ervoor dat elke grafische taak alleen naar zijn eigen geheugengebied schrijft en dat hergebruikt geheugen correct wordt gewist voordat het opnieuw wordt gebruikt, waardoor voorkomen wordt dat verouderde of corrupte data de GPU bereikt. Hiermee zouden RetroPie-gebruikers geen crashes meer moeten ervaren tijdens het navigeren door de menu's.
Tot slot hebben we verschillende fixes doorgevoerd voor GPU-resets op de Raspberry Pi 4 en 5, waardoor het resetproces betrouwbaarder en consistenter is geworden.
Futex-tests en documentatie
We werken door aan de verbetering en het onderhoud van futex(), een belangrijke systeemaanroep die door alle soorten workloads wordt gebruikt om synchronisatiemechanismen te creëren. In deze cyclus hebben we geholpen bij het ontwerpen en implementeren van een oplossing voor een 14 jaar oude bug die in bepaalde randgevallen zorgde voor datacorruptie in het robust list-mechanisme.
Algemene bugfixes
We hebben een langdurig probleem in de ueagle-atm-driver opgelost. Dit kon leiden tot een race condition tussen kernfs create en remove-operaties tijdens het proben en disconnecten van apparaten via de request_firmware API, wat in de loop der jaren tot verschillende bugrapporten in syzbot heeft geleid.
Ook hebben we geholpen de correctheid van de inline-assembly implementatie van memcmp() te verbeteren die wordt gebruikt tijdens de x86-boot, om subtiele potentiële bugs door compiler-optimalisatie en instructie-herschikking te voorkomen.
Richting volledige HDMI 2.1-ondersteuning
Een deel van de HDMI 2.1 Fixed Rate Link (FRL) ondersteuning in deze versie is gebaseerd op het werk van Rodrigo Siqueira van Igalia tijdens zijn tijd bij AMD. Dit werk implementeert de initiële ondersteuning waarmee de amdgpu-driver kan communiceren met HDMI 2.1-monitoren (voornamelijk de FRL-implementatie). Deze implementatie bevond zich enkele jaren buiten de hoofdcode voordat deze in de broncode werd opgenomen, waarbij sommige delen vrijwel ongewijzigd zijn gebleven en andere delen gedurende het proces zijn herzien. Bij Igalia hebben we ervaring met diverse DRM/KMS-drivers, en deze praktijkervaring met HDMI 2.1-functies vult de kennis aan die nodig is voor leveranciers om geavanceerde functies in hun eigen drivers te activeren.
Bijdragen
Auteurschap (82)
- André Almeida
- Documentation: futex: Add a note about robust list race condition
- selftests: futex: Add tests for robust release operations
- Changwoo Min
- schedext: Extract scxdumpcpu() from scxdump_state()
- sched_ext: Dump the exit CPU first
- schedext: Expose exitcpu to BPF and userspace
- Helen Koike
- fs/ntfs3: call ntfsbad_inode() when failing to rename
- tipc: fix infinite loop in __tipcnlcompat_dumpit
- John Harrison
- drm/connector/hdmi: Fix out of bounds memory read
- Jose Maria Casanova Crespo
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- Mauricio Faria de Oliveira
- usb: atm: ueagle-atm: use dev_dbg() for ‘device found’ message
- usb: atm: ueagle-atm: remove function entry/exit debug messages
- usb: atm: ueagle-atm: wait for pre-firmware load in .disconnect()
- x86/boot: Add volatile, clobbers and zero-length test in memcmp()
- Maíra Canal
- drm/vc4: Use devmrequestirq() for automatic cleanup
- drm/vc4: Clean-up UAPI header inclusion
- drm/v3d: Use devmresetcontrolgetoptional_exclusive()
- drm/v3d: Allocate all resources before enabling the clock
- drm/v3d: Introduce Runtime Power Management
- drm/connector: Make drmconnectorattachhdroutputmetadataproperty() return void
- drm/v3d: Flush MMU TLB and cache during runtime resume
- drm/v3d: Clean caches before runtime suspend
- drm/v3d: Reject invalid indirect BO handle in indirect CSD setup
- drm/v3d: Reach the GMP through the hub registers on V3D 7.x
- drm/v3d: Idle AXI transactions before disabling the clock on suspend
- drm/vc4: Zero the tile state data array before each BIN job
- drm/v3d: Serialize the scheduler timeout handlers
- Thadeu Lima de Souza Cascardo
- drm/amdgpu: initialize irq.lock spinlock earlier
- Tvrtko Ursulin
- dma-fence: Fix potential tracepoint null pointer dereferences
- drm/sched: Disallow initializing entities with no schedulers
- drm/sched: Consolidate entity run queue management
- drm/sched: Move run queue related code into a separate file
- drm/sched: Add some scheduling quality unit tests
- drm/sched: Add some more scheduling quality unit tests
- drm/sched: Implement RR via FIFO
- drm/sched: Free all finished jobs at once
- drm/sched: Account entity GPU time
- drm/sched: Remove idle entity from tree
- drm/sched: Add fair scheduling policy
- drm/sched: Favour interactive clients slightly
- drm/sched: Switch default policy to fair
- drm/sched: Remove FIFO and RR and simplify to a single run queue
- drm/sched: Embed run queue singleton into the scheduler
- accel/amdxdna: Remove drmschedinitargs->numrqs usage
- accel/rocket: Remove drmschedinitargs->numrqs usage
- accel/ethosu: Remove drmschedinitargs->numrqs usage
- drm/amdgpu: Remove drmschedinitargs->numrqs usage
- drm/etnaviv: Remove drmschedinitargs->numrqs usage
- drm/imagination: Remove drmschedinitargs->numrqs usage
- drm/lima: Remove drmschedinitargs->numrqs usage
- drm/msm: Remove drmschedinitargs->numrqs usage
- drm/nouveau: Remove drmschedinitargs->numrqs usage
- drm/panfrost: Remove drmschedinitargs->numrqs usage
- drm/panthor: Remove drmschedinitargs->numrqs usage
- drm/sched: Remove drmschedinitargs->numrqs usage
- drm/v3d: Remove drmschedinitargs->numrqs usage
- drm/xe: Remove drmschedinitargs->numrqs usage
- drm/sched: Remove drmschedinitargs->numrqs
- drm/xe/xelp: Fix Wa_18022495364
- drm/xe: Use fb cached min alignment
- drm/xe: Assign queue name in time for drmschedinit
- drm/sched: Fix clang build warning in kunit tests
- amd/amdkfd: Fix profiler lock init order
- drm/amdgpu: Fix context pstate override handling
- Revert “drm/sched: Remove drmschedinitargs->numrqs”
- Revert “drm/xe: Remove drmschedinitargs->numrqs usage”
- Revert “drm/v3d: Remove drmschedinitargs->numrqs usage”
- Revert “drm/sched: Remove drmschedinitargs->numrqs usage”
- Revert “drm/panthor: Remove drmschedinitargs->numrqs usage”
- Revert “drm/panfrost: Remove drmschedinitargs->numrqs usage”
- Revert “drm/nouveau: Remove drmschedinitargs->numrqs usage”
- Revert “drm/msm: Remove drmschedinitargs->numrqs usage”
- Revert “drm/lima: Remove drmschedinitargs->numrqs usage”
- Revert “drm/imagination: Remove drmschedinitargs->numrqs usage”
- Revert “drm/etnaviv: Remove drmschedinitargs->numrqs usage”
- Revert “drm/amdgpu: Remove drmschedinitargs->numrqs usage”
- Revert “accel/ethosu: Remove drmschedinitargs->numrqs usage”
- Revert “accel/rocket: Remove drmschedinitargs->numrqs usage”
- Revert “accel/amdxdna: Remove drmschedinitargs->numrqs usage”
- Revert “drm/sched: Embed run queue singleton into the scheduler”
- Revert “drm/sched: Remove FIFO and RR and simplify to a single run queue”
- Revert “drm/sched: Switch default policy to fair”
- drm/sched: Mark fair policy as experimental
Reviewers (74)
- André Almeida
- futex: Move futex task related data into a struct
- futex: Provide UABI defines for robust list entry modifiers
- uaccess: Provide unsafeatomicstorereleaseuser()
- x86: Select ARCHMEMORYORDER_TSO
- futex: Cleanup UAPI defines
- futex: Add support for unlocking robust futexes
- futex: Add robust futex unlock IP range
- futex: Provide infrastructure to plug the non contended robust futex unlock race
- x86/vdso: Prepare for robust futex unlock support
- x86/vdso: Implement __vdsofutexrobusttryunlock()
- mailmap: Update Maíra Canal’s email address
- Changwoo Min
- schedext: Add exttypes.h for early subsystem-wide defs
- schedext: Rename opscpuvalid() to scxcpu_valid() and expose it
- schedext: Move scxexit(), scxerror() and friends to extinternal.h
- schedext: Shift scxkickcpu() validity check to scxbpfkickcpu()
- schedext: Relocate cpuacquire/cpurelease to end of struct schedext_ops
- schedext: Make scxenable() take scxenablecmd
- sched_ext: Add topological CPU IDs (cids)
- schedext: Add scxbpfcidoverride() kfunc
- tools/schedext: Add structsize() helpers to common.bpf.h
- sched_ext: Add cmask, a base-windowed bitmap over cid space
- sched_ext: Add cid-form kfunc wrappers alongside cpu-form
- schedext: Add bpfschedextopscid structops type
- sched_ext: Forbid cpu-form kfuncs from cid-form schedulers
- tools/schedext: scxqmap: Restart on hotplug instead of cpu_online/offline
- tools/schedext: scxqmap: Add cmask-based idle tracking and cid-based idle pick
- tools/schedext: scxqmap: Port to cid-form struct_ops
- schedext: Require cid-form structops for sub-sched support
- Christian Gmeiner
- drm/etnaviv: Remove drmschedinitargs->numrqs usage
- Iago Toral Quiroga
- drm/v3d: Flush MMU TLB and cache during runtime resume
- drm/v3d: Clean caches before runtime suspend
- drm/v3d: Reject invalid indirect BO handle in indirect CSD setup
- drm/v3d: Reach the GMP through the hub registers on V3D 7.x
- drm/v3d: Idle AXI transactions before disabling the clock on suspend
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- drm/vc4: Zero the tile state data array before each BIN job
- drm/v3d: Serialize the scheduler timeout handlers
- Luis Henriques
- fuse: invalidate readdir cache on epoch bump
- fs: preserve ACLDONTCACHE state in forgetcachedacl()
- Maíra Canal
- drm/vc4: Prevent shader BO mappings from becoming writable
- drm/vc4: hvs/v3d: Fix null dereference in unbind
- drm/vc4: Shut down BO cache timer before teardown
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
- Melissa Wen
- drm/vc4: Use devmrequestirq() for automatic cleanup
- drm/vc4: Clean-up UAPI header inclusion
- drm/v3d: Use devmresetcontrolgetoptional_exclusive()
- drm/v3d: Allocate all resources before enabling the clock
- drm/v3d: Introduce Runtime Power Management
- drm/connector: Make drmconnectorattachhdroutputmetadataproperty() return void
- drm/amd/display: Delete unimplemented dmppapplypowerlevelchangerequest() (v2)
- drm/amd/display: Delete dcegetrequiredclocksstate()
- drm/amd/display: Remove min/max clock levels from clk_mgr (v2)
- drm/amd/display: Delete maxclocksstate
- drm/amd/display: Set max supported display clock without maxclksby_state (v2)
- drm/amd/display: Delete maxclksby_state from DCE clock manager (v2)
- drm/amd/display: Delete dispclkvoltage from integrated info (v2)
- drm/amd/display: Delete dmppclocks_state
- drm/amd/pm: Delete unused getdisplaypower_level() function
- drm/amd/pm: Delete dummy getdalpower_level implementations
- drm/amd/pm: Delete non-functional SMU8 getdalpower_level implementation
- drm/amd/pm: Delete vddcdepondalpwrl
- drm/amd/pm: Delete getdalpower_level
- drm/amd/pm: Delete PPDALPOWERLEVEL
- drm/amd/display: Fix mem_type change detection for async flips
- drm: Guard DRMCLIENTCAPPLANECOLOR_PIPELINE
- drm/amd/display: Fix NULL pointer dereference in amdgpudmcrtcsetvblank()
- Tvrtko Ursulin
- drm/i915/gem: Drop check for changed VM in EXECBUF
- dma-buf/dmafencearray: remove unused functionality v4
- Revert “i915: don’t use a vma that didn’t match the context VM”
- drm/amdgpu: initialize irq.lock spinlock earlier
- amdgpu/ih6.1: Fix minor version
- drm/amdgpu: Use system unbound workqueue for soft IH ring
- drm/i915/gem: Add missing nospec on parallel submit slot
- drm/xe/guc: Keep scheduler timeline name alive
Acked (13)
- Maíra Canal
- drm: Suppress intentional warning backtraces in scaling unit tests
- Melissa Wen
- drm/v3d: Remove drmschedinitargs->numrqs usage
- Thadeu Lima de Souza Cascardo
- platform/x86: classmate-laptop: Address memory leaks on driver removal
- platform/x86: classmate-laptop: Unify probe rollback and remove code
- platform/x86: classmate-laptop: Pass struct device pointer to helpers
- platform/x86: classmate-laptop: Rename two helper functions
- platform/x86: classmate-laptop: Register ACPI notify handlers directly
- platform/x86: classmate-laptop: Convert v4 accel driver to a platform one
- platform/x86: classmate-laptop: Convert accel driver to a platform one
- platform/x86: classmate-laptop: Convert tablet driver to a platform one
- platform/x86: classmate-laptop: Convert ipml driver to a platform one
- platform/x86: classmate-laptop: Convert keys driver to a platform one
- Tvrtko Ursulin
- Revert “drm/i915: replace select with dependency for visible DEBUG_OBJECTS”
Maintainer SoB (5)
- Christian Gmeiner
- drm/etnaviv: use kzalloc_flex
- Maíra Canal
- drm/vc4: Prevent shader BO mappings from becoming writable
- drm/vc4: hvs/v3d: Fix null dereference in unbind
- drm/vc4: Shut down BO cache timer before teardown
- drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size