<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="https://www.igalia.com/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.igalia.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.igalia.com/" rel="alternate" type="text/html" /><updated>2026-09-07T00:18:01+00:00</updated><id>https://www.igalia.com/feed.xml</id><title type="html">Igalia</title><subtitle>Igalia is an open source consulting firm specialised in the development of innovative projects and solutions. Our engineers have expertise in a wide range of technological areas, including browsers and client-side web technologies, graphics pipeline, compilers and virtual machines. We have the most WPE, WebKit, Chromium/Blink and Firefox expertise found in the consulting business, including many reviewers and committers. Igalia designs, develops, customises and optimises GNU/Linux-based solutions for companies across the globe. Our work and contributions are present in many projects such as GStreamer, Mesa 3D, WebKit, Chromium, etc.</subtitle><author><name>Igalia</name></author><entry><title type="html">Call for Proposals: Interop 2027</title><link href="https://www.igalia.com/news/interop-2027-cfp.html" rel="alternate" type="text/html" title="Call for Proposals: Interop 2027" /><published>2026-09-03T00:00:00+00:00</published><updated>2026-09-03T00:00:00+00:00</updated><id>https://www.igalia.com/news/Call-for-Proposals-Interop-2027</id><content type="html" xml:base="https://www.igalia.com/news/interop-2027-cfp.html"><![CDATA[<p>Today marks the launch of the seventh annual <a href="https://github.com/web-platform-tests/interop">Interop project</a>! Each year, the process begins with a call for proposals, asking the larger web development community what features they want to see included in the next year’s Interop project. For 2027, that call begins today and lasts through September 23, 2026, and the submission form is open to one and all. For insight into how proposals will ultimately be chosen, see the <a href="https://github.com/web-platform-tests/interop/blob/main/2027/selection-process.md">Interop 2027 proposal selection process</a>.</p>

<p>If <a href="https://www.igalia.com/chats/interopify">the past is any guide</a>, there will be many more proposals than the group can accept. By the same token, we’ll doubtless see vast interoperability improvements for the chosen proposals. You can see this by looking at the score trends for <a href="https://wpt.fyi/interop-2025">2025</a> (from 29% to 97%) and even the current status for <a href="https://wpt.fyi/interop-2026">2026</a> (from 39% to 89% as of late August).</p>

<p>So if you have a standards-based web feature you’d really like browsers to align on fully supporting, <a href="https://github.com/web-platform-tests/interop/issues/new/choose">submit a proposal</a>! And even if you don’t, you can still help by liking and commenting on the submissions of others. To widen the scope even further, please boost the signal through public discussions on social media, blogs, and everywhere else.</p>

<p>Forward to a more interoperable web!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="compilers" /><summary type="html"><![CDATA[Today marks the launch of the seventh annual Interop project! Each year, the process begins with a call for proposals, asking the larger web development community what features they want to see included in the next year’s Interop project. For 2027, that call begins today and lasts through September 23, 2026, and the submission form is open to one and all. For insight into how proposals will ultimately be chosen, see the Interop 2027 proposal selection process. If the past is any guide, there will be many more proposals than the group can accept. By the same token, we’ll doubtless see vast interoperability improvements for the chosen proposals. You can see this by looking at the score trends for 2025 (from 29% to 97%) and even the current status for 2026 (from 39% to 89% as of late August). So if you have a standards-based web feature you’d really like browsers to align on fully supporting, submit a proposal! And even if you don’t, you can still help by liking and commenting on the submissions of others. To widen the scope even further, please boost the signal through public discussions on social media, blogs, and everywhere else. Forward to a more interoperable web!]]></summary></entry><entry><title type="html">Linux 7.2 Released</title><link href="https://www.igalia.com/2026/08/19/Linux-72-Released.html" rel="alternate" type="text/html" title="Linux 7.2 Released" /><published>2026-08-19T00:00:00+00:00</published><updated>2026-08-19T00:00:00+00:00</updated><id>https://www.igalia.com/2026/08/19/Linux-72-Released</id><content type="html" xml:base="https://www.igalia.com/2026/08/19/Linux-72-Released.html"><![CDATA[<h1 id="linux-72-released">Linux 7.2 Released</h1>

<p>Linux 7.2 <a href="https://lore.kernel.org/r/CAHk-=wjk5StpAmUKHacj=GPKwA88y_YRHK=i_YAJFgmxn1=k4w@mail.gmail.com/">was tagged and released</a> this week, on the regular schedule.</p>

<p>This cycle was one of the busiest ever, only been beaten by 6.7. This is considered the “new normal”, given that the last 3 or 4 cycles had been pretty busy, especially regarding fixes. There’s some interesting achievements this cycle, like <a href="https://lwn.net/Articles/1018334/">cache-aware scheduling</a>, improvements on MGLRU, the concept of sub-schedulers for sched_ext (a good introduction on the topic by <a href="https://lwn.net/Articles/1056014/">LWN</a>), automatic creation of multi-size transparent hugepages (also a good intro on <a href="https://lwn.net/Articles/1077208/">LWN</a> ) and more - check the LWN articles (<a href="https://lwn.net/Articles/1078068/">part 1</a> and <a href="https://lwn.net/Articles/1078539/">part 2</a>) for the full picture.</p>

<p>Igalia as usual had a good share of contributions, mainly the DRM scheduler fair policy, which had a regression reported at the 11th hour (see below), hence is present as opt-in. Other than that, we landed very nifty runtime power management for GPUs in the Raspberry Pi 4 and 5, improvements in sched_ext, futex, and general bugfixing.  Let’s review the highlights!</p>

<h2 id="igalia-changelog">Igalia Changelog</h2>

<h3 id="drm-scheduler-fair-policy">DRM scheduler fair policy</h3>

<p>For this release cycle we planned to land and enable the DRM scheduler fair policy which brings significant improvements in scenarios where multiple clients are sharing the GPU, and also when a light interactive client competes for the GPU with a demanding one. Unfortunately, due a last-minute regression report during the 7.2-rc7 week, the default policy will remain the old first-in/first-out (FIFO) scheduler. As the fix for the fair policy regression is already known and early testing looks promising, we are hopeful it will get re-enabled in a next kernel release.</p>

<h3 id="sched_ext">sched_ext</h3>

<p>We improved sched-ext observability to simplify debugging. When a custom sched-ext scheduler hits a runtime error – such as failing to schedule a task for over 30 seconds – the kernel ejects it and reverts to the default scheduler. To help diagnose these failures, the kernel dumps the status of each CPU. However, especially on high-core systems, these dumps can be truncated due to buffer size limits between kernel space and user space. We mitigated this by prioritizing the exit CPU (the CPU that triggered the error) so it is dumped first, while also surfacing its CPU ID directly to BPF schedulers and userspace tools.</p>

<h3 id="power-management-to-raspberry-pi-gpus-and-more">Power Management to Raspberry Pi GPUs and more</h3>

<p>In this release, we landed support for Runtime Power Management on the Raspberry Pi 4 and 5 GPUs.</p>

<p>Until now, the V3D driver had a very simple power model: the GPU clock was enabled during probe and remained enabled for the entire lifetime of the driver. Although this approach was simple and functional, it meant that an idle GPU would still consume power even when it was not actively executing jobs.</p>

<p>With Runtime PM, the GPU is powered only when it is actually processing work, and its clock can be disabled while the GPU is idle. This reduces power consumption when the Raspberry Pi is not using the GPU. We wrote a <a href="https://mairacanal.github.io/bringing-runtime-pm-to-raspberry-pi-gpu/">blog post</a> about this feature with more details and some power measurements.</p>

<p>We also fixed two long-standing bugs in the Raspberry Pi 3 GPU driver that had been affecting RetroPie users for years, causing random GPU hangs and complete system crashes. The problems were traced to how the kernel handled tile memory when the GPU ran out of space while processing a frame. Our fixes ensure that each graphics job only writes to its own memory area and that reused memory is properly cleared before being used again, preventing stale or corrupted data from reaching the GPU. With these fixes, RetroPie users should no longer experience the crashes that could occur while navigating the menus.</p>

<p>Finally, we landed several fixes for GPU resets on Raspberry Pi 4 and 5, making the reset process more reliable and consistent.</p>

<h3 id="futex-tests-and-documentation">Futex tests and documentation</h3>

<p>We continue to work to improve and maintain <code class="language-plaintext highlighter-rouge">futex()</code>, an important system call used by all types of workloads to create synchronization mechanisms. In this cycle, we helped to design and land a solution for a <a href="https://lore.kernel.org/r/20260316162316.356674433@kernel.org/">14 year old bug</a> that has been affecting the robust list mechanism with data corruption in some edge cases.</p>

<h3 id="general-bugfixing">General bugfixing</h3>

<p>We have fixed a long-standing issue in the <code class="language-plaintext highlighter-rouge">ueagle-atm</code> driver, which could hit a race condition between <code class="language-plaintext highlighter-rouge">kernfs</code> create and remove operations during device probe and disconnect, through the <a href="https://docs.kernel.org/driver-api/firmware/request_firmware.html"><code class="language-plaintext highlighter-rouge">request_firmware</code> API</a>, and generated several bug reports in syzbot over the years.</p>

<p>We helped to improve the correctness of the inline-assembly implementation of <code class="language-plaintext highlighter-rouge">memcmp()</code> used during x86 boot, preventing subtle potential bugs due to compiler optimization and instruction reordering.</p>

<h3 id="towards-full-hdmi-21-support">Towards full HDMI 2.1 support</h3>

<p>Part of the HDMI 2.1 Fixed Rate Link (FRL) support released in this version dates back to the work of Rodrigo Siqueira from Igalia during his time at AMD. This work implements the initial support that allows the amdgpu driver to communicate with HDMI 2.1 monitors (primarily the FRL implementation). This implementation was outside the main code for several years before being incorporated into the source code, with some parts kept virtually as originally written and others reworked throughout the process. At Igalia, we have experience with various DRM/KMS drivers, and this hands-on experience with HDMI 2.1 features complements the knowledge necessary for vendors to enable cutting-edge features to their own drivers.</p>

<hr />

<h2 id="authored-82">Authored (82)</h2>
<h3 id="andré-almeida">André Almeida</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f63e2545978abda58f2cf7ff0d7a2942965e8cb">Documentation: futex: Add a note about robust list race condition</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=608323bf7bb85bbb647eca4373acef247f105e67">selftests: futex: Add tests for robust release operations</a></li>
</ul>

<h3 id="changwoo-min">Changwoo Min</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f63ddda0b969410585757309cc95add4f256f45">sched_ext: Extract scx_dump_cpu() from scx_dump_state()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=78683079ca6d91392e84ed313e15bb330d7da851">sched_ext: Dump the exit CPU first</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee8391ba11644fd3dce6e22ece54725a1bb5b50e">sched_ext: Expose exit_cpu to BPF and userspace</a></li>
</ul>

<h3 id="helen-koike">Helen Koike</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e8ed78f40eecd0176fda71d673f6957c98e7ffbe">fs/ntfs3: call _ntfs_bad_inode() when failing to rename</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=22f8aa35964e8f2ab026578f45befc9605fd1b28">tipc: fix infinite loop in __tipc_nl_compat_dumpit</a></li>
</ul>

<h3 id="john-harrison">John Harrison</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9ecf8ba763d0ffe0673538eb4bf7806f20455d19">drm/connector/hdmi: Fix out of bounds memory read</a></li>
</ul>

<h3 id="jose-maria-casanova-crespo">Jose Maria Casanova Crespo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6395789e4739aa5177bbec0fa0f07ccc38d249b0">drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size</a></li>
</ul>

<h3 id="mauricio-faria-de-oliveira">Mauricio Faria de Oliveira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05c5075c3115010f97434c53d353d9a0d4b0e64e">usb: atm: ueagle-atm: use dev_dbg() for ‘device found’ message</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1414b2242c2e9d670c4d8b83480f13db57627ba9">usb: atm: ueagle-atm: remove function entry/exit debug messages</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e2674dfbed8a30d57e2bc872c4bfa6c3eec918bf">usb: atm: ueagle-atm: wait for pre-firmware load in .disconnect()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8c171c107c0b61a5e7e10cedab0fb72aeaf640d">x86/boot: Add volatile, clobbers and zero-length test in memcmp()</a></li>
</ul>

<h3 id="maíra-canal">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=19e2815babd4c51a51ebabfe68daa90eb26309c3">drm/vc4: Use devm_request_irq() for automatic cleanup</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4b9c36c83b34f710da9573291404f6a2246251c1">drm/vc4: Clean-up UAPI header inclusion</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=de1e32ef1d625ee4d717bcf10c23df2722324f62">drm/v3d: Use devm_reset_control_get_optional_exclusive()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffd7371ed4179827dcf401543b37b69e5781f924">drm/v3d: Allocate all resources before enabling the clock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=458f2a712ab42b7d3615208862922dc35fe90ef9">drm/v3d: Introduce Runtime Power Management</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efcd474ed273ae7da614b30e798651c6d57d3109">drm/connector: Make drm_connector_attach_hdr_output_metadata_property() return void</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=257adf5ea64901263071a4a8e6ff958c5e0712c1">drm/v3d: Flush MMU TLB and cache during runtime resume</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b81e8b02e8f26b13ff4d6410f7a9854ba7021b86">drm/v3d: Clean caches before runtime suspend</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f8b8593c7832fad655290cef9e99af05b1b52b3">drm/v3d: Reject invalid indirect BO handle in indirect CSD setup</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7df2da0d1c375c1c4c70e1e0b569592de0d6b73">drm/v3d: Reach the GMP through the hub registers on V3D 7.x</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=07e769ba3d82ac614725c81c512a8b54d33f2c9e">drm/v3d: Idle AXI transactions before disabling the clock on suspend</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=48a570c964d8e37d353381e4195106277e17f5cb">drm/vc4: Zero the tile state data array before each BIN job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4da94744707b27a3ae1197bdd7127da4505dc5b1">drm/v3d: Serialize the scheduler timeout handlers</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2b270c0ecf6d95bcd14ef4c20d0301a88143ff5">drm/amdgpu: initialize irq.lock spinlock earlier</a></li>
</ul>

