That Radeon Performance Regression For R9 290 Might Be Nailed
Present in the Linux 4.7 kernel and thus far in the Linux 4.8 development cycle has been a significant performance regression affecting the Radeon R9 290 and other select GPUs. This performance drop has been very noticeable and I've seen it since Linux 4.7-rc1 while finally an independent user went through the process of bisecting the kernel to find the problematic commit of this hefty performance drop.
If you haven't seen my Linux 4.7~4.8 benchmarks with my Radeon R9 290 as one of the cards that is affected:
That's one example showing how dramatic the R9 290 performance drop can be compared to other hardware... Last place finish.
Or another example of tests I did back in May comparing Linux 4.6 to early Linux 4.7 development code:
It's quite the regression with affected hardware...
But even with the severity of the regression, it's lived on for months and into the stable Linux 4.7 release. AMD developers don't appear to have any of the problematic hardware, I didn't bisect the regression myself due to my busy schedule and busy systems (even though most of the bisecting can be automated by PTS), and not until now did anyone else bisect the problem now that more users are switching to Linux 4.7.
This regression has also baffled AMD developers since they didn't make any power management related changes for the R9 290 on Linux 4.7 at all. Thanks to a independent user named Kai, he nailed the first bad commit down to: "drm/radeon: Support DRM_MODE_PAGE_FLIP_ASYNC."
Adding DRM_MODE_PAGE_FLIP_ASYNC support is what strangely causes the select AMD GPUs to fall off a performance cliff. Details via this bug report but so far no AMD developer has commented on the finding. It was also pointed out that this same commit is what's attributed to another performance regression bug report.
Hopefully these performance regressions will be solved in time for Linux 4.8 (or at least reverting this DRM mode page flip a-sync patch) and backported to stable kernel releases.
If you haven't seen my Linux 4.7~4.8 benchmarks with my Radeon R9 290 as one of the cards that is affected:
That's one example showing how dramatic the R9 290 performance drop can be compared to other hardware... Last place finish.
Or another example of tests I did back in May comparing Linux 4.6 to early Linux 4.7 development code:
It's quite the regression with affected hardware...
But even with the severity of the regression, it's lived on for months and into the stable Linux 4.7 release. AMD developers don't appear to have any of the problematic hardware, I didn't bisect the regression myself due to my busy schedule and busy systems (even though most of the bisecting can be automated by PTS), and not until now did anyone else bisect the problem now that more users are switching to Linux 4.7.
This regression has also baffled AMD developers since they didn't make any power management related changes for the R9 290 on Linux 4.7 at all. Thanks to a independent user named Kai, he nailed the first bad commit down to: "drm/radeon: Support DRM_MODE_PAGE_FLIP_ASYNC."
Adding DRM_MODE_PAGE_FLIP_ASYNC support is what strangely causes the select AMD GPUs to fall off a performance cliff. Details via this bug report but so far no AMD developer has commented on the finding. It was also pointed out that this same commit is what's attributed to another performance regression bug report.
Hopefully these performance regressions will be solved in time for Linux 4.8 (or at least reverting this DRM mode page flip a-sync patch) and backported to stable kernel releases.
54 Comments