[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cc6d6e0be9b4fb61228f42ad82a057f60a1c1e12.camel@surriel.com>
Date: Tue, 03 Dec 2024 15:07:36 -0500
From: Rik van Riel <riel@...riel.com>
To: Dave Hansen <dave.hansen@...el.com>, Mathieu Desnoyers
<mathieu.desnoyers@...icios.com>
Cc: kernel test robot <oliver.sang@...el.com>, oe-lkp@...ts.linux.dev,
lkp@...el.com, linux-kernel@...r.kernel.org, x86@...nel.org, Ingo Molnar
<mingo@...nel.org>, Linus Torvalds <torvalds@...ux-foundation.org>, Peter
Zijlstra <peterz@...radead.org>, Mel Gorman <mgorman@...e.de>
Subject: Re: [PATCH v2] x86,mm: only trim the mm_cpumask once a second
On Tue, 2024-12-03 at 12:05 -0800, Dave Hansen wrote:
> On 12/3/24 11:48, Rik van Riel wrote:
> > Sending TLB flush IPIs to CPUs that are in the mm_cpumask, but no
> > longer running the program causes a regression in the will-it-scale
> > tlbflush2 test. This test is contrived, but a large regression here
> > might cause a small regression in some real world workload.
>
> The patch seems OK in theory, but this explanation doesn't sit right
> with me.
>
> Most of the will-it-scale tests including tlbflush2 have long-lived
> CPU-bound threads. They shouldn't schedule out much at all during the
> benchmark. I don't see how they could drive a significant increase in
> IPIs to cause a 10%+ regression.
>
> I'd much prefer that we understand the regression in detail before
> throwing more code at fixing it.
>
The tlb_flush2 threaded test does not only madvise in a
loop, but also mmap and munmap from inside every thread.
This should create massive contention on the mmap_lock,
resulting in threads going to sleep while waiting in
mmap and munmap.
https://github.com/antonblanchard/will-it-scale/blob/master/tests/tlb_flush2.c
--
All Rights Reversed.
Powered by blists - more mailing lists