<h3 id="tvrtko-ursulin">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e94b9f01543cc6a83538c2c2cc645a424d3015ca">dma-fence: Fix potential tracepoint null pointer dereferences</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=28c5bf28763d670290e29dc42def04e9c1b3ad14">drm/sched: Disallow initializing entities with no schedulers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e0a39407f72158fc79705d0bd1446d6d312bde5">drm/sched: Consolidate entity run queue management</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4eadf3fe47602706f7b85bdf05ef60ddad8de0c2">drm/sched: Move run queue related code into a separate file</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=97ef806a53146837f6ca84a1b36763fb3bb67eaa">drm/sched: Add some scheduling quality unit tests</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=df5ff8b62a47bb6a378c81ce8aff267f6e5c9e3f">drm/sched: Add some more scheduling quality unit tests</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=94e18404007d3d4c3438ca31d1430a7cf562bd59">drm/sched: Implement RR via FIFO</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a58f317c1ca06d213f49612730206ff90eeaacd8">drm/sched: Free all finished jobs at once</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fd177135f0e62344f5d0ad3b12d40f8f7e5cdaab">drm/sched: Account entity GPU time</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8637ddeeb4bbd48dafa1be316d8296e8d49e7521">drm/sched: Remove idle entity from tree</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2fa4d8e2c1091189064c5b93222a23ded2d881ba">drm/sched: Add fair scheduling policy</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=af85fa14ad7c4adf4276c65bb640843c6d210927">drm/sched: Favour interactive clients slightly</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45c211ddf92a1f9b4214ffadaf70d9037f53aaf6">drm/sched: Switch default policy to fair</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77a6809f1dc39376116f8d769a0d2630dc95ad79">drm/sched: Remove FIFO and RR and simplify to a single run queue</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=16e7698bc04d3dd19d95a688e4b0297a0e28a93b">drm/sched: Embed run queue singleton into the scheduler</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ac58121339db0178186d256a956bb65feb8b6e45">accel/amdxdna: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f335bba019958e59c2a02c4d71b72a8457cc595">accel/rocket: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=06879a9ad55bc4a7aa2e1bb7ee9fa658cdddee79">accel/ethosu: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2462a0ce23b0ba1c2195beccf39bc8608cdbd84e">drm/amdgpu: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adfb5deba567045d74bfd75482b8d4f89d073004">drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f84d73d2a08498174d950ba5935930dd94df7d3c">drm/imagination: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=098fe077ec029a1c8ded65af3c2b2a4190d93e9d">drm/lima: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9c44ff055965f2f75eee2ac95a7692600cf026a8">drm/msm: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=79005e34bdcbb4a0b7f512bc32981fb60041767b">drm/nouveau: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=285eab7f55ae3d961bfa4e759c3d2d0033e72294">drm/panfrost: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=30c4a19cf71f040462254dcb8b2d3c3e7232b99b">drm/panthor: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2833a0512b4cd55d9fea7ec18be85ef82e69ad3b">drm/sched: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1bf9381fc62f3c4e26a2caedb8317046383a559">drm/v3d: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ca491d6ccf2daea813e67ed4b42e7b272f0687d">drm/xe: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d09339388b778f04dd9e638befa2594c9cb4290b">drm/sched: Remove drm_sched_init_args-&gt;num_rqs</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5627392001802a98ed6cf8cf79a303abd00d1c0f">drm/xe/xelp: Fix Wa_18022495364</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=53bfcc08aff9a6d6354b0306d3060ac9507133ad">drm/xe: Use fb cached min alignment</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24f60b8e9f44b10614b43dbc4ba4b029f8ede3b6">drm/xe: Assign queue name in time for drm_sched_init</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f412fe573b3c78fdcf351e282a3c488bb073846b">drm/sched: Fix clang build warning in kunit tests</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cd0e76a2f60e158534fddd0052e0ea8a6d50f247">amd/amdkfd: Fix profiler lock init order</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351">drm/amdgpu: Fix context pstate override handling</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6853da8cdb6676d8b173fac15094490dff419ac5">Revert “drm/sched: Remove drm_sched_init_args-&gt;num_rqs”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=482025714dba7c0d51356aa12e37246682b54375">Revert “drm/xe: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6ef022fbe26d59378e229c4eb296411bccbb7ae2">Revert “drm/v3d: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c41282f9ca22e240b1d01f9e06c328a3ac7ef30a">Revert “drm/sched: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=09e6a5d433ef9b5da1267c81f2f394ece64a7c56">Revert “drm/panthor: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c9126bf8fcb53462a66ec10183cad038fa26f5e9">Revert “drm/panfrost: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5b07bcb10343ab2e6f25943d19a2ab511dff1982">Revert “drm/nouveau: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2683a0e7c4ccd5fcbf8926573045f4f586ec5fd5">Revert “drm/msm: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b9f3f3f00bc8c4c53d46d420bf8646fe741622ab">Revert “drm/lima: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6c7b7e512058d54a461bbd38dc3f0db897503a9c">Revert “drm/imagination: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ce955c5339187a218f343e12e7d7e5dd46b105d">Revert “drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4788c25fcd6bb1731d3d7a81424eb92c43db5f19">Revert “drm/amdgpu: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5b15e57045562bb6dd4f69116b14f96cb195cd4">Revert “accel/ethosu: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05463d54efd770e4146dd7558e5227fe42ec8170">Revert “accel/rocket: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aa82a25302570ec1a4ce331c43967addc4e091eb">Revert “accel/amdxdna: Remove drm_sched_init_args-&gt;num_rqs usage”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=67cf83ac8316ab6a866cbafc449069409b11f923">Revert “drm/sched: Embed run queue singleton into the scheduler”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9e9da8625427a80e1246f2df0f3ac18374045892">Revert “drm/sched: Remove FIFO and RR and simplify to a single run queue”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bbea6b819be0a9e8c450375f39a542088f510eb">Revert “drm/sched: Switch default policy to fair”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9a11db68872055e6ead919bad04d6330851c522d">drm/sched: Mark fair policy as experimental</a></li>
</ul>

<h2 id="reviewed-74">Reviewed (74)</h2>
<h3 id="andré-almeida-1">André Almeida</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c1ffc9c6e4f8a13dd68e97920c9a24d095c6e41a">futex: Move futex task related data into a struct</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2cb5251d3d64d57c172185b9b608f704b3015f26">futex: Provide UABI defines for robust list entry modifiers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6149fc36c09b91050b62e8e68a91027df8df7345">uaccess: Provide unsafe_atomic_store_release_user()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b125c44d0b7f617ee81dffd14ce116149d03cb6">x86: Select ARCH_MEMORY_ORDER_TSO</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1fd053d26f0333485cdbaa9d6e7b8cb53f54de95">futex: Cleanup UAPI defines</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ca9595d9fb6cce6633a5b03d98c2aecb5499838">futex: Add support for unlocking robust futexes</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=042df0c1d48609a85580dcbaff498c95ced20a5f">futex: Add robust futex unlock IP range</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7010c39d8fc5063af69ee63f905e592e046f8e5d">futex: Provide infrastructure to plug the non contended robust futex unlock race</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=61cfc8e372d1971e0a96d3f1f8b5ee29916b3385">x86/vdso: Prepare for robust futex unlock support</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2274cc0091ed4fdce10fad68d08c529b8d3e7dd">x86/vdso: Implement __vdso_futex_robust_try_unlock()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a6004c230a7931569666a235e99d443b2319b66">mailmap: Update Maíra Canal’s email address</a></li>
</ul>

<h3 id="changwoo-min-1">Changwoo Min</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0e781a7853785989553f8a4e658145623ef695ac">sched_ext: Add ext_types.h for early subsystem-wide defs</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=93292808b24355126620d814fff7cc076f262855">sched_ext: Rename ops_cpu_valid() to scx_cpu_valid() and expose it</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f19c089cc4da60c6084fd5f92f13637c20f92ad">sched_ext: Move scx_exit(), scx_error() and friends to ext_internal.h</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=017ec7d5fe178acbd3c9488843b800d3a32be295">sched_ext: Shift scx_kick_cpu() validity check to scx_bpf_kick_cpu()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1e315c44aa91b4475e445d007151c13429ce7bce">sched_ext: Relocate cpu_acquire/cpu_release to end of struct sched_ext_ops</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c97ce728bcc43adcc861375f48433ac7adfd4e2e">sched_ext: Make scx_enable() take scx_enable_cmd</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9b55af47edf6e60c9a47b5604c3e15c5162ec86">sched_ext: Add topological CPU IDs (cids)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=df7b5ae038d6f2707ec0f81c257a55b4062f77c7">sched_ext: Add scx_bpf_cid_override() kfunc</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=32a54807c9a56a161f29f6640f9f4ef88380398c">tools/sched_ext: Add struct_size() helpers to common.bpf.h</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a58e6b79b432f2f08e6a2bbe638a60e4424a7cba">sched_ext: Add cmask, a base-windowed bitmap over cid space</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5ba0a42423335f76d3e0513df42416c69dc6b742">sched_ext: Add cid-form kfunc wrappers alongside cpu-form</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e655ed7b953d194265837978ca21bb17985d4aa">sched_ext: Add bpf_sched_ext_ops_cid struct_ops type</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=67edfa9eefe693bcc48e615241a89240006551ce">sched_ext: Forbid cpu-form kfuncs from cid-form schedulers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=89ddcc0bfda1a2bf2b38949c9c0b6984b7af6bd2">tools/sched_ext: scx_qmap: Restart on hotplug instead of cpu_online/offline</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6434e95f25898ebcc0e5d9d9bed7180f910393be">tools/sched_ext: scx_qmap: Add cmask-based idle tracking and cid-based idle pick</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5ea59a3af5abe142dc57691306caac03453cbb0a">tools/sched_ext: scx_qmap: Port to cid-form struct_ops</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=97f86c38abe62c911ff20bc3e00b0937842f79c0">sched_ext: Require cid-form struct_ops for sub-sched support</a></li>
</ul>

<h3 id="christian-gmeiner">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adfb5deba567045d74bfd75482b8d4f89d073004">drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
</ul>

<h3 id="iago-toral-quiroga">Iago Toral Quiroga</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=257adf5ea64901263071a4a8e6ff958c5e0712c1">drm/v3d: Flush MMU TLB and cache during runtime resume</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b81e8b02e8f26b13ff4d6410f7a9854ba7021b86">drm/v3d: Clean caches before runtime suspend</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f8b8593c7832fad655290cef9e99af05b1b52b3">drm/v3d: Reject invalid indirect BO handle in indirect CSD setup</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7df2da0d1c375c1c4c70e1e0b569592de0d6b73">drm/v3d: Reach the GMP through the hub registers on V3D 7.x</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=07e769ba3d82ac614725c81c512a8b54d33f2c9e">drm/v3d: Idle AXI transactions before disabling the clock on suspend</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6395789e4739aa5177bbec0fa0f07ccc38d249b0">drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=48a570c964d8e37d353381e4195106277e17f5cb">drm/vc4: Zero the tile state data array before each BIN job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4da94744707b27a3ae1197bdd7127da4505dc5b1">drm/v3d: Serialize the scheduler timeout handlers</a></li>
</ul>

<h3 id="luis-henriques">Luis Henriques</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0fa8346099b5794b9909989e3f1cb617e9d8d3fa">fuse: invalidate readdir cache on epoch bump</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4b9a5458d02e214ef2b384124ca626e3e381d778">fs: preserve ACL_DONT_CACHE state in forget_cached_acl()</a></li>
</ul>

<h3 id="maíra-canal-1">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c9e6367639548307d3f578f6943ce72c9d39087">drm/vc4: Prevent shader BO mappings from becoming writable</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7dc3680b7ffe01add3e9299fde8471d2dd53a8ae">drm/vc4: hvs/v3d: Fix null dereference in unbind</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6273dd3ffb54ec581855b82ae77331b66028249c">drm/vc4: Shut down BO cache timer before teardown</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6395789e4739aa5177bbec0fa0f07ccc38d249b0">drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size</a></li>
</ul>

