From: SJ Park <sj@kernel.org>
To: "Zi Yan" <ziy@nvidia.com>
Cc: SJ Park <sj@kernel.org>, "Lian Wang" <lianux.mm@gmail.com>,
david@kernel.org, damon@lists.linux.dev, linux-mm@kvack.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
ljs@kernel.org, liam@infradead.org, vbabka@kernel.org,
rppt@kernel.org, surenb@google.com, mhocko@suse.com,
npache@redhat.com, baolin.wang@linux.alibaba.com,
ryan.roberts@arm.com, daichaobing@sangfor.com.cn,
wangkefeng.wang@huawei.com, gutierrez.asier@huawei-partners.com,
zengheng4@huawei.com, kasong@tencent.com, corbet@lwn.net,
skhan@linuxfoundation.org, linux-doc@vger.kernel.org,
linux-kselftest@vger.kernel.org, lianux.wang@processmission.com,
kunwu.chan@linux.dev
Subject: Re: [RFC PATCH v3 0/3] mm/damon: introduce DAMOS_SPLIT action
Date: Mon, 20 Jul 2026 17:47:55 -0700 [thread overview]
Message-ID: <20260721004755.93824-1-sj@kernel.org> (raw)
In-Reply-To: <DK3MYJN8KSZ5.1U0STUJGETSJH@nvidia.com>
Hello,
On Mon, 20 Jul 2026 15:12:50 -0400 "Zi Yan" <ziy@nvidia.com> wrote:
> On Mon Jul 20, 2026 at 5:56 AM EDT, Lian Wang wrote:
> > 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
Thank you for sharing your detailed setup. It is helpful. Btw, have you
considered using intervals auto-tuning [1]?
> > 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.
Thank you for clarifying the motivation of this series.
To me, it's still unclear what is the real user impact, though. I mean, I can
understand DAMON suddenly reporting more hot memory can surprise some people.
But, why that matters in what extent for your use case? You may not run DAMON
on your system only to read the information. You may run it to do something
beneficial using the information. What is that, and how badly degraded DAMON's
monitoring results affect it?
Overall, unless the real impact is serious, splitting huge pages only for
better DAMON monitoring sounds like not a good tradeoff. You will increase
DAMON overhead and lose THP benefits in some extent.
> > It is not intended to be a
> > permanent API, and certainly not "the opposite of collapse".
Once it is added to the kernel, we have to support it for long term. Let's not
introduce something for only temporal use.
>
> If you just want PTE level access bit information, why not split PMD
> mapping instead of the THP itself?
>
> In addition, the issue is about access monitoring granularity in DAMON,
> why should user care and know about THP split operations? I would expect
> DAMON detects the inability of getting fine grain access information and
> split the PMD mapping itself instead of a user initiated DAMON_SPLIT. If
> that is not possible with DAMON, an alternative is to provide something
> more generic like DAMON_SAMPLE, which does the split under the hood,
> instead of exposing MM internal operations.
Thank you for good opinion, Zi. I agree all the points. That said, I still
want to understand the problem first.
>
> >
> > 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.
Yes, the behavior is real and I agree your theory of how it happens. I don't
clearly understand if it is really bad in what situations, though.
> > 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.
Only after understanding what is the problem and how bad it is, we will be able
to think of different approaches and assess those. To me, it is still unclear
what is the real problem and how bad it is. I will wait for your further
clarifications of those.
> >
> > [1] https://lore.kernel.org/20260620203915.82947-1-sj@kernel.org/
[1] https://origin.kernel.org/doc/html/latest/mm/damon/design.html#monitoring-intervals-auto-tuning
Thanks,
SJ
[...]
next prev parent reply other threads:[~2026-07-21 0:47 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-20 3:03 [RFC PATCH v3 0/3] mm/damon: introduce DAMOS_SPLIT action Lian Wang
2026-07-20 3:03 ` [RFC PATCH v3 1/3] " Lian Wang
2026-07-20 9:47 ` Gutierrez Asier
2026-07-20 10:02 ` Lian Wang
2026-07-20 3:03 ` [RFC PATCH v3 2/3] mm/damon/vaddr: implement DAMOS_SPLIT handler Lian Wang
2026-07-20 3:03 ` [RFC PATCH v3 3/3] selftests/damon: add functional test for DAMOS_SPLIT Lian Wang
2026-07-20 9:28 ` [RFC PATCH v3 0/3] mm/damon: introduce DAMOS_SPLIT action Gutierrez Asier
2026-07-20 9:43 ` Lian Wang
2026-07-20 9:44 ` David Hildenbrand (Arm)
2026-07-20 9:56 ` Lian Wang
2026-07-20 19:12 ` Zi Yan
2026-07-21 0:47 ` SJ Park [this message]
2026-07-21 1:34 ` Lian Wang
2026-07-21 1:08 ` SJ Park
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=20260721004755.93824-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=corbet@lwn.net \
--cc=daichaobing@sangfor.com.cn \
--cc=damon@lists.linux.dev \
--cc=david@kernel.org \
--cc=gutierrez.asier@huawei-partners.com \
--cc=kasong@tencent.com \
--cc=kunwu.chan@linux.dev \
--cc=liam@infradead.org \
--cc=lianux.mm@gmail.com \
--cc=lianux.wang@processmission.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=npache@redhat.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=skhan@linuxfoundation.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=wangkefeng.wang@huawei.com \
--cc=zengheng4@huawei.com \
--cc=ziy@nvidia.com \
/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