[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <134065a4-0446-bbbc-fca8-59f32798cf08@MichaelLarabel.com>
Date: Sat, 28 May 2022 17:54:51 -0500
From: Michael Larabel <Michael@...haelLarabel.com>
To: Andrew Morton <akpm@...ux-foundation.org>,
Marcelo Tosatti <mtosatti@...hat.com>
Cc: Borislav Petkov <bp@...en8.de>, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, Minchan Kim <minchan@...nel.org>,
Matthew Wilcox <willy@...radead.org>,
Mel Gorman <mgorman@...hsingularity.net>,
Nicolas Saenz Julienne <nsaenzju@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
"Paul E. McKenney" <paulmck@...nel.org>
Subject: Re: [patch v5] mm: lru_cache_disable: replace work queue
synchronization with synchronize_rcu
On 5/28/22 16:18, Andrew Morton wrote:
> On Thu, 28 Apr 2022 15:00:11 -0300 Marcelo Tosatti <mtosatti@...hat.com> 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
>>
>>
Powered by blists - more mailing lists