<h3 id="melissa-wen">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=19e2815babd4c51a51ebabfe68daa90eb26309c3">drm/vc4: Use devm_request_irq() for automatic cleanup</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4b9c36c83b34f710da9573291404f6a2246251c1">drm/vc4: Clean-up UAPI header inclusion</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=de1e32ef1d625ee4d717bcf10c23df2722324f62">drm/v3d: Use devm_reset_control_get_optional_exclusive()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffd7371ed4179827dcf401543b37b69e5781f924">drm/v3d: Allocate all resources before enabling the clock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=458f2a712ab42b7d3615208862922dc35fe90ef9">drm/v3d: Introduce Runtime Power Management</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efcd474ed273ae7da614b30e798651c6d57d3109">drm/connector: Make drm_connector_attach_hdr_output_metadata_property() return void</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e54a822b61e8dfea5587567dbf035ad41e6a09ef">drm/amd/display: Delete unimplemented dm_pp_apply_power_level_change_request() (v2)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=36ddabadd8b418cbca8e31d537f16bbf635c17f5">drm/amd/display: Delete dce_get_required_clocks_state()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1a77e14ab3ba46b5cda97387464f67ecf8287e71">drm/amd/display: Remove min/max clock levels from clk_mgr (v2)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b4b7d7f932452473582c2893ada704f8d0a2b407">drm/amd/display: Delete max_clocks_state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b6fbeac9c89e42da9f73827c1d4c686f0cf2fe5">drm/amd/display: Set max supported display clock without max_clks_by_state (v2)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=df85bf48732f6ba8aa011299f129c422bedd529e">drm/amd/display: Delete max_clks_by_state from DCE clock manager (v2)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ea25284d098d5aad86efc6bf541c063b53e30f61">drm/amd/display: Delete disp_clk_voltage from integrated info (v2)</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ff3af5416ac72419df601ba056a6c297bcd0bd2b">drm/amd/display: Delete dm_pp_clocks_state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f8bcc082149c74b0ef718692eccc995ad635f5d0">drm/amd/pm: Delete unused get_display_power_level() function</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e181cde3771570902636fdf279c646972efbe606">drm/amd/pm: Delete dummy get_dal_power_level implementations</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c58032823f9f67400d4aabc39602e5207d645972">drm/amd/pm: Delete non-functional SMU8 get_dal_power_level implementation</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d24cf9ce3f0607649a175f47c6f3d8f45dbf08ad">drm/amd/pm: Delete vddc_dep_on_dal_pwrl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e624a56f8a4c8c5a7d0a3937e929056e807d9562">drm/amd/pm: Delete get_dal_power_level</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=622f134d85099477cd79f15a450edef37057d15e">drm/amd/pm: Delete PP_DAL_POWERLEVEL</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8e792f018e10e68f488f279fbd4f38009a2e066d">drm/amd/display: Fix mem_type change detection for async flips</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ac7c6b4308c5e757eb278d47b9c0761c31ac9d6b">drm: Guard DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2a1c4c6fe0a6fcde02e59dde546dba28d283635">drm/amd/display: Fix NULL pointer dereference in amdgpu_dm_crtc_set_vblank()</a></li>
</ul>

<h3 id="tvrtko-ursulin-1">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6d4afc9ec6a0bc326151b35a7a3369369180079">drm/i915/gem: Drop check for changed VM in EXECBUF</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d4c14903bf5e28e740516c4fbb7db01e0dedf3af">dma-buf/dma_fence_array: remove unused functionality v4</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6c064db893f548d57036fce17c6493808396e620">Revert “i915: don’t use a vma that didn’t match the context VM”</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2b270c0ecf6d95bcd14ef4c20d0301a88143ff5">drm/amdgpu: initialize irq.lock spinlock earlier</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29b5def20a2cc3d7df375bf3803980c86f7b10ee">amdgpu/ih6.1: Fix minor version</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ba2977dcce72127986fbad76c4c67f134e2f69ae">drm/amdgpu: Use system unbound workqueue for soft IH ring</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=914a76a9f08366434bf595700f62026b7a19a9cc">drm/i915/gem: Add missing nospec on parallel submit slot</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=299bc6d50b1bed7d1f408391736712f01a0855e2">drm/xe/guc: Keep scheduler timeline name alive</a></li>
</ul>

<h2 id="acked-13">Acked (13)</h2>
<h3 id="maíra-canal-2">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a5eefd0726b16b04eebabb17619a08f2703d13f9">drm: Suppress intentional warning backtraces in scaling unit tests</a></li>
</ul>

<h3 id="melissa-wen-1">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1bf9381fc62f3c4e26a2caedb8317046383a559">drm/v3d: Remove drm_sched_init_args-&gt;num_rqs usage</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo-1">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4baf44b4051940ba1abc68ef5136d25cb1806521">platform/x86: classmate-laptop: Address memory leaks on driver removal</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=87b3892ddc3ac5c62eaa97a1662f6f996d6d4870">platform/x86: classmate-laptop: Unify probe rollback and remove code</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=daca81d9ead06d85b749d6036ea8c4940e7ac128">platform/x86: classmate-laptop: Pass struct device pointer to helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5658770e6eb5d9cf8d077054120545a98d7316ee">platform/x86: classmate-laptop: Rename two helper functions</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b32123a11dd706c3d0eaa48306a6000666ec11fe">platform/x86: classmate-laptop: Register ACPI notify handlers directly</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1588b83ad9b95dfa0bc3b9c22eb2608b64e1a3c5">platform/x86: classmate-laptop: Convert v4 accel driver to a platform one</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e51effb3cefe1bffa1afdee6ee5e93ded1746606">platform/x86: classmate-laptop: Convert accel driver to a platform one</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0fd6639706b79c0fbb5c0205aebfbbfd40ec44b0">platform/x86: classmate-laptop: Convert tablet driver to a platform one</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=069b06f8dfc9821fa54f0c5109ebbde891ea363a">platform/x86: classmate-laptop: Convert ipml driver to a platform one</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5fdac9983681f743cfaa89414ea154a2c5fd39c4">platform/x86: classmate-laptop: Convert keys driver to a platform one</a></li>
</ul>

<h3 id="tvrtko-ursulin-2">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b32b3cabf91e9569c070490821999008eb709d12">Revert “drm/i915: replace select with dependency for visible DEBUG_OBJECTS”</a></li>
</ul>

<h2 id="maintainer-sob-5">Maintainer SoB (5)</h2>
<h3 id="christian-gmeiner-1">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=457fa9132c05f7caaab0b211e8fe595ec29689c7">drm/etnaviv: use kzalloc_flex</a></li>
</ul>

<h3 id="maíra-canal-3">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c9e6367639548307d3f578f6943ce72c9d39087">drm/vc4: Prevent shader BO mappings from becoming writable</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7dc3680b7ffe01add3e9299fde8471d2dd53a8ae">drm/vc4: hvs/v3d: Fix null dereference in unbind</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6273dd3ffb54ec581855b82ae77331b66028249c">drm/vc4: Shut down BO cache timer before teardown</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6395789e4739aa5177bbec0fa0f07ccc38d249b0">drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size</a></li>
</ul>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="kernel" /><category term="graphics" /><category term="multimedia" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="silicon" /><summary type="html"><![CDATA[Linux 7.2 Released Linux 7.2 was tagged and released this week, on the regular schedule. This cycle was one of the busiest ever, only been beaten by 6.7. This is considered the “new normal”, given that the last 3 or 4 cycles had been pretty busy, especially regarding fixes. There’s some interesting achievements this cycle, like cache-aware scheduling, improvements on MGLRU, the concept of sub-schedulers for sched_ext (a good introduction on the topic by LWN), automatic creation of multi-size transparent hugepages (also a good intro on LWN ) and more - check the LWN articles (part 1 and part 2) for the full picture. Igalia as usual had a good share of contributions, mainly the DRM scheduler fair policy, which had a regression reported at the 11th hour (see below), hence is present as opt-in. Other than that, we landed very nifty runtime power management for GPUs in the Raspberry Pi 4 and 5, improvements in sched_ext, futex, and general bugfixing. Let’s review the highlights! Igalia Changelog DRM scheduler fair policy For this release cycle we planned to land and enable the DRM scheduler fair policy which brings significant improvements in scenarios where multiple clients are sharing the GPU, and also when a light interactive client competes for the GPU with a demanding one. Unfortunately, due a last-minute regression report during the 7.2-rc7 week, the default policy will remain the old first-in/first-out (FIFO) scheduler. As the fix for the fair policy regression is already known and early testing looks promising, we are hopeful it will get re-enabled in a next kernel release. sched_ext We improved sched-ext observability to simplify debugging. When a custom sched-ext scheduler hits a runtime error – such as failing to schedule a task for over 30 seconds – the kernel ejects it and reverts to the default scheduler. To help diagnose these failures, the kernel dumps the status of each CPU. However, especially on high-core systems, these dumps can be truncated due to buffer size limits between kernel space and user space. We mitigated this by prioritizing the exit CPU (the CPU that triggered the error) so it is dumped first, while also surfacing its CPU ID directly to BPF schedulers and userspace tools. Power Management to Raspberry Pi GPUs and more In this release, we landed support for Runtime Power Management on the Raspberry Pi 4 and 5 GPUs. Until now, the V3D driver had a very simple power model: the GPU clock was enabled during probe and remained enabled for the entire lifetime of the driver. Although this approach was simple and functional, it meant that an idle GPU would still consume power even when it was not actively executing jobs. With Runtime PM, the GPU is powered only when it is actually processing work, and its clock can be disabled while the GPU is idle. This reduces power consumption when the Raspberry Pi is not using the GPU. We wrote a blog post about this feature with more details and some power measurements. We also fixed two long-standing bugs in the Raspberry Pi 3 GPU driver that had been affecting RetroPie users for years, causing random GPU hangs and complete system crashes. The problems were traced to how the kernel handled tile memory when the GPU ran out of space while processing a frame. Our fixes ensure that each graphics job only writes to its own memory area and that reused memory is properly cleared before being used again, preventing stale or corrupted data from reaching the GPU. With these fixes, RetroPie users should no longer experience the crashes that could occur while navigating the menus. Finally, we landed several fixes for GPU resets on Raspberry Pi 4 and 5, making the reset process more reliable and consistent. Futex tests and documentation We continue to work to improve and maintain futex(), an important system call used by all types of workloads to create synchronization mechanisms. In this cycle, we helped to design and land a solution for a 14 year old bug that has been affecting the robust list mechanism with data corruption in some edge cases. General bugfixing We have fixed a long-standing issue in the ueagle-atm driver, which could hit a race condition between kernfs create and remove operations during device probe and disconnect, through the request_firmware API, and generated several bug reports in syzbot over the years. We helped to improve the correctness of the inline-assembly implementation of memcmp() used during x86 boot, preventing subtle potential bugs due to compiler optimization and instruction reordering. Towards full HDMI 2.1 support Part of the HDMI 2.1 Fixed Rate Link (FRL) support released in this version dates back to the work of Rodrigo Siqueira from Igalia during his time at AMD. This work implements the initial support that allows the amdgpu driver to communicate with HDMI 2.1 monitors (primarily the FRL implementation). This implementation was outside the main code for several years before being incorporated into the source code, with some parts kept virtually as originally written and others reworked throughout the process. At Igalia, we have experience with various DRM/KMS drivers, and this hands-on experience with HDMI 2.1 features complements the knowledge necessary for vendors to enable cutting-edge features to their own drivers. Authored (82) André Almeida Documentation: futex: Add a note about robust list race condition selftests: futex: Add tests for robust release operations Changwoo Min sched_ext: Extract scx_dump_cpu() from scx_dump_state() sched_ext: Dump the exit CPU first sched_ext: Expose exit_cpu to BPF and userspace Helen Koike fs/ntfs3: call _ntfs_bad_inode() when failing to rename tipc: fix infinite loop in __tipc_nl_compat_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 devm_request_irq() for automatic cleanup drm/vc4: Clean-up UAPI header inclusion drm/v3d: Use devm_reset_control_get_optional_exclusive() drm/v3d: Allocate all resources before enabling the clock drm/v3d: Introduce Runtime Power Management drm/connector: Make drm_connector_attach_hdr_output_metadata_property() 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 drm_sched_init_args-&gt;num_rqs usage accel/rocket: Remove drm_sched_init_args-&gt;num_rqs usage accel/ethosu: Remove drm_sched_init_args-&gt;num_rqs usage drm/amdgpu: Remove drm_sched_init_args-&gt;num_rqs usage drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs usage drm/imagination: Remove drm_sched_init_args-&gt;num_rqs usage drm/lima: Remove drm_sched_init_args-&gt;num_rqs usage drm/msm: Remove drm_sched_init_args-&gt;num_rqs usage drm/nouveau: Remove drm_sched_init_args-&gt;num_rqs usage drm/panfrost: Remove drm_sched_init_args-&gt;num_rqs usage drm/panthor: Remove drm_sched_init_args-&gt;num_rqs usage drm/sched: Remove drm_sched_init_args-&gt;num_rqs usage drm/v3d: Remove drm_sched_init_args-&gt;num_rqs usage drm/xe: Remove drm_sched_init_args-&gt;num_rqs usage drm/sched: Remove drm_sched_init_args-&gt;num_rqs drm/xe/xelp: Fix Wa_18022495364 drm/xe: Use fb cached min alignment drm/xe: Assign queue name in time for drm_sched_init 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 drm_sched_init_args-&gt;num_rqs” Revert “drm/xe: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/v3d: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/sched: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/panthor: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/panfrost: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/nouveau: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/msm: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/lima: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/imagination: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “drm/amdgpu: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “accel/ethosu: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “accel/rocket: Remove drm_sched_init_args-&gt;num_rqs usage” Revert “accel/amdxdna: Remove drm_sched_init_args-&gt;num_rqs 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 Reviewed (74) André Almeida futex: Move futex task related data into a struct futex: Provide UABI defines for robust list entry modifiers uaccess: Provide unsafe_atomic_store_release_user() x86: Select ARCH_MEMORY_ORDER_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 __vdso_futex_robust_try_unlock() mailmap: Update Maíra Canal’s email address Changwoo Min sched_ext: Add ext_types.h for early subsystem-wide defs sched_ext: Rename ops_cpu_valid() to scx_cpu_valid() and expose it sched_ext: Move scx_exit(), scx_error() and friends to ext_internal.h sched_ext: Shift scx_kick_cpu() validity check to scx_bpf_kick_cpu() sched_ext: Relocate cpu_acquire/cpu_release to end of struct sched_ext_ops sched_ext: Make scx_enable() take scx_enable_cmd sched_ext: Add topological CPU IDs (cids) sched_ext: Add scx_bpf_cid_override() kfunc tools/sched_ext: Add struct_size() 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 sched_ext: Add bpf_sched_ext_ops_cid struct_ops type sched_ext: Forbid cpu-form kfuncs from cid-form schedulers tools/sched_ext: scx_qmap: Restart on hotplug instead of cpu_online/offline tools/sched_ext: scx_qmap: Add cmask-based idle tracking and cid-based idle pick tools/sched_ext: scx_qmap: Port to cid-form struct_ops sched_ext: Require cid-form struct_ops for sub-sched support Christian Gmeiner drm/etnaviv: Remove drm_sched_init_args-&gt;num_rqs 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 ACL_DONT_CACHE state in forget_cached_acl() 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 devm_request_irq() for automatic cleanup drm/vc4: Clean-up UAPI header inclusion drm/v3d: Use devm_reset_control_get_optional_exclusive() drm/v3d: Allocate all resources before enabling the clock drm/v3d: Introduce Runtime Power Management drm/connector: Make drm_connector_attach_hdr_output_metadata_property() return void drm/amd/display: Delete unimplemented dm_pp_apply_power_level_change_request() (v2) drm/amd/display: Delete dce_get_required_clocks_state() drm/amd/display: Remove min/max clock levels from clk_mgr (v2) drm/amd/display: Delete max_clocks_state drm/amd/display: Set max supported display clock without max_clks_by_state (v2) drm/amd/display: Delete max_clks_by_state from DCE clock manager (v2) drm/amd/display: Delete disp_clk_voltage from integrated info (v2) drm/amd/display: Delete dm_pp_clocks_state drm/amd/pm: Delete unused get_display_power_level() function drm/amd/pm: Delete dummy get_dal_power_level implementations drm/amd/pm: Delete non-functional SMU8 get_dal_power_level implementation drm/amd/pm: Delete vddc_dep_on_dal_pwrl drm/amd/pm: Delete get_dal_power_level drm/amd/pm: Delete PP_DAL_POWERLEVEL drm/amd/display: Fix mem_type change detection for async flips drm: Guard DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE drm/amd/display: Fix NULL pointer dereference in amdgpu_dm_crtc_set_vblank() Tvrtko Ursulin drm/i915/gem: Drop check for changed VM in EXECBUF dma-buf/dma_fence_array: 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 drm_sched_init_args-&gt;num_rqs 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]]></summary></entry><entry><title type="html">Bringing Edge AI to the Raspberry Pi GPU</title><link href="https://www.igalia.com/2026/08/12/Bringing-Edge-AI-to-the-Raspberry-Pi-GPU.html" rel="alternate" type="text/html" title="Bringing Edge AI to the Raspberry Pi GPU" /><published>2026-08-12T00:00:00+00:00</published><updated>2026-08-12T00:00:00+00:00</updated><id>https://www.igalia.com/2026/08/12/Bringing-Edge-AI-to-the-Raspberry-Pi-GPU</id><content type="html" xml:base="https://www.igalia.com/2026/08/12/Bringing-Edge-AI-to-the-Raspberry-Pi-GPU.html"><![CDATA[<p>Google AI Edge and Raspberry Pi have published a joint announcement on running on-device AI on the Raspberry Pi 5 with <a href="https://ai.google.dev/edge/litert">LiteRT</a>, Google’s on-device inference runtime, and the Gemma family of open models. The announcement — published on the <a href="https://developers.googleblog.com/mastering-edge-ai-on-raspberry-pi-with-litert-and-gemma/">Google for Developers blog</a> and the <a href="https://www.raspberrypi.com/news/mastering-edge-ai-on-raspberry-pi-with-litert-and-gemma/">Raspberry Pi website</a> — shows a Raspberry Pi 5 running language, vision, and speech models entirely locally, including the Reachy Mini robot demo, where object detection, speech recognition, and a Gemma 4 E2B language model work together in real time with no cloud dependency.</p>

<p>Igalia contributed the GPU driver side of this work as part of our long-standing collaboration with Raspberry Pi on its open-source graphics stack. <a href="https://www.igalia.com/team/chema">José María Casanova</a>, from Igalia’s <a href="https://www.igalia.com/technology/graphics">Graphics Team</a>, enabled the experimental WebGPU support in Mesa’s V3DV Vulkan driver that LiteRT’s WebGPU backend needs to run on the VideoCore VII GPU, through the Dawn WebGPU implementation. This experimental support makes it possible to run inference on the GPU alongside the CPU, so continuous workloads can execute without competing for the CPU cycles that language-model inference and application logic need — as the Reachy Mini demo does, running its object detection on the GPU while Gemma runs on the CPU. It can be enabled with the <code class="language-plaintext highlighter-rouge">V3D_WEBGPU_OVERRIDE=1</code> environment variable in the updated official Raspberry Pi OS Mesa package.</p>

<p>As with all of our graphics work, these improvements were developed in <a href="https://gitlab.freedesktop.org/mesa/mesa">upstream Mesa</a>, so they benefit every Vulkan and WebGPU user on Raspberry Pi devices, not just AI workloads. Work continues on the V3DV driver to improve compute and 16-bit floating-point performance, bringing more of the platform’s capabilities to on-device AI.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="graphics" /><summary type="html"><![CDATA[Google AI Edge and Raspberry Pi have published a joint announcement on running on-device AI on the Raspberry Pi 5 with LiteRT, Google’s on-device inference runtime, and the Gemma family of open models. The announcement — published on the Google for Developers blog and the Raspberry Pi website — shows a Raspberry Pi 5 running language, vision, and speech models entirely locally, including the Reachy Mini robot demo, where object detection, speech recognition, and a Gemma 4 E2B language model work together in real time with no cloud dependency. Igalia contributed the GPU driver side of this work as part of our long-standing collaboration with Raspberry Pi on its open-source graphics stack. José María Casanova, from Igalia’s Graphics Team, enabled the experimental WebGPU support in Mesa’s V3DV Vulkan driver that LiteRT’s WebGPU backend needs to run on the VideoCore VII GPU, through the Dawn WebGPU implementation. This experimental support makes it possible to run inference on the GPU alongside the CPU, so continuous workloads can execute without competing for the CPU cycles that language-model inference and application logic need — as the Reachy Mini demo does, running its object detection on the GPU while Gemma runs on the CPU. It can be enabled with the V3D_WEBGPU_OVERRIDE=1 environment variable in the updated official Raspberry Pi OS Mesa package. As with all of our graphics work, these improvements were developed in upstream Mesa, so they benefit every Vulkan and WebGPU user on Raspberry Pi devices, not just AI workloads. Work continues on the V3DV driver to improve compute and 16-bit floating-point performance, bringing more of the platform’s capabilities to on-device AI.]]></summary></entry><entry><title type="html">Igalia and Bocoup: Cooperatives Unite</title><link href="https://www.igalia.com/2026/JoiningForces.html" rel="alternate" type="text/html" title="Igalia and Bocoup: Cooperatives Unite" /><published>2026-08-12T00:00:00+00:00</published><updated>2026-08-12T00:00:00+00:00</updated><id>https://www.igalia.com/2026/Igalia-and-Bocoup-Cooperatives-Unite</id><content type="html" xml:base="https://www.igalia.com/2026/JoiningForces.html"><![CDATA[<p>Igalia is pleased to announce that we have reached an agreement with the workers of Bocoup to become part of our collective effort, bringing their well-aligned experience and values.</p>

<p>Igalia has grown steadily in recent years, expanding our cooperative with more and more people who care deeply about open source, the web, and collaborative ways of working. This union with the workers of Bocoup continues that trajectory, strengthening our collective with people whose commitments align closely with our own.</p>

<p>We’re delighted to welcome our new members. Their work, leadership, and long experience in the web community, along with their dedication to cooperative models, make this a meaningful moment for us. As part of this agreement, Igalia will also acquire Bocoup’s brand assets and continue to maintain the website for some time, ensuring continuity for the identity and legacy Bocoup has built over the years.</p>

<p>This marks an exciting milestone for our cooperative. It reflects our belief that collaboration strengthens us — and that cooperatives can grow not only by scaling, but by joining together. We’re looking forward to what we’ll accomplish as a unified collective.</p>

<p><img style="max-width: 50%;display: block;margin: 0 auto 3rem;" src="/assets/i/news/igalia+bocoup.png" alt="our two logos with a plus between them" /></p>

<p>You can also read <a href="https://www.bocoup.com/blog/new-beginnings">the announcement on bocoup.com</a>.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="software-it" /><category term="open-source" /><summary type="html"><![CDATA[Igalia is pleased to announce that we have reached an agreement with the workers of Bocoup to become part of our collective effort, bringing their well-aligned experience and values. Igalia has grown steadily in recent years, expanding our cooperative with more and more people who care deeply about open source, the web, and collaborative ways of working. This union with the workers of Bocoup continues that trajectory, strengthening our collective with people whose commitments align closely with our own. We’re delighted to welcome our new members. Their work, leadership, and long experience in the web community, along with their dedication to cooperative models, make this a meaningful moment for us. As part of this agreement, Igalia will also acquire Bocoup’s brand assets and continue to maintain the website for some time, ensuring continuity for the identity and legacy Bocoup has built over the years. This marks an exciting milestone for our cooperative. It reflects our belief that collaboration strengthens us — and that cooperatives can grow not only by scaling, but by joining together. We’re looking forward to what we’ll accomplish as a unified collective. You can also read the announcement on bocoup.com.]]></summary></entry><entry><title type="html">Igalia at FOSSY 2026</title><link href="https://www.igalia.com/2026/08/06/Igalia-at-FOSSY-2026.html" rel="alternate" type="text/html" title="Igalia at FOSSY 2026" /><published>2026-08-06T00:00:00+00:00</published><updated>2026-08-06T00:00:00+00:00</updated><id>https://www.igalia.com/2026/08/06/Igalia-at-FOSSY-2026</id><content type="html" xml:base="https://www.igalia.com/2026/08/06/Igalia-at-FOSSY-2026.html"><![CDATA[<p>FOSSY (Free and Open Source Yearly), hosted by the Software Freedom Conservancy, is happening this weekend, in Vancouver, Canada! It’s taking place from August 6-9, 2026.</p>

<p>Igalia is there, and will be presenting two talks about the company from different perspectives:</p>

<ul>
  <li>“<a href="https://2026.fossy.ca/schedule/presentation/472/">From Corporate To Co-op: Working on Chrome at Igalia and Google</a>” by <a href="https://www.igalia.com/team/yangsharon">Sharon Yang</a> - Igalia is a small, cooperative consulting firm specializing in open source. Google is one of the world’s largest publicly traded corporations. Both have teams working on Chromium, a massive open source project. As a new Igalian and former Googler, Sharon gives an insider’s take on contributing to Chromium at both organizations.</li>
  <li>“<a href="https://2026.fossy.ca/schedule/presentation/471/">An Open Source Stack - Running a company using FOSS</a>” by <a href="https://www.igalia.com/team/danielle">Danielle Mayabb</a> - Igalia is an open-source consulting firm specializing in areas such as web standards, web engines and accessibility. In this talk, Danielle Mayabb, from Igalia’s tools team, will talk about how Igalia uses FOSS to power the company. She will cover the technologies Igalia uses, how using an open stack compares to a corporate stack, and the pros and cons of each.</li>
</ul>

<p>Come say hi if you’re there too! And if you have questions about any of our talks or just want to learn more about Igalia, <a href="https://igalia.com/contact">feel free to get in touch</a>.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><summary type="html"><![CDATA[FOSSY (Free and Open Source Yearly), hosted by the Software Freedom Conservancy, is happening this weekend, in Vancouver, Canada! It’s taking place from August 6-9, 2026. Igalia is there, and will be presenting two talks about the company from different perspectives: “From Corporate To Co-op: Working on Chrome at Igalia and Google” by Sharon Yang - Igalia is a small, cooperative consulting firm specializing in open source. Google is one of the world’s largest publicly traded corporations. Both have teams working on Chromium, a massive open source project. As a new Igalian and former Googler, Sharon gives an insider’s take on contributing to Chromium at both organizations. “An Open Source Stack - Running a company using FOSS” by Danielle Mayabb - Igalia is an open-source consulting firm specializing in areas such as web standards, web engines and accessibility. In this talk, Danielle Mayabb, from Igalia’s tools team, will talk about how Igalia uses FOSS to power the company. She will cover the technologies Igalia uses, how using an open stack compares to a corporate stack, and the pros and cons of each. Come say hi if you’re there too! And if you have questions about any of our talks or just want to learn more about Igalia, feel free to get in touch.]]></summary></entry><entry><title type="html">Igalia at GUADEC 2026</title><link href="https://www.igalia.com/2026/07/15/Igalia-at-GUADEC-2026.html" rel="alternate" type="text/html" title="Igalia at GUADEC 2026" /><published>2026-07-15T00:00:00+00:00</published><updated>2026-07-15T00:00:00+00:00</updated><id>https://www.igalia.com/2026/07/15/Igalia-at-GUADEC-2026</id><content type="html" xml:base="https://www.igalia.com/2026/07/15/Igalia-at-GUADEC-2026.html"><![CDATA[<p><a href="https://events.gnome.org/event/306">GUADEC</a>, the GNOME community’s annual conference, is coming to A Coruña — Igalia’s hometown — this year, taking place from July 16th to 20th at the Facultade de Informática of the Universidade da Coruña. Igalia has a long history of contributing to <a href="https://www.gnome.org/">GNOME</a>, and we’re glad to see the community gathering so close to home.</p>

<p>Several Igalians will be there in person, and we’re presenting three talks:</p>

