Hi David,
On 7/20/2026 10:44 AM, David Hildenbrand (Arm) wrote:
> you give no real motivation and evaluation why this is required or
> why this gives the user any benefit.
> A SPLIT with an explicit order is not really want we want and it
> does not fit the existing primitives.
Thank you for the direct feedback. Let me explain where this came
from -- the cover letter should have included this context.
This started from a real problem at Sangfor. The scenario is:
KVM-QEMU virtualization on Kunpeng 920, with KVM guest memory
backed by tmpfs shared mappings (THP=always on the host). An
Oracle database runs inside the VM. DAMON monitors the KVM
process on the host to measure the hot-memory ratio.
The KVM process allocates and uses a large amount of memory.
Under the same workload, DAMON reports a significantly higher
hot-memory ratio with THP enabled versus THP disabled. Direct
tmpfs write tests inside the VM -- touching at 4K and 2M
strides -- show a clear gap between the two cases.
DAMON parameters used:
operations=vaddr
monitoring_attrs/nr_regions/min=500
monitoring_attrs/nr_regions/max=2000
monitoring_attrs/intervals/sample_us=500000
monitoring_attrs/intervals/aggr_us=20000000
monitoring_attrs/intervals/update_us=60000000
schemes/0/action=stat
schemes/0/access_pattern/nr_accesses/min=1
schemes/0/access_pattern/nr_accesses/max=max
The underlying issue is that under PMD-mapped THP, DAMON's monitoring
granularity is coarser than the actual working set -- a single
Accessed bit covers 512 base pages. Before SJ's probe infrastructure
arrives, there is a gap: DAMON cannot distinguish hot sub-pages from
cold ones within a single THP.
Split is one possible mechanism to bridge that gap -- by dismantling
the PMD mapping, each base page gets its own PTE Accessed bit and
DAMON recovers fine-grain monitoring. It is not intended to be a
permanent API, and certainly not "the opposite of collapse".
I did not write this scenario into the cover letter because our test
results do not yet show a clear quantitative benefit worth claiming,
and I did not want to oversell. Without the context, I understand it
looks like I randomly proposed a new primitive -- that was not the
intention.
SJ acknowledged [1] that the monitoring problem under THP is real.
My RFC is a concrete proposal to start the discussion. If split with
an explicit order is not the right primitive, I would appreciate your
thoughts on what the correct DAMOS abstraction for this should be.
[1] https://lore.kernel.org/[email protected]/
Thanks,
Lian Wang