News: 0001569864

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 6.16.1 Fixes A Large Intel GPU Driver Performance Regression - Up To 30%

([Intel] 3 Hours Ago Up To 30% Hit)


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 [1]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 [2]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 [3]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 [4]kernel.org .



[1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14645

[2] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13845

[3] https://lore.kernel.org/all/f7e64e99a3a87a8144cc6b2f1dddf7a89c12ce44.1753926601.git.baolin.wang@linux.alibaba.com/T/#u

[4] https://kernel.org/



phoronix

"The History of every major Galactic Civilization tends to pass through
three distinct and recognizable phases, those of Survival, Inquiry and
Sophistication, otherwise known as the How, Why and Where phases.
"For instance, the first phase is characterized by the question 'How can
we eat?' the second by the question 'Why do we eat?' and the third by
the question 'Where shall we have lunch?'"
-- Hitchhiker's Guide to the Galaxy