From: David Hildenbrand <david@redhat.com>
To: kernel test robot <oliver.sang@intel.com>
Cc: oe-lkp@lists.linux.dev, lkp@intel.com,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Andy Lutomirks^H^Hski <luto@kernel.org>,
Borislav Betkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Jonathan Corbet <corbet@lwn.net>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Lance Yang <ioworker0@gmail.com>,
Liam Howlett <liam.howlett@oracle.com>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Matthew Wilcow <willy@infradead.org>,
Michal Koutn <mkoutny@suse.com>,
Muchun Song <muchun.song@linux.dev>, tejun heo <tj@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Vlastimil Babka <vbabka@suse.cz>,
Zefan Li <lizefan.x@bytedance.com>,
linux-mm@kvack.org
Subject: Re: [linus:master] [mm/rmap] 6af8cb80d3: vm-scalability.throughput 7.8% regression
Date: Wed, 16 Apr 2025 10:07:20 +0200 [thread overview]
Message-ID: <b7d2f1dd-d181-4821-ac05-b000818daf91@redhat.com> (raw)
In-Reply-To: <202504152235.188dcce9-lkp@intel.com>
On 16.04.25 09:01, kernel test robot wrote:
>
>
> Hello,
>
> kernel test robot noticed a 7.8% regression of vm-scalability.throughput on:
>
>
> commit: 6af8cb80d3a9a6bbd521d8a7c949b4eafb7dba5d ("mm/rmap: basic MM owner tracking for large folios (!hugetlb)")
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master
>
>
> testcase: vm-scalability
> config: x86_64-rhel-9.4
> compiler: gcc-12
> test machine: 256 threads 2 sockets GENUINE INTEL(R) XEON(R) (Sierra Forest) with 128G memory
> parameters:
>
> runtime: 300s
> size: 8T
> test: anon-cow-seq
> cpufreq_governor: performance
>
This should be the scenario with THP enabled. At first, I thought the
problem would be contention on the per-folio spinlock, but what makes me
scratch my head is the following:
13401 -16.5% 11190 proc-vmstat.thp_fault_alloc
... 3430623 -16.5% 2864565 proc-vmstat.thp_split_pmd
If we allocate less THP, performance of the benchmark will obviously be
worse with less THPs.
We allocated 2211 less THPs and had 566058 less THP PMD->PTE remappings.
566058 / 2211 = 256, which is exactly the number of threads ->
vm-scalability fork'ed child processes.
So it was in fact the benchmark that was effectively using 16.5% less THPs.
I don't see how this patch would affect the allocation of THPs in any
way (and I don't think it does).
Regarding possible contention on the spinlock, I was already expecting a
slight hit once we have that many threads over multiple sockets. From my
cover letter:
"
Similarly, running these benchmarks with 2 MiB THPs enabled on the
AmpereOne A192-32X with 192 cores, I got < 1% difference with < 1%
stdev, which is nice.
So far, I did not get my hands on a similarly large system with multiple
sockets.
"
And further:
"
If it ever becomes a problem we could either investigate improving the
locking, or simply stopping the MM tracking once there are "too many
mappings" and simply assume that the folio is "mapped shared" until it
was freed.
[...] Adding that logic to stop adds more code to the hot path, so I
avoided that for now.
"
So while I am planning on looking into optimizing the locking at some
point, it has low priority for me because (a) it adds more complexity
(b) has the potential to affect the hot path (not shared) and (c) this
benchmark in that scale is not a compelling argument.
--
Cheers,
David / dhildenb
next prev parent reply other threads:[~2025-04-16 8:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 7:01 kernel test robot
2025-04-16 8:07 ` David Hildenbrand [this message]
2025-04-16 9:16 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b7d2f1dd-d181-4821-ac05-b000818daf91@redhat.com \
--to=david@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=hannes@cmpxchg.org \
--cc=ioworker0@gmail.com \
--cc=jannh@google.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=liam.howlett@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan.x@bytedance.com \
--cc=lkp@intel.com \
--cc=lorenzo.stoakes@oracle.com \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=mkoutny@suse.com \
--cc=muchun.song@linux.dev \
--cc=oe-lkp@lists.linux.dev \
--cc=oliver.sang@intel.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox