Re: [patch v5] mm: lru_cache_disable: replace work queue synchronization with synchronize_rcu

From: Michael Larabel
Date: Sat May 28 2022 - 19:23:50 EST


On 5/28/22 16:18, Andrew Morton wrote:
On Thu, 28 Apr 2022 15:00:11 -0300 Marcelo Tosatti <mtosatti@xxxxxxxxxx> wrote:

On Thu, Mar 31, 2022 at 03:52:45PM +0200, Borislav Petkov wrote:
On Thu, Mar 10, 2022 at 10:22:12AM -0300, Marcelo Tosatti wrote:
...

Someone pointed me at this:

https://www.phoronix.com/scan.php?page=news_item&px=Linux-518-Stress-NUMA-Goes-Boom

which says this one causes a performance regression with stress-ng's
NUMA test...
Michael,

This is probably do_migrate_pages that is taking too long due to
synchronize_rcu().

Switching to synchronize_rcu_expedited() should probably fix it...
Can you give it a try, please?
I guess not.

Is anyone else able to demonstrate a stress-ng performance regression
due to ff042f4a9b0508? And if so, are they able to try Marcelo's
one-liner?


Apologies I don't believe I got the email previously (or if it ended up in spam or otherwise overlooked) so just noticed this thread now...

I have the system around and will work on verifying it can reproduce still and can then test the patch, should be able to get it tomorrow.

Thanks and sorry about the delay.

Michael




diff --git a/mm/swap.c b/mm/swap.c
index bceff0cb559c..04a8bbf9817a 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -879,7 +879,7 @@ void lru_cache_disable(void)
* lru_disable_count = 0 will have exited the critical
* section when synchronize_rcu() returns.
*/
- synchronize_rcu();
+ synchronize_rcu_expedited();
#ifdef CONFIG_SMP
__lru_add_drain_all(true);
#else