A Fix Is On The Way For A Previously-Reported Linux 5.18 Performance Regression
Back during the Linux 5.18 merge window in March I wrote about a big NUMA benchmark performance regression I noticed and bisected. It turns out there has been a fix for it in patch form albeit I only noticed this weekend and now was able to successfully test and verify the fix. That fix is now working its way to the mainline kernel.
That Linux 5.18 regression appeared as a big NUMA regression within Stress-NG and I tracked it down to the Linux 5.18 memory management changes and in particular a lru_cache_disable change.
Meanwhile last week that MM change was also attributed to a big Raspberry Pi regression where a test went from taking 1.5 seconds to over 7 minutes.
It turns out there has been a tentative patch by Red Hat's Marcelo Tosatti to address the regression since end of March, but unfortunately I hadn't noticed the email for testing the patch. Fortunately, there was another ping this weekend that went through and was able to run some benchmarks.
Indeed, that NUMA regression is now fixed with this patch.
The patch is just a one-liner changing a call from using synchronize_rcu() to synchronize_rcu_expedited() and is now on its way to mainline. That patch is now working its way to the mainline kernel via Andrew Morton's MM patches and should be back-ported for Linux 5.18.
That Linux 5.18 regression appeared as a big NUMA regression within Stress-NG and I tracked it down to the Linux 5.18 memory management changes and in particular a lru_cache_disable change.
Meanwhile last week that MM change was also attributed to a big Raspberry Pi regression where a test went from taking 1.5 seconds to over 7 minutes.
It turns out there has been a tentative patch by Red Hat's Marcelo Tosatti to address the regression since end of March, but unfortunately I hadn't noticed the email for testing the patch. Fortunately, there was another ping this weekend that went through and was able to run some benchmarks.
Indeed, that NUMA regression is now fixed with this patch.
The patch is just a one-liner changing a call from using synchronize_rcu() to synchronize_rcu_expedited() and is now on its way to mainline. That patch is now working its way to the mainline kernel via Andrew Morton's MM patches and should be back-ported for Linux 5.18.
3 Comments