Re: [linus:master] [x86] 4817f70c25: stress-ng.mmapaddr.ops_per_sec 63.0% regression

From: David Hildenbrand
Date: Tue Jan 28 2025 - 06:40:04 EST


On 28.01.25 12:31, Peter Zijlstra wrote:
On Tue, Jan 28, 2025 at 11:05:17AM +0100, David Hildenbrand wrote:
On 28.01.25 10:57, kernel test robot wrote:

hi, Qi Zheng,

this is more a FYI report than a regression report.

by 4817f70c25, parent/4817f70c25 configs have below diff,

--- /pkg/linux/x86_64-rhel-9.4/gcc-12/718b13861d2256ac95d65b892953282a63faf240/.config 2025-01-27 16:20:43.419181382 +0800
+++ /pkg/linux/x86_64-rhel-9.4/gcc-12/4817f70c25b63ee5e6fd42d376700c058ae16a96/.config 2025-01-26 09:27:16.848625105 +0800
@@ -1236,6 +1236,8 @@ CONFIG_IOMMU_MM_DATA=y
CONFIG_EXECMEM=y
CONFIG_NUMA_MEMBLKS=y
CONFIG_NUMA_EMU=y
+CONFIG_ARCH_SUPPORTS_PT_RECLAIM=y
+CONFIG_PT_RECLAIM=y

#
# Data Access Monitoring


this report seems show the impact of PT_CLAIM feature for this stress-ng case.

To us, this is not a code logic regression, but is kind of 'regression' from a
new feature. anyway, below full report just FYI.

mmapaddr test case seems to mostly do mmap+munmap. No obvious sign of
MADV_DONTNEED, unless buried somewhere :)

So either

(1) The series is reclaiming page tables outside of MADV_DONTNEED, which
it shouldn't -- in particular not during munmap() where that happens
already using the "ordinary" page table removal code for removed
VMAs.

(2) This is the effect of MMU_GATHER_RCU_TABLE_FREE that gets selected?


I recall a recent series to select MMU_GATHER_RCU_TABLE_FREE on x86
unconditionally (@Peter, @Rik).

Those changes should not have made it to Linus yet.

/me updates git and checks...

nope, nothing changed there ... yet

Sorry, I wasn't quite clear. CONFIG_PT_RECLAIM made it upstream, which has "select MMU_GATHER_RCU_TABLE_FREE" in kconfig.

So I'm wondering if the degradation we see in this report is due to MMU_GATHER_RCU_TABLE_FREE being selected by CONFIG_PT_RECLAIM, and we'd get the same result (degradation) when unconditionally enabling MMU_GATHER_RCU_TABLE_FREE.

--
Cheers,

David / dhildenb