<ul>
  <li><strong>“Some more governance” by <a href="https://www.igalia.com/team/ebassi">Emmanuele Bassi</a></strong>  — Governing a project the size of GNOME isn’t something you can improvise in an afternoon; it develops over time as you learn what works and what doesn’t. Emmanuele looks at how GNOME’s governance is taking shape, starting with the Platform Team and the components of the application development platform that GNOME itself is built on.</li>
  <li><strong>“Taking Out the Garbage Once and for All” by <a href="https://www.igalia.com/team/tjc">Tim Chevalier</a> and <a href="https://www.igalia.com/team/ebassi">Emmanuele Bassi</a></strong>  — The “Tardy Sweep” bug has forced GNOME Shell to run a garbage collection cycle every ten seconds for the better part of eight years. A proof-of-concept fix has existed for a while, but landing it without making memory usage worse required the in-depth profiling and research that Igalia stepped up to support. This talk covers how that work finally crossed the finish line.</li>
  <li><strong>“JavaScript in GNOME 2026, Types, Types and More Types” by <a href="https://www.igalia.com/team/pchimento">Philip Chimento</a></strong>  — Types make a medium-to-large JavaScript codebase much easier to statically analyze. Philip covers the ongoing work to make writing GNOME apps in TypeScript easier, some new debugging capabilities, a sneak peek at this year’s JS engine upgrade, and project ideas for anyone who wants to get involved.</li>
</ul>

