Released on Friday were the Linux 6.16.1 and Linux 6.15.10 stable kernel point releases. Notable there is an Intel i915 kernel graphics driver performance regression fix with some users having reported as much as a 30% performance hit on prior Linux kernel versions.
Opened one month ago was a bug report over a performance regression observed for a Core Ultra 7 155H “Meteor Lake” laptop seeing a 13% performance hit for Unigine Superposition and other regressions in the 1% to 10% range.
There was also another bug report from five months ago reporting a regression up to 30% in GPU texture bandwidth testing and other 3% to 14% performance drops.
The good news is this regression is now fixed by this patch that made it into the stable Linux kernel releases on Friday:
“After commit acd7ccb284b8 (“mm: shmem: add large folio support for tmpfs”), we extend the ‘huge=” option to allow any sized large folios for tmpfs, which means tmpfs will allow getting a highest order hint based on the size of write() and fallocate() paths, and then will try each allowable large order.
However, when the i915 driver allocates shmem memory, it doesn”t provide hint information about the size of the large folio to be allocated, resulting in the inability to allocate PMD-sized shmem, which in turn affects GPU performance.
Patryk added:
: In my tests, the performance drop ranges from a few percent up to 13% in Unigine Superposition under heavy memory usage on the CPU Core Ultra 155H with the Xe 128 EU GPU. Other users have reported performance impact up to 30% on certain workloads. Please find more in the regressions reports:
: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14645
: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13845
:
: I believe the change should be backported to all active kernel branches after version 6.12.To fix this issue, we can use the inode’s size as a write size hint in shmem_read_folio_gfp() to help allocate PMD-sized large folios.”
That patch was initially merged for Linux 6.14. At least now for those on Linux 6.15.10 and Linux 6.16.1 (or Linux 6.17 Git), the regression should be fixed. The latest stable kernel point releases can be found via kernel.org.