From: Shakeel Butt <shakeelb@google.com>
To: SeongJae Park <sjpark@amazon.com>
Cc: SeongJae Park <sjpark@amazon.de>,
Jonathan.Cameron@huawei.com,
Andrea Arcangeli <aarcange@redhat.com>,
acme@kernel.org, alexander.shishkin@linux.intel.com,
amit@kernel.org, benh@kernel.crashing.org,
brendan.d.gregg@gmail.com,
Brendan Higgins <brendanhiggins@google.com>,
Qian Cai <cai@lca.pw>, Colin Ian King <colin.king@canonical.com>,
Jonathan Corbet <corbet@lwn.net>,
David Hildenbrand <david@redhat.com>,
dwmw@amazon.com, Marco Elver <elver@google.com>,
"Du, Fan" <fan.du@intel.com>,
foersleo@amazon.de, Greg Thelen <gthelen@google.com>,
Ian Rogers <irogers@google.com>,
jolsa@redhat.com, "Kirill A. Shutemov" <kirill@shutemov.name>,
Mark Rutland <mark.rutland@arm.com>, Mel Gorman <mgorman@suse.de>,
Minchan Kim <minchan@kernel.org>, Ingo Molnar <mingo@redhat.com>,
namhyung@kernel.org,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Randy Dunlap <rdunlap@infradead.org>,
Rik van Riel <riel@surriel.com>,
David Rientjes <rientjes@google.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mike Rapoport <rppt@kernel.org>,
sblbir@amazon.com, Shuah Khan <shuah@kernel.org>,
sj38.park@gmail.com, snu@amazon.de,
Vlastimil Babka <vbabka@suse.cz>,
Vladimir Davydov <vdavydov.dev@gmail.com>,
Yang Shi <yang.shi@linux.alibaba.com>,
Huang Ying <ying.huang@intel.com>,
zgf574564920@gmail.com, linux-damon@amazon.com,
Linux MM <linux-mm@kvack.org>,
linux-doc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v23 05/15] mm/damon: Implement primitives for the virtual memory address spaces
Date: Wed, 23 Dec 2020 14:54:02 -0800 [thread overview]
Message-ID: <CALvZod6ReV=vTWZu_k2p9p3ZWOLM1z4SZ-kwoTv_a73iYFZj0g@mail.gmail.com> (raw)
In-Reply-To: <20201223164700.29723-1-sjpark@amazon.com>
On Wed, Dec 23, 2020 at 8:47 AM SeongJae Park <sjpark@amazon.com> wrote:
>
[snip]
> > [snip]
> > > +
> > > +static bool damon_va_young(struct mm_struct *mm, unsigned long addr,
> > > + unsigned long *page_sz)
> > > +{
> > > + pte_t *pte = NULL;
> > > + pmd_t *pmd = NULL;
> > > + spinlock_t *ptl;
> > > + bool young = false;
> > > +
> > > + if (follow_pte_pmd(mm, addr, NULL, &pte, &pmd, &ptl))
> > > + return false;
> > > +
> > > + *page_sz = PAGE_SIZE;
> > > + if (pte) {
> > > + young = pte_young(*pte);
> > > + if (!young)
> > > + young = !page_is_idle(pte_page(*pte));
> > > + pte_unmap_unlock(pte, ptl);
> > > + return young;
> > > + }
> > > +
> > > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> > > + young = pmd_young(*pmd);
> > > + if (!young)
> > > + young = !page_is_idle(pmd_page(*pmd));
> > > + spin_unlock(ptl);
> > > + *page_sz = ((1UL) << HPAGE_PMD_SHIFT);
> > > +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
> > > +
> > > + return young;
> >
> > You need mmu_notifier_test_young() here. Hmm I remember mentioning
> > this in some previous version as well.
>
> Your question and my answer was as below:
>
> > Don't you need mmu_notifier_clear_young() here?
>
> I think we don't need it here because we only read the Accessed bit and PG_Idle
> if Accessed bit was not set.
>
> I should notice that you mean 'test_young()' but didn't, sorry. I will add it
> in the next version.
>
I should have said mmu_notifier_test_young() instead of
mmu_notifier_clear_young().
> >
> > BTW have you tested this on a VM?
>
> Yes. Indeed, I'm testing this on a QEMU/KVM environment. You can get more
> detail at: https://damonitor.github.io/doc/html/latest/vm/damon/eval.html#setup
>
Hmm without mmu_notifier_test_young() you should be missing the kvm
mmu access updates. Can you please recheck if your eval is correctly
seeing the memory accesses from the VM?
next prev parent reply other threads:[~2020-12-23 22:55 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-15 11:54 [PATCH v23 00/15] Introduce Data Access MONitor (DAMON) SeongJae Park
2020-12-15 11:54 ` [PATCH v23 01/15] mm: " SeongJae Park
2020-12-23 15:11 ` Shakeel Butt
2020-12-23 16:33 ` SeongJae Park
2020-12-23 22:49 ` Shakeel Butt
2020-12-24 7:02 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 02/15] mm/damon/core: Implement region-based sampling SeongJae Park
2021-02-01 17:37 ` Shakeel Butt
2021-02-02 9:17 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 03/15] mm/damon: Adaptively adjust regions SeongJae Park
2021-01-19 18:36 ` SeongJae Park
2021-02-01 17:37 ` Shakeel Butt
2021-02-02 9:39 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 04/15] mm/idle_page_tracking: Make PG_idle reusable SeongJae Park
2020-12-23 15:11 ` Shakeel Butt
2020-12-15 11:54 ` [PATCH v23 05/15] mm/damon: Implement primitives for the virtual memory address spaces SeongJae Park
2020-12-23 15:31 ` Shakeel Butt
2020-12-23 16:47 ` SeongJae Park
2020-12-23 22:54 ` Shakeel Butt [this message]
2020-12-24 7:11 ` SeongJae Park
2021-01-27 16:56 ` SeongJae Park
2021-01-27 17:02 ` Shakeel Butt
2020-12-15 11:54 ` [PATCH v23 06/15] mm/damon: Add a tracepoint SeongJae Park
2020-12-15 11:54 ` [PATCH v23 07/15] mm/damon: Implement a debugfs-based user space interface SeongJae Park
2021-02-01 17:37 ` Shakeel Butt
2021-02-02 10:00 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 08/15] mm/damon/dbgfs: Implement recording feature SeongJae Park
2020-12-15 11:54 ` [PATCH v23 09/15] mm/damon/dbgfs: Export kdamond pid to the user space SeongJae Park
2020-12-15 11:54 ` [PATCH v23 10/15] mm/damon/dbgfs: Support multiple contexts SeongJae Park
2021-02-02 12:27 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 11/15] tools: Introduce a minimal user-space tool for DAMON SeongJae Park
2020-12-23 18:37 ` SeongJae Park
2020-12-23 22:56 ` Shakeel Butt
2020-12-24 7:13 ` SeongJae Park
2020-12-15 11:54 ` [PATCH v23 12/15] Documentation: Add documents " SeongJae Park
2020-12-15 11:54 ` [PATCH v23 13/15] mm/damon: Add kunit tests SeongJae Park
2020-12-15 11:54 ` [PATCH v23 14/15] mm/damon: Add user space selftests SeongJae Park
2020-12-15 11:54 ` [PATCH v23 15/15] MAINTAINERS: Update for DAMON SeongJae 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='CALvZod6ReV=vTWZu_k2p9p3ZWOLM1z4SZ-kwoTv_a73iYFZj0g@mail.gmail.com' \
--to=shakeelb@google.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=aarcange@redhat.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=amit@kernel.org \
--cc=benh@kernel.crashing.org \
--cc=brendan.d.gregg@gmail.com \
--cc=brendanhiggins@google.com \
--cc=cai@lca.pw \
--cc=colin.king@canonical.com \
--cc=corbet@lwn.net \
--cc=david@redhat.com \
--cc=dwmw@amazon.com \
--cc=elver@google.com \
--cc=fan.du@intel.com \
--cc=foersleo@amazon.de \
--cc=gthelen@google.com \
--cc=irogers@google.com \
--cc=jolsa@redhat.com \
--cc=kirill@shutemov.name \
--cc=linux-damon@amazon.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mark.rutland@arm.com \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=riel@surriel.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=sblbir@amazon.com \
--cc=shuah@kernel.org \
--cc=sj38.park@gmail.com \
--cc=sjpark@amazon.com \
--cc=sjpark@amazon.de \
--cc=snu@amazon.de \
--cc=vbabka@suse.cz \
--cc=vdavydov.dev@gmail.com \
--cc=yang.shi@linux.alibaba.com \
--cc=ying.huang@intel.com \
--cc=zgf574564920@gmail.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;
as well as URLs for NNTP newsgroup(s).