<p>If you’re attending GUADEC, come say hi — many of us are based in A Coruña, so you’ll have no trouble finding Igalians around. And if you have questions about any of our talks or just want to learn more about Igalia, <a href="https://igalia.com/contact">feel free to reach out</a>.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="graphics" /><category term="compilers" /><summary type="html"><![CDATA[GUADEC, the GNOME community’s annual conference, is coming to A Coruña — Igalia’s hometown — this year, taking place from July 16th to 20th at the Facultade de Informática of the Universidade da Coruña. Igalia has a long history of contributing to GNOME, and we’re glad to see the community gathering so close to home. Several Igalians will be there in person, and we’re presenting three talks: “Some more governance” by Emmanuele Bassi  — Governing a project the size of GNOME isn’t something you can improvise in an afternoon; it develops over time as you learn what works and what doesn’t. Emmanuele looks at how GNOME’s governance is taking shape, starting with the Platform Team and the components of the application development platform that GNOME itself is built on. “Taking Out the Garbage Once and for All” by Tim Chevalier and Emmanuele Bassi  — The “Tardy Sweep” bug has forced GNOME Shell to run a garbage collection cycle every ten seconds for the better part of eight years. A proof-of-concept fix has existed for a while, but landing it without making memory usage worse required the in-depth profiling and research that Igalia stepped up to support. This talk covers how that work finally crossed the finish line. “JavaScript in GNOME 2026, Types, Types and More Types” by Philip Chimento  — Types make a medium-to-large JavaScript codebase much easier to statically analyze. Philip covers the ongoing work to make writing GNOME apps in TypeScript easier, some new debugging capabilities, a sneak peek at this year’s JS engine upgrade, and project ideas for anyone who wants to get involved. If you’re attending GUADEC, come say hi — many of us are based in A Coruña, so you’ll have no trouble finding Igalians around. And if you have questions about any of our talks or just want to learn more about Igalia, feel free to reach out.]]></summary></entry><entry><title type="html">Igalia and Wind River Collaborate to Deliver Production-Ready Web Runtime for Embedded Linux Devices</title><link href="https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices.html" rel="alternate" type="text/html" title="Igalia and Wind River Collaborate to Deliver Production-Ready Web Runtime for Embedded Linux Devices" /><published>2026-07-06T00:00:00+00:00</published><updated>2026-07-06T00:00:00+00:00</updated><id>https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices</id><content type="html" xml:base="https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices.html"><![CDATA[<p>Igalia, an open source engineering consulting firm with over 25 years of experience in Linux-based systems and Web engine development, is pleased to announce <a href="https://www.windriver.com/resource/enabling-web-based-user-experiences-for-embedded-linux-systems">a collaboration</a> under the umbrella of the <a href="https://www.yoctoproject.org">Yocto Project</a> with <a href="https://www.windriver.com/">Wind River</a>, a global leader in embedded Linux platforms, to deliver a production-ready Web runtime for embedded devices.</p>

<p>The joint solution combines <a href="https://wpewebkit.org">WPE WebKit</a>, the open source Web engine port created and maintained by Igalia specifically for embedded Linux environments, with <a href="https://www.windriver.com/products/embedded/linux">Wind River Linux</a>, a commercially supported, Yocto-based embedded platform.  Together, the two companies provide embedded product teams with a fully integrated, standards-based Web runtime backed by direct access to upstream maintainers.</p>

<p>A critical component of the solution is <a href="https://github.com/Igalia/meta-webkit">the meta-webkit Yocto layer</a>, maintained by Igalia since 2017. This layer contains the necessary build recipes, supports multiple Yocto versions, and provides backported security fixes. It also serves as the foundation for <a href="https://docs.webkit.org/Deep%20Dive/Build/CI.html">upstream WebKit’s continuous integration (CI) infrastructure</a> on real hardware targets, including the popular Raspberry Pi platform. This CI infrastructure allows to identify and resolve issues before they reach downstream product teams, meaningfully reducing risks for product teams.</p>

<p>Together, <a href="https://www.windriver.com/">Wind River</a> and Igalia provide embedded developers and product teams with:</p>

<ul>
  <li>A production-grade embedded Linux platform integrated with WPE WebKit</li>
  <li>A standards-based Web runtime designed for constrained and headless devices</li>
  <li>Direct access to upstream maintainers of WebKit and the WPE stack</li>
  <li>A fully open source solution, minimizing dependency on proprietary frameworks</li>
</ul>

<p>A Web engine provides a full application runtime that includes rendering, scripting, networking, and multimedia support, making it a compelling alternative to proprietary UI stacks. This is why modern embedded devices are increasingly adopting Web-based runtimes, including devices such as industrial human-machine interfaces, automotive systems, home appliances, smart TVs, and set-top boxes.  Igalia’s deep and broad experience with Web engines, along with our foundational focus on open source development, gives us a unique skill set to bring to projects that use Web engines and similar open technologies.</p>

<p>This collaboration between Igalia and Wind River is the latest entry in our long history of helping others meld the power of the Web with their projects to deliver truly robust solutions, creating a strong foundation for building modern, Web-based embedded applications. It allows product teams to accelerate development, reduce integration complexity, and maintain long-term control over their software stacks using open source technologies.  Embedded teams that need upstream support and long-term WebKit alignment now have a production-grade Linux platform to pair with it.</p>

<p>If you’d like to work with us, <a href="https://igalia.com/contact">please get in touch</a> to learn more and see how we can help your project get further, faster.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="digital-tv" /><summary type="html"><![CDATA[Igalia, an open source engineering consulting firm with over 25 years of experience in Linux-based systems and Web engine development, is pleased to announce a collaboration under the umbrella of the Yocto Project with Wind River, a global leader in embedded Linux platforms, to deliver a production-ready Web runtime for embedded devices. The joint solution combines WPE WebKit, the open source Web engine port created and maintained by Igalia specifically for embedded Linux environments, with Wind River Linux, a commercially supported, Yocto-based embedded platform. Together, the two companies provide embedded product teams with a fully integrated, standards-based Web runtime backed by direct access to upstream maintainers. A critical component of the solution is the meta-webkit Yocto layer, maintained by Igalia since 2017. This layer contains the necessary build recipes, supports multiple Yocto versions, and provides backported security fixes. It also serves as the foundation for upstream WebKit’s continuous integration (CI) infrastructure on real hardware targets, including the popular Raspberry Pi platform. This CI infrastructure allows to identify and resolve issues before they reach downstream product teams, meaningfully reducing risks for product teams. Together, Wind River and Igalia provide embedded developers and product teams with: A production-grade embedded Linux platform integrated with WPE WebKit A standards-based Web runtime designed for constrained and headless devices Direct access to upstream maintainers of WebKit and the WPE stack A fully open source solution, minimizing dependency on proprietary frameworks A Web engine provides a full application runtime that includes rendering, scripting, networking, and multimedia support, making it a compelling alternative to proprietary UI stacks. This is why modern embedded devices are increasingly adopting Web-based runtimes, including devices such as industrial human-machine interfaces, automotive systems, home appliances, smart TVs, and set-top boxes. Igalia’s deep and broad experience with Web engines, along with our foundational focus on open source development, gives us a unique skill set to bring to projects that use Web engines and similar open technologies. This collaboration between Igalia and Wind River is the latest entry in our long history of helping others meld the power of the Web with their projects to deliver truly robust solutions, creating a strong foundation for building modern, Web-based embedded applications. It allows product teams to accelerate development, reduce integration complexity, and maintain long-term control over their software stacks using open source technologies. Embedded teams that need upstream support and long-term WebKit alignment now have a production-grade Linux platform to pair with it. If you’d like to work with us, please get in touch to learn more and see how we can help your project get further, faster.]]></summary></entry><entry><title type="html">That’s a Wrap on the 2026 Web Engines Hackfest</title><link href="https://www.igalia.com/2026/webengineshackfest.html" rel="alternate" type="text/html" title="That’s a Wrap on the 2026 Web Engines Hackfest" /><published>2026-06-25T00:00:00+00:00</published><updated>2026-06-25T00:00:00+00:00</updated><id>https://www.igalia.com/2026/Thats-a-Wrap-on-the-2026-Web-Engines-Hackfest</id><content type="html" xml:base="https://www.igalia.com/2026/webengineshackfest.html"><![CDATA[<p>Last week (June 15–17), Igalia hosted the <a href="https://webengineshackfest.org/">2026 edition of the Web Engines Hackfest</a> at <a href="https://webengineshackfest.org/#venue">Palexco in A Coruña</a>. More than 150 browser developers, standards tinkerers, low-level engineers, and interested folks from around the world joined us, in person and remotely, for three days of talks, breakout sessions, and in-depth conversations. Thanks to everyone who came — the event wouldn’t be the same without you!</p>

<p>On Monday, we had nine talks, all live-streamed on the <a href="https://www.youtube.com/@webhackfest">Hackfest’s YouTube channel</a>. Individual recordings will be posted soon; in the meantime, you can watch the <a href="https://youtube.com/live/EFp-A7T4c0U">full livestream</a>:</p>

<ul>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=108">“Accessible Testing in WPT: From Dream to Reality”</a> by Valerie Young</strong>  — Cross-browser test suites have long helped browsers track interoperability, but until recently they couldn’t tell you whether a feature’s accessibility support was complete. This talk covers the tests you can now write in WPT and WebDriver, the challenges along the way, and the work still in progress.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=2084">“HarfBuzz at 20!”</a> by Behdad Esfahbod</strong>  — A look back at twenty years of the HarfBuzz text shaping engine, its current state, and its future, with significant focus on the Rust port, HarfRust. Behdad’s <a href="https://docs.google.com/presentation/d/1o9Exz1c-Lr-dJjA8dcBn_Vl_Y37cupmFzmclMjBE_Bc/view">slide deck</a> is well worth a read — and far too long to have presented in full.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=5800">“Iterable Streams”</a> by James Snell</strong>  — Node.js and Cloudflare Workers have been experimenting with an async-iterator-based stream API that’s faster than both Node.js streams and Web streams. A look at the approach, to prompt a conversation about how to move forward.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=8082">“Decoupling Extensions from Chrome: The Journey to a Modular Extensions Layer”</a> by Miyoung Shin &amp; Lorenzo Tilve</strong>  — The ongoing effort to decouple Chromium Extensions from the Chrome layer for a more modular, embeddable architecture, covering the motivation, migration strategy, lessons learned, and current progress, with a live demo.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=9676">“The EU Cyber Resilience Act: what is it, and how does it affect web browsers?”</a> by Aki Rose Braun &amp; Daniel Ari Ehrenberg Goldberg</strong>  — The EU Cyber Resilience Act applies to nearly all software in Europe, no matter where it’s built. Aki walks through the broad strokes of the regulation, and Dan digs into the specific obligations of browsers and what makes them special.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=18495">“Introduction to the RustNN ecosystem”</a> by Markus Tavenrath</strong>  — An overview of RustNN, a high-performance WebNN implementation, including its model exporters for PyTorch and ONNX and bindings for Python, JavaScript, and the browser.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=20523">“DOM Localization”</a> by Eemeli Aro</strong>  — A proposal for a set of core HTML attributes that would let developers bind DOM elements and fragments to localized messages, defined using Unicode MessageFormat, so users can experience the web in their native languages.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=24081">“How to ship a registry when nobody wants to run one”</a> by Aki Rose Braun &amp; Ethan Arrowood</strong>  — TC55 (formerly WinterCG) needed a runtime keys registry, but nobody wanted to operate the infrastructure. This talk explains how they solved that by publishing it as an Ecma Technical Report instead.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=25134">“npmx: a fast, modern browser for the npm registry”</a> by Daniel Roe &amp; Matias Leandro Capeletto</strong>  — A community-built alternative npm registry browser, with features for choosing modern packages, promoting JS standards adoption, and collaborating with communities like e18e and atproto.</li>
</ul>

<p>On Tuesday morning, we also ran a dedicated <a href="https://github.com/Igalia/webengineshackfest/issues/81">WPE WebKit track</a>, with sessions on building an embedded browser on Raspberry Pi with the new WPEPlatform API, refactoring composition with Skia, reducing GPU usage, profile-guided optimization, QA practices, and the WPEPlatform API for Android.</p>

<p>On Tuesday and Wednesday, we had more than twenty <a href="https://github.com/Igalia/webengineshackfest/issues?q=label%3A%22Breakout%20Session%22%20label%3A%222026%22">breakout sessions</a> on everything from memory safety in WebKit and the Web security model, to MathML Core, AsyncContext, Servo DevTools, FedCM, and Web Components. Standards bodies took the opportunity to meet face-to-face on site too, including a <a href="https://github.com/Igalia/webengineshackfest/issues/80">WHATWG meeting</a> and a CSS Working Group meeting. The full schedule is on the <a href="https://github.com/Igalia/webengineshackfest/wiki#scheduling">Hackfest wiki</a>.</p>

<p>The Web Engines Hackfest is an event that brings people together to discuss and work on different browsers and web standards. Our goal is to foster collaboration in benefit of the open web.</p>

<p>Many thanks to our outside sponsors, <a href="https://mullvad.net/en/browser">Mullvad Browser</a>, <a href="https://www.arm.com/">ARM</a>, and <a href="https://www.huawei.com/">Huawei</a>, for helping make this year’s Hackfest possible, and to everyone who attended in person or remotely for being a part of the growing Hackfest community. See you all next year!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="javascript" /><category term="accessibility" /><category term="multimedia" /><summary type="html"><![CDATA[Last week (June 15–17), Igalia hosted the 2026 edition of the Web Engines Hackfest at Palexco in A Coruña. More than 150 browser developers, standards tinkerers, low-level engineers, and interested folks from around the world joined us, in person and remotely, for three days of talks, breakout sessions, and in-depth conversations. Thanks to everyone who came — the event wouldn’t be the same without you! On Monday, we had nine talks, all live-streamed on the Hackfest’s YouTube channel. Individual recordings will be posted soon; in the meantime, you can watch the full livestream: “Accessible Testing in WPT: From Dream to Reality” by Valerie Young  — Cross-browser test suites have long helped browsers track interoperability, but until recently they couldn’t tell you whether a feature’s accessibility support was complete. This talk covers the tests you can now write in WPT and WebDriver, the challenges along the way, and the work still in progress. “HarfBuzz at 20!” by Behdad Esfahbod  — A look back at twenty years of the HarfBuzz text shaping engine, its current state, and its future, with significant focus on the Rust port, HarfRust. Behdad’s slide deck is well worth a read — and far too long to have presented in full. “Iterable Streams” by James Snell  — Node.js and Cloudflare Workers have been experimenting with an async-iterator-based stream API that’s faster than both Node.js streams and Web streams. A look at the approach, to prompt a conversation about how to move forward. “Decoupling Extensions from Chrome: The Journey to a Modular Extensions Layer” by Miyoung Shin &amp; Lorenzo Tilve  — The ongoing effort to decouple Chromium Extensions from the Chrome layer for a more modular, embeddable architecture, covering the motivation, migration strategy, lessons learned, and current progress, with a live demo. “The EU Cyber Resilience Act: what is it, and how does it affect web browsers?” by Aki Rose Braun &amp; Daniel Ari Ehrenberg Goldberg  — The EU Cyber Resilience Act applies to nearly all software in Europe, no matter where it’s built. Aki walks through the broad strokes of the regulation, and Dan digs into the specific obligations of browsers and what makes them special. “Introduction to the RustNN ecosystem” by Markus Tavenrath  — An overview of RustNN, a high-performance WebNN implementation, including its model exporters for PyTorch and ONNX and bindings for Python, JavaScript, and the browser. “DOM Localization” by Eemeli Aro  — A proposal for a set of core HTML attributes that would let developers bind DOM elements and fragments to localized messages, defined using Unicode MessageFormat, so users can experience the web in their native languages. “How to ship a registry when nobody wants to run one” by Aki Rose Braun &amp; Ethan Arrowood  — TC55 (formerly WinterCG) needed a runtime keys registry, but nobody wanted to operate the infrastructure. This talk explains how they solved that by publishing it as an Ecma Technical Report instead. “npmx: a fast, modern browser for the npm registry” by Daniel Roe &amp; Matias Leandro Capeletto  — A community-built alternative npm registry browser, with features for choosing modern packages, promoting JS standards adoption, and collaborating with communities like e18e and atproto. On Tuesday morning, we also ran a dedicated WPE WebKit track, with sessions on building an embedded browser on Raspberry Pi with the new WPEPlatform API, refactoring composition with Skia, reducing GPU usage, profile-guided optimization, QA practices, and the WPEPlatform API for Android. On Tuesday and Wednesday, we had more than twenty breakout sessions on everything from memory safety in WebKit and the Web security model, to MathML Core, AsyncContext, Servo DevTools, FedCM, and Web Components. Standards bodies took the opportunity to meet face-to-face on site too, including a WHATWG meeting and a CSS Working Group meeting. The full schedule is on the Hackfest wiki. The Web Engines Hackfest is an event that brings people together to discuss and work on different browsers and web standards. Our goal is to foster collaboration in benefit of the open web. Many thanks to our outside sponsors, Mullvad Browser, ARM, and Huawei, for helping make this year’s Hackfest possible, and to everyone who attended in person or remotely for being a part of the growing Hackfest community. See you all next year!]]></summary></entry><entry><title type="html">Linux 7.1 Released</title><link href="https://www.igalia.com/2026/06/17/Linux-71-Released.html" rel="alternate" type="text/html" title="Linux 7.1 Released" /><published>2026-06-17T00:00:00+00:00</published><updated>2026-06-17T00:00:00+00:00</updated><id>https://www.igalia.com/2026/06/17/Linux-71-Released</id><content type="html" xml:base="https://www.igalia.com/2026/06/17/Linux-71-Released.html"><![CDATA[<h1 id="linux-71-released">Linux 7.1 Released</h1>

<p>Linux 7.1 has been <a href="https://lore.kernel.org/lkml/CAHk-=wi4BF4bMhZNZ1tqs+FFV4OuZRe3ZqdWB+LxRLmRweUzQw@mail.gmail.com/T/#u">tagged and released</a>, closing this development cycle with over 15,000 commits.</p>

<p>This second release in the 7.x cycle brings quite a few noteworthy things: a brand-new NTFS driver, proper battery metrics on MacBook laptops with the Apple SMC driver, and several improvements across the graphics and DRM stack. It also continues the ongoing cleanup of older and unmaintained drivers, dropping support for things like ISDN and ham radio. Notably, Linux 7.1 begins the process for retiring Intel 486 CPU support (“i486”) in the future. For more details and a full list of changes, check the corresponding <a href="https://kernelnewbies.org/Linux_7.1">KernelNewbies page</a>.</p>

<p>As usual, Igalia has been busy contributing fixes and improvements to different areas during this release. Below are some of our highlights from this cycle.</p>

<h2 id="igalia-changelog">Igalia Changelog</h2>

<h3 id="v3d-and-vc4-fixes-and-improvements">V3D and VC4 fixes and improvements</h3>

<p>The V3D and VC4 drivers saw several robustness and maintainability improvements this cycle. As part of the Raspberry Pi 5 upstreaming effort, we added the V3D GPU device-tree node for BCM2712, enabling V3D support on fully upstream kernels.</p>

<p>We also continued improving the V3D interface by migrating performance monitor tracking from IDR to XArray in both V3D and VC4. In parallel, a series of fixes addressed reference counting, scheduler integration, cache synchroniztion, and error handling issues in V3D’s compute intrastructure, improving the stability of CPU job execution paths.</p>

<p>On the power-management side, we refined Raspberry Pi firmware clock handling by moving clock rate management into prepare/unprepare callbacks. These changes reduce unnecessary power consumption for clock users and lay the groundwork for V3D Runtime PM support, which will land in the next kernel release.</p>

<h3 id="amdgpu-user-queue-cleanup">AMDGPU User Queue Cleanup</h3>

<p>On the AMD side, we continued our efforts to clean up the user queue submission code. This cycle, we focused on removing resource leaks in the wait and signal ioctls, consolidating exit paths to prevent deadlocks, and ensuring that userspace cannot trivially trigger kernel warnings. These changes improve the overall security and stability of the amdgpu driver when interacting with complex user-space workloads.</p>

<h3 id="auxccs-support-for-intel-xe-driver">AuxCCS Support for Intel Xe Driver</h3>

<p>We finalized Alderlake support for AuxCCS (Auxiliary Color Compression Support) in the Intel Xe driver. This includes adding support for frame buffer modifiers, ensuring proper invalidation of auxiliary tables, and quiescing memory traffic during cache invalidation. These changes reduce the memory bandwith consumed by UI composition and graphical rendering, improving power efficiency and overall performance on this platform.</p>

<h3 id="dma-fence-improvements-for-module-unload-scenarios">DMA-Fence improvements for module unload scenarios</h3>

<p>Building on the cross-system dma-fence work we did for the <a href="https://www.igalia.com/2025/10/07/Linux-617-Released.html">6.17 kernel release</a>, we helped upstream extend this protection to module unload scenarios. We’ve also fixed warnings related to <code class="language-plaintext highlighter-rouge">__rcu</code> annotations to keep the codebase clean and static-analysis friendly.</p>

<h3 id="debugging-infrastructure-improvements">Debugging Infrastructure improvements</h3>

<p>For developers relying on <code class="language-plaintext highlighter-rouge">pstore</code> and <code class="language-plaintext highlighter-rouge">ftrace</code>, Linux 7.1 brings important fixes. Previously, systems with KASLR enabled would cause offsets saved in debug sessions to be bogus when decoded. This has been fixed along with other <code class="language-plaintext highlighter-rouge">pstore</code> improvements, and an improved debugfs interface for the <code class="language-plaintext highlighter-rouge">reserve_mem</code> parameter. These changes should provide better visibility into memory reservation states and improve the overall state of these subsystems for debugging kernel crashes or hangs.</p>

<h3 id="another-round-of-general-fixes-and-cleanup">Another round of general fixes and cleanup</h3>

<p>Beyond the major subsystem updates, Igalia also helped with several “odd fixes” and general maintenance work to keep the kernel healthy.</p>

<p>In the <strong>filesystems</strong> area, we fixed a null pointer dereference in JFS during unmount and resolved an uninitialized value issue in the FUSE layer.</p>

<p>For <strong>Bluetooth</strong>, we reworked the reset path in the HCI core to ensure clean adapter teardown, preventing protocol issues caused by pending work.</p>

<p>On the <strong>peripherals</strong> side, we implemented proper URB tracking in the <code class="language-plaintext highlighter-rouge">libertas</code> Wi-Fi driver to prevent use-after-free issues, and added stricter validation checks for USBTMC endpoints.</p>

<p>We also investigated a data race in the <strong>Real Time Clock (RTC)</strong> subsystem reported by syzbot and detected by the Kernel Concurrency Sanitizer (KCSAN). The race was determined to be safe, and the code was annotated to prevent future false-positive reports.</p>

<p>Finally, we’ve improved documentation for <code class="language-plaintext highlighter-rouge">ttm_bo_swapout</code> and implemented the corresponding KUnit tests.</p>

<hr />
<h2 id="authored-76">Authored (76)</h2>
<h3 id="alberto-garcia">Alberto Garcia</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2b27ea5b644d7da9bc84f4539e53d1b31c601566">PM: hibernate: return -ENODATA if the snapshot image is not loaded</a></li>
</ul>

<h3 id="guilherme-g-piccoli">Guilherme G. Piccoli</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80632e333b0bd3cf188cff4e7ff52114506f5612">pstore/ramoops: Remove useless memblock header</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b22462c79179f228327b98313b47369129114d6a">pstore/ramoops: Fix ECC parameter help text</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=421a41c485dde449cbf90ba610b805bd99e3ae78">pstore/ftrace: Keep ftrace module parameter and debugfs switch in sync</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7f4a21c2a51710a06965cc9c1252821fc925544">memblock: Print out errors on reserve_mem parser</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0709682cdb4ac77e3f78ea9c10d7f74b41a12518">memblock: Add reserve_mem debugfs info</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24b8f8dcb9a139a36cf48bfbe935e8dc1f33ed79">pstore/ftrace: Factor KASLR offset in the core kernel instruction addresses</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0f6f4ac7d5d04fe2adcdd63ed1cd1ad505b8958">ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED</a></li>
</ul>

<h3 id="heitor-alves-de-siqueira">Heitor Alves de Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a57f35fc19add4dfe33703af575a2c19c2cef9c7">wifi: libertas: use USB anchors for tracking in-flight URBs</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c5c2b661bdb78c1472b8833265c9ed1ee880039">wifi: libertas: don’t kill URBs in interrupt context</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52f2ad3f7e5eb3b5908e1d685d4342519dc9cfcd">usb: usbtmc: check URB actual_length for interrupt-IN notifications</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=121d2f682ba912b1427cddca7cf84840f41cc620">usb: usbtmc: reject interrupt endpoints with small wMaxPacketSize</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=40b87657200cfae93e48904fd9c9c8fc3e192cae">Bluetooth: hci_core: Rework hci_dev_do_reset() to use hci_sync functions</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=525daaea459fc215f432de1b8debbd9144bf97b0">Bluetooth: hci_sync: Set HCI_CMD_DRAIN_WORKQUEUE during device close</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdf88b35e06f1b385f7f6228060ae541d44fbb72">Bluetooth: hci_sync: Reset device counters in hci_dev_close_sync()</a></li>
</ul>

<h3 id="helen-koike">Helen Koike</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca5848ae87d24886a7886f5a22278bd4045c15f8">jfs: hold LOG_LOCK on umount to avoid null-ptr-deref</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f41161059fd0f1bbf18c90f3180e38cc45a14eb">debugobjects: Do not fill_pool() if pi_blocked_on</a></li>
</ul>

<h3 id="luis-henriques">Luis Henriques</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f595dda929e1b914f605de7cc3ff6a6888e3d66b">fuse: drop unnecessary argument from fuse_lookup_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5a6baf204610589f8a5b5a1cd69d1fe661d9d3cd">fuse: fix uninit-value in fuse_dentry_revalidate()</a></li>
</ul>

<h3 id="mauricio-faria-de-oliveira">Mauricio Faria de Oliveira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b47bcab6ee92d5ca6ba55c06b9a503e2663e942f">rtc: add data_race() in rtc_dev_poll()</a></li>
</ul>

<h3 id="maíra-canal">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=68e28facbc8ab3e701e1814323d397a75b400865">drm/panel: ilitek-ili9882t: Select DRM_DISPLAY_DSC_HELPER</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8cf1bec37b27846ad3169744c9f1a89a06dcb3fa">drm/v3d: Handle error from drm_sched_entity_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7315728ab5388bf4956835b20497332b1d45fe98">drm/v3d: Remove dedicated fence_lock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80ebada3dbcc811f3f64fc65e49d87857fe9272b">arm64: dts: broadcom: bcm2712: Add V3D device node</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=672299736af6c398e867782708b7400957e62c76">clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d797ecf3ffc5cc3e622bfee4cee6b17372c5bcc7">pmdomain: bcm: bcm2835-power: Replace open-coded polling with readl_poll_timeout_atomic()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=522567362b634015ca85b5460482ee0843feb105">clk: bcm: rpi: Mark VEC clock as CLK_IGNORE_UNUSED</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3780c41460a9ad6d5d4c09a416765c6cc285033b">drm/etnaviv: Fix armed job not being pushed to the DRM scheduler</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0fe80c0b9250b35e2211bf3117e7aca814a21b0">drm/v3d: Fix use-after-free of CPU job query arrays on error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6eb6e5acafa46854d4363e6c34981289995f3ace">drm/v3d: Release indirect CSD GEM reference on CPU job free</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abf888b03a9805a3bc37948a0df443553b1c0910">drm/v3d: Wait for pending L2T flush before cleaning caches</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae7676952790f421c40918e2586a2c9f12a682b6">drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f93fad5ea0affc9e1505dd0f7596c0fdb496213">drm/v3d: Skip CSD when it has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7e2affc6e62da7add393d7f352d4040f5bc27">drm/v3d: Fix global performance monitor reference counting</a></li>
</ul>

<h3 id="melissa-wen">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7969a145e13a3390143038fe82c52025aeb93">drm/drm_atomic: duplicate colorop states if plane color pipeline in use</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=94ff735296d371045fce163451a3d65e44ac4729">drm/colorop: make lut(1/3)d_interpolation props correctly behave as mutable</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2e235e2a2784b12b735321e5b42240ca51c49b0f">drm/atomic: track individual colorop updates</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d79716401a954677a93c4dd51fec65beccb38296">drm/amd/display: use plane color_mgmt_changed to track colorop changes</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=acee19f998234c4aec88c5fab364780312ba17e9">drm/ttm: document that ttm_bo_swapout deals with pages</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d11ac9043435cf1ddf1abc59fa774eb6c0ca4e51">drm/ttm/tests: add a test to exercise ttm_bo_swapout</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6675af9c1a3251ff95ef1290f9317ba0e83ce99d">cgroup/dmem: remove region parameter from dmemcg_parse_limit</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4aa0deae1070690d08c1f47c489f8b5ce3f6ea6d">drm/vram: remove DRM_VRAM_MM_FILE_OPERATIONS from docs</a></li>
</ul>

<h3 id="tvrtko-ursulin">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7fe6cae2f7fad2b5166b0fc096618629f9e2ebcb">drm/xe/xelp: Fix Wa_18022495364</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=62918542b7bf08860a60ebbde7654486e0ac0776">dma-fence: Fix sparse warnings due __rcu annotations</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5e53ff42fa53fcf9ce7e9b9fef6876ebd14378e">drm/amdgpu: Remove a few holes from struct amdgpu_ctx</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=90d5122115fb4513161e7a8413d28215c237295c">drm/amdgpu: Remove duplicate struct member</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fb1bf29acdd5283ec1d3f291b509a060d940cf1f">drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5eb2a72bac35e8eddc36d4a614b3fb976457bfbc">drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=68951e9c3e6bb22396bc42ef2359751c8315dd27">drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c333ea579de6cc20ea7bc50e9595ef72863e65c">drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bea29bb0dd29012949cd44fdb122465a9fd5cf91">drm/amdgpu/userq: Consolidate wait ioctl exit path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ca06f6fb45da38e19e88b7dcf76b2a7e9d6a9e2">drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2de9353e193fd62dfa65c45890dd2f9c53f12527">drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ccdad15ae81a65875e4fe961f4e9c80b6d15829">drm/amdgpu: Reject impossible entities early</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a95dfb0c78fa7d0d17c0131738097c53b4074d6c">drm/amdgpu: Remove redundant missing hw ip handling</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bb026f3fbe8cb59ab70ec21b5cbd729b0c94bac">drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=36052e56d5943bbd8244321c3b1445ba5db0f12b">drm/xe: Use write-combine mapping when populating DPT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=88139af77d6acd74bf73f5e36f4bdc63f033f399">drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=458b1e64e7c0594cca8515fae8996bc52619d2f6">drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cd1a516234ebb049007ce20c6b6e76936b29bade">drm/xe/xelp: Wait for AuxCCS invalidation to complete</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fd4c1eea1cfe20efc470f01bfb1a04d272e8eb74">drm/xe: Move aux table invalidation to ring ops</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1d5945d74b4d4c8dcc884ad7f0ccbb377d777443">drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c42193d9049ab7e3069e6e9ff94d8a37b774af9">drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=11dbd2d14663450111a6104a6d9aec5267405c86">drm/xe/display: Change write_dpt_remapped_tiled function signature</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cce1c47726579f0974e12e03e8471053d29182da">drm/xe/display: Respect remapped plane alignment</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9110675732a3c2320ec172d17b2b3d78d250aed4">drm/xe/display: Add support for AuxCCS</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=737ec1e81a816731ba74b3f510441b1f4d5068f6">drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=78842c1e3b05c1d5b7b32a33ccbfd5fcccc5557d">drm/gem: Improve drm_gem_objects_lookup() kerneldoc</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7daff375fa4602934b3b385f83e7ad95d97d86d3">dma-fence: Silence sparse warning in dma_fence_describe</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0df99689eb790bcad3ad82b38fa4ce1cbf3cffa3">drm/xe/xelp: Fix Wa_18022495364</a></li>
</ul>

<h2 id="co-developed-4">Co-developed (4)</h2>
<h3 id="maíra-canal-1">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
</ul>

<h2 id="reviewed-45">Reviewed (45)</h2>
<h3 id="iago-toral-quiroga">Iago Toral Quiroga</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8cf1bec37b27846ad3169744c9f1a89a06dcb3fa">drm/v3d: Handle error from drm_sched_entity_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7315728ab5388bf4956835b20497332b1d45fe98">drm/v3d: Remove dedicated fence_lock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0fe80c0b9250b35e2211bf3117e7aca814a21b0">drm/v3d: Fix use-after-free of CPU job query arrays on error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6eb6e5acafa46854d4363e6c34981289995f3ace">drm/v3d: Release indirect CSD GEM reference on CPU job free</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abf888b03a9805a3bc37948a0df443553b1c0910">drm/v3d: Wait for pending L2T flush before cleaning caches</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae7676952790f421c40918e2586a2c9f12a682b6">drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f93fad5ea0affc9e1505dd0f7596c0fdb496213">drm/v3d: Skip CSD when it has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7e2affc6e62da7add393d7f352d4040f5bc27">drm/v3d: Fix global performance monitor reference counting</a></li>
</ul>

<h3 id="maíra-canal-2">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5491f668910ed0b282beb10f3f6b2e4d3988a1a8">drm/vc4: Switch private_obj initialization to atomic_create_state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ef1dcf4c16bb6d90e8fbf7b18f3d76b79fcde9d">drm/vc4: hdmi: replace use of system_wq with system_percpu_wq</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ad595a8aeeabfbfcc0026b9892a8155bc0763416">drm/vc4: Test for imported buffers with drm_gem_is_imported()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3590a52f0d0903e600dd01e2cf30820c404beca4">drm/atomic: Remove state argument to drm_atomic_private_obj_init</a></li>
</ul>

<h3 id="melissa-wen-1">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43175f6164d32cb96362d16e357689f74298145c">drm/amd/display: Use mpc.preblend flag to indicate 3D LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=196a6aa727f1f15eb54dda5e60a41543ea9397ee">drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ec5708d6e547f7efe2f009073bfa98dbc4c5c2ac">drm/amdgpu: Fix kernel-doc comments for some LUT properties</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8f9f42effd767ffa7bbcd7e05fbd6b20737e468">drm/amd/display: Fix gamma 2.2 colorop TFs</a></li>
</ul>

<h3 id="rodrigo-siqueira">Rodrigo Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1d3efc329b45318721a4b1e1f893322ba82c876">drm/amd/display: Use dce_audio_create for DCE 6</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ecdf982ccc680deea59f4577c9a4947a5182e574">drm/amd/display: Delete unused dce_clk_mgr.c</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3a3aaed8f04bc1869fdcc1b769b3b1172a5f4e2c">drm/amd/display: Remove unused dce60_clk_mgr register definitions</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d31e61604820b700d51d5b0a285363be0d95eee8">drm/amd/display: Handle DCE 6 in dce_clk_mgr.c</a></li>
</ul>

<h3 id="tvrtko-ursulin-1">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bcbc706dfa02ae50118173a6f6d8a12e735480c">dma-buf: add dma_fence_was_initialized function v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dbce431756f85ec76a189312afdae2dee14fb0de">drm/gem: Make drm_gem_objects_lookup() self-cleaning on failure v6</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4cc3ab824d6772a48ca9d9c74ac623b3309985d">dma-buf: protected fence ops by RCU v8</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=541c8f2468b933acc5d129e84bd264923675a66e">dma-buf: detach fence ops on signal v3</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e5067931b5df667f5350fafe4410554e228e53e">dma-buf: abstract fence locking v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3695d754ffbb176afe3cb47b705b72bf85ed63f0">dma-buf/selftests: test RCU ops and inline lock v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed0d6a0003fdcf8c93ff1544cf104a5456bf520e">dma-buf: use inline lock for the stub fence v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5943243914b9fed8e26edcb9d45421721a5e3576">dma-buf: use inline lock for the dma-fence-array</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a408c0ca0c411ca1ead995bdae3112a806c87556">dma-buf: use inline lock for the dma-fence-chain</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5ea5b6ff0d63aef1dc3fb25445acea183f61a934">drm/tests: Mark slow tests as slow</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=945d0fec02f6c22b182d51d8da39aa1b0df9f622">drm/i915: Test for imported buffers with drm_gem_is_imported()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d11ac9043435cf1ddf1abc59fa774eb6c0ca4e51">drm/ttm/tests: add a test to exercise ttm_bo_swapout</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=087be0cd54f5e27a893222d9a4d4fc970bf31ccd">drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9405ce75e8e1c2a2281659bf395f8b18b94d786">drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a14a4e9b3fda05b907d0445a3be9e7c0e887f4e">drm/amdgpu/userq: fix dma_fence refcount underflow in userq path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1c1c77d30cd497ad6dd6062f8a5c06b38a45132">drm/amdgpu: Move amdgpu_vm_is_bo_always_valid() before first use</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d21ad938398bca695a511307de38a65889e3b354">drm/i915/gem: Fix phys BO pread/pwrite with offset</a></li>
</ul>

<h2 id="tested-4">Tested (4)</h2>
<h3 id="guilherme-g-piccoli-1">Guilherme G. Piccoli</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ef6255cc56343bc90d82420b49dab1b11dee414">pstore: fix ftrace dump, when ECC is enabled</a></li>
</ul>

<h3 id="melissa-wen-2">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0f6f4ac7d5d04fe2adcdd63ed1cd1ad505b8958">ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED</a></li>
</ul>

<h3 id="umang-jain">Umang Jain</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6042c91df60e825625bc7d5c5c3b5a87b91d5805">ASoC: SOF: amd: fix for ipc flags check</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=25b17c06040fae60518b4ff9c46f2bb12285d538">ASoC: SOF: amd: set ipc flags to zero</a></li>
</ul>

<h2 id="reported-1">Reported (1)</h2>
<h3 id="tvrtko-ursulin-2">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=acee19f998234c4aec88c5fab364780312ba17e9">drm/ttm: document that ttm_bo_swapout deals with pages</a></li>
</ul>

<h2 id="maintainer-sob-7">Maintainer SoB (7)</h2>
<h3 id="christian-gmeiner">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3780c41460a9ad6d5d4c09a416765c6cc285033b">drm/etnaviv: Fix armed job not being pushed to the DRM scheduler</a></li>
</ul>

<h3 id="maíra-canal-3">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ef1dcf4c16bb6d90e8fbf7b18f3d76b79fcde9d">drm/vc4: hdmi: replace use of system_wq with system_percpu_wq</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e597a809a2b97e927060ba182f58eb3e6101bc70">drm/vc4: platform_get_irq_byname() returns an int</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fb44d589bf3148e13452185a6e772a7efbf2d684">drm/v3d: Reject empty multisync extension to prevent infinite loop</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d563a5da8717629ae72f9eadf1e0e340bd1658b">drm/vc4: fix krealloc() memory leak</a></li>
</ul>

<h3 id="melissa-wen-3">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e480228cf65583040c894bb9cc02e1d5b328cee0">drm/colorop: Remove read-only comments from interpolation fields</a></li>
</ul>

<h3 id="tvrtko-ursulin-3">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2914709c914101eb704e01bed2351070d4161ccf">Revert “drm/i915/backlight: Remove try_vesa_interface”</a></li>
</ul>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="kernel" /><category term="graphics" /><category term="multimedia" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="silicon" /><summary type="html"><![CDATA[Linux 7.1 Released Linux 7.1 has been tagged and released, closing this development cycle with over 15,000 commits. This second release in the 7.x cycle brings quite a few noteworthy things: a brand-new NTFS driver, proper battery metrics on MacBook laptops with the Apple SMC driver, and several improvements across the graphics and DRM stack. It also continues the ongoing cleanup of older and unmaintained drivers, dropping support for things like ISDN and ham radio. Notably, Linux 7.1 begins the process for retiring Intel 486 CPU support (“i486”) in the future. For more details and a full list of changes, check the corresponding KernelNewbies page. As usual, Igalia has been busy contributing fixes and improvements to different areas during this release. Below are some of our highlights from this cycle. Igalia Changelog V3D and VC4 fixes and improvements The V3D and VC4 drivers saw several robustness and maintainability improvements this cycle. As part of the Raspberry Pi 5 upstreaming effort, we added the V3D GPU device-tree node for BCM2712, enabling V3D support on fully upstream kernels. We also continued improving the V3D interface by migrating performance monitor tracking from IDR to XArray in both V3D and VC4. In parallel, a series of fixes addressed reference counting, scheduler integration, cache synchroniztion, and error handling issues in V3D’s compute intrastructure, improving the stability of CPU job execution paths. On the power-management side, we refined Raspberry Pi firmware clock handling by moving clock rate management into prepare/unprepare callbacks. These changes reduce unnecessary power consumption for clock users and lay the groundwork for V3D Runtime PM support, which will land in the next kernel release. AMDGPU User Queue Cleanup On the AMD side, we continued our efforts to clean up the user queue submission code. This cycle, we focused on removing resource leaks in the wait and signal ioctls, consolidating exit paths to prevent deadlocks, and ensuring that userspace cannot trivially trigger kernel warnings. These changes improve the overall security and stability of the amdgpu driver when interacting with complex user-space workloads. AuxCCS Support for Intel Xe Driver We finalized Alderlake support for AuxCCS (Auxiliary Color Compression Support) in the Intel Xe driver. This includes adding support for frame buffer modifiers, ensuring proper invalidation of auxiliary tables, and quiescing memory traffic during cache invalidation. These changes reduce the memory bandwith consumed by UI composition and graphical rendering, improving power efficiency and overall performance on this platform. DMA-Fence improvements for module unload scenarios Building on the cross-system dma-fence work we did for the 6.17 kernel release, we helped upstream extend this protection to module unload scenarios. We’ve also fixed warnings related to __rcu annotations to keep the codebase clean and static-analysis friendly. Debugging Infrastructure improvements For developers relying on pstore and ftrace, Linux 7.1 brings important fixes. Previously, systems with KASLR enabled would cause offsets saved in debug sessions to be bogus when decoded. This has been fixed along with other pstore improvements, and an improved debugfs interface for the reserve_mem parameter. These changes should provide better visibility into memory reservation states and improve the overall state of these subsystems for debugging kernel crashes or hangs. Another round of general fixes and cleanup Beyond the major subsystem updates, Igalia also helped with several “odd fixes” and general maintenance work to keep the kernel healthy. In the filesystems area, we fixed a null pointer dereference in JFS during unmount and resolved an uninitialized value issue in the FUSE layer. For Bluetooth, we reworked the reset path in the HCI core to ensure clean adapter teardown, preventing protocol issues caused by pending work. On the peripherals side, we implemented proper URB tracking in the libertas Wi-Fi driver to prevent use-after-free issues, and added stricter validation checks for USBTMC endpoints. We also investigated a data race in the Real Time Clock (RTC) subsystem reported by syzbot and detected by the Kernel Concurrency Sanitizer (KCSAN). The race was determined to be safe, and the code was annotated to prevent future false-positive reports. Finally, we’ve improved documentation for ttm_bo_swapout and implemented the corresponding KUnit tests. Authored (76) Alberto Garcia PM: hibernate: return -ENODATA if the snapshot image is not loaded Guilherme G. Piccoli pstore/ramoops: Remove useless memblock header pstore/ramoops: Fix ECC parameter help text pstore/ftrace: Keep ftrace module parameter and debugfs switch in sync memblock: Print out errors on reserve_mem parser memblock: Add reserve_mem debugfs info pstore/ftrace: Factor KASLR offset in the core kernel instruction addresses ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED Heitor Alves de Siqueira wifi: libertas: use USB anchors for tracking in-flight URBs wifi: libertas: don’t kill URBs in interrupt context usb: usbtmc: check URB actual_length for interrupt-IN notifications usb: usbtmc: reject interrupt endpoints with small wMaxPacketSize Bluetooth: hci_core: Rework hci_dev_do_reset() to use hci_sync functions Bluetooth: hci_sync: Set HCI_CMD_DRAIN_WORKQUEUE during device close Bluetooth: hci_sync: Reset device counters in hci_dev_close_sync() Helen Koike jfs: hold LOG_LOCK on umount to avoid null-ptr-deref debugobjects: Do not fill_pool() if pi_blocked_on Luis Henriques fuse: drop unnecessary argument from fuse_lookup_init() fuse: fix uninit-value in fuse_dentry_revalidate() Mauricio Faria de Oliveira rtc: add data_race() in rtc_dev_poll() Maíra Canal drm/panel: ilitek-ili9882t: Select DRM_DISPLAY_DSC_HELPER drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking drm/v3d: Handle error from drm_sched_entity_init() drm/v3d: Remove dedicated fence_lock arm64: dts: broadcom: bcm2712: Add V3D device node clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks pmdomain: bcm: bcm2835-power: Replace open-coded polling with readl_poll_timeout_atomic() clk: bcm: rpi: Mark VEC clock as CLK_IGNORE_UNUSED drm/etnaviv: Fix armed job not being pushed to the DRM scheduler drm/v3d: Fix use-after-free of CPU job query arrays on error path drm/v3d: Release indirect CSD GEM reference on CPU job free drm/v3d: Wait for pending L2T flush before cleaning caches drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups drm/v3d: Skip CSD when it has zeroed workgroups drm/v3d: Fix global performance monitor reference counting Melissa Wen drm/drm_atomic: duplicate colorop states if plane color pipeline in use drm/colorop: make lut(1/3)d_interpolation props correctly behave as mutable drm/atomic: track individual colorop updates drm/amd/display: use plane color_mgmt_changed to track colorop changes Thadeu Lima de Souza Cascardo drm/ttm: document that ttm_bo_swapout deals with pages drm/ttm/tests: add a test to exercise ttm_bo_swapout cgroup/dmem: remove region parameter from dmemcg_parse_limit drm/vram: remove DRM_VRAM_MM_FILE_OPERATIONS from docs Tvrtko Ursulin drm/xe/xelp: Fix Wa_18022495364 dma-fence: Fix sparse warnings due __rcu annotations drm/amdgpu: Remove a few holes from struct amdgpu_ctx drm/amdgpu: Remove duplicate struct member drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_signal_ioctl drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings drm/amdgpu/userq: Consolidate wait ioctl exit path drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_signal_ioctl drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_wait_ioctl drm/amdgpu: Reject impossible entities early drm/amdgpu: Remove redundant missing hw ip handling drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC drm/xe: Use write-combine mapping when populating DPT drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS drm/xe/xelp: Wait for AuxCCS invalidation to complete drm/xe: Move aux table invalidation to ring ops drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt drm/xe/display: Change write_dpt_remapped_tiled function signature drm/xe/display: Respect remapped plane alignment drm/xe/display: Add support for AuxCCS drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P drm/gem: Improve drm_gem_objects_lookup() kerneldoc dma-fence: Silence sparse warning in dma_fence_describe drm/xe/xelp: Fix Wa_18022495364 Co-developed (4) Maíra Canal drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats Reviewed (45) Iago Toral Quiroga drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking drm/v3d: Handle error from drm_sched_entity_init() drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats drm/v3d: Remove dedicated fence_lock drm/v3d: Fix use-after-free of CPU job query arrays on error path drm/v3d: Release indirect CSD GEM reference on CPU job free drm/v3d: Wait for pending L2T flush before cleaning caches drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups drm/v3d: Skip CSD when it has zeroed workgroups drm/v3d: Fix global performance monitor reference counting Maíra Canal drm/vc4: Switch private_obj initialization to atomic_create_state drm/vc4: hdmi: replace use of system_wq with system_percpu_wq drm/vc4: Test for imported buffers with drm_gem_is_imported() drm/atomic: Remove state argument to drm_atomic_private_obj_init Melissa Wen drm/amd/display: Use mpc.preblend flag to indicate 3D LUT drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT drm/amdgpu: Fix kernel-doc comments for some LUT properties drm/amd/display: Fix gamma 2.2 colorop TFs Rodrigo Siqueira drm/amd/display: Use dce_audio_create for DCE 6 drm/amd/display: Delete unused dce_clk_mgr.c drm/amd/display: Remove unused dce60_clk_mgr register definitions drm/amd/display: Handle DCE 6 in dce_clk_mgr.c Tvrtko Ursulin drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking dma-buf: add dma_fence_was_initialized function v2 drm/gem: Make drm_gem_objects_lookup() self-cleaning on failure v6 dma-buf: protected fence ops by RCU v8 dma-buf: detach fence ops on signal v3 dma-buf: abstract fence locking v2 dma-buf/selftests: test RCU ops and inline lock v2 dma-buf: use inline lock for the stub fence v2 dma-buf: use inline lock for the dma-fence-array dma-buf: use inline lock for the dma-fence-chain drm/tests: Mark slow tests as slow drm/i915: Test for imported buffers with drm_gem_is_imported() drm/ttm/tests: add a test to exercise ttm_bo_swapout drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_signal_ioctl drm/amdgpu/userq: fix dma_fence refcount underflow in userq path drm/amdgpu: Move amdgpu_vm_is_bo_always_valid() before first use drm/i915/gem: Fix phys BO pread/pwrite with offset Tested (4) Guilherme G. Piccoli pstore: fix ftrace dump, when ECC is enabled Melissa Wen ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED Umang Jain ASoC: SOF: amd: fix for ipc flags check ASoC: SOF: amd: set ipc flags to zero Reported (1) Tvrtko Ursulin drm/ttm: document that ttm_bo_swapout deals with pages Maintainer SoB (7) Christian Gmeiner drm/etnaviv: Fix armed job not being pushed to the DRM scheduler Maíra Canal drm/vc4: hdmi: replace use of system_wq with system_percpu_wq drm/vc4: platform_get_irq_byname() returns an int drm/v3d: Reject empty multisync extension to prevent infinite loop drm/vc4: fix krealloc() memory leak Melissa Wen drm/colorop: Remove read-only comments from interpolation fields Tvrtko Ursulin Revert “drm/i915/backlight: Remove try_vesa_interface”]]></summary></entry><entry><title type="html">Igalia at Open Source Summit North America 2026</title><link href="https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026.html" rel="alternate" type="text/html" title="Igalia at Open Source Summit North America 2026" /><published>2026-05-14T00:00:00+00:00</published><updated>2026-05-14T00:00:00+00:00</updated><id>https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026</id><content type="html" xml:base="https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026.html"><![CDATA[<p>Next week, <a href="https://events.linuxfoundation.org/open-source-summit-north-america/">Open Source Summit North America 2026</a> takes place in Minneapolis, MN, on May 18–20, with the Embedded Linux Conference running alongside it.</p>

<p>Organized by the Linux Foundation, OSS NA is a vendor-neutral gathering that pulls together maintainers, developers, and community leaders from across the open source ecosystem. It also acts as an umbrella for a number of co-located events — including cdCon, the Zephyr Project Developer Summit, and the PX4 Developer Summit — with tracks spanning Linux, embedded systems, cloud, AI and data, safety-critical software, and digital trust.</p>

<p><a href="https://www.igalia.com/team/msanchez">Mario Sánchez Prada</a>, from Igalia’s WebKit team, will give a talk titled <a href="https://osselcna2026.sched.com/event/2JQqg/">“Engineering Quality in a Fast-Moving Open Source Project: WPE WebKit”</a> on Monday, May 18 at 3:35pm in Room 208C+D. Using WPE WebKit (one of the most prominent projects we maintain) as a case study, he’ll walk through the CI and QA infrastructure, testing strategies, and day-to-day processes that keep upstream development moving while still serving the needs of downstream deployments. He’ll also make the case for treating quality as something you build in continuously, rather than something bolted on at the end.</p>

<p>If you’ll be in Minneapolis, we hope to see you there!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="webkit" /><category term="silicon" /><category term="open-source" /><category term="embedded-linux" /><summary type="html"><![CDATA[Next week, Open Source Summit North America 2026 takes place in Minneapolis, MN, on May 18–20, with the Embedded Linux Conference running alongside it. Organized by the Linux Foundation, OSS NA is a vendor-neutral gathering that pulls together maintainers, developers, and community leaders from across the open source ecosystem. It also acts as an umbrella for a number of co-located events — including cdCon, the Zephyr Project Developer Summit, and the PX4 Developer Summit — with tracks spanning Linux, embedded systems, cloud, AI and data, safety-critical software, and digital trust. Mario Sánchez Prada, from Igalia’s WebKit team, will give a talk titled “Engineering Quality in a Fast-Moving Open Source Project: WPE WebKit” on Monday, May 18 at 3:35pm in Room 208C+D. Using WPE WebKit (one of the most prominent projects we maintain) as a case study, he’ll walk through the CI and QA infrastructure, testing strategies, and day-to-day processes that keep upstream development moving while still serving the needs of downstream deployments. He’ll also make the case for treating quality as something you build in continuously, rather than something bolted on at the end. If you’ll be in Minneapolis, we hope to see you there!]]></summary></entry></feed>