linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: SeongJae Park <sjpark@amazon.com>
To: SeongJae Park <sjpark@amazon.com>
Cc: <akpm@linux-foundation.org>, SeongJae Park <sjpark@amazon.de>,
	<Jonathan.Cameron@Huawei.com>, <aarcange@redhat.com>,
	<acme@kernel.org>, <alexander.shishkin@linux.intel.com>,
	<amit@kernel.org>, <benh@kernel.crashing.org>,
	<brendan.d.gregg@gmail.com>, <brendanhiggins@google.com>,
	<cai@lca.pw>, <colin.king@canonical.com>, <corbet@lwn.net>,
	<dwmw@amazon.com>, <foersleo@amazon.de>, <irogers@google.com>,
	<jolsa@redhat.com>, <kirill@shutemov.name>,
	<mark.rutland@arm.com>, <mgorman@suse.de>, <minchan@kernel.org>,
	<mingo@redhat.com>, <namhyung@kernel.org>, <peterz@infradead.org>,
	<rdunlap@infradead.org>, <riel@surriel.com>,
	<rientjes@google.com>, <rostedt@goodmis.org>, <sblbir@amazon.com>,
	<shakeelb@google.com>, <shuah@kernel.org>, <sj38.park@gmail.com>,
	<snu@amazon.de>, <vbabka@suse.cz>, <vdavydov.dev@gmail.com>,
	<yang.shi@linux.alibaba.com>, <ying.huang@intel.com>,
	<david@redhat.com>, <linux-damon@amazon.com>,
	<linux-mm@kvack.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v15 04/14] mm/damon: Adaptively adjust regions
Date: Wed, 10 Jun 2020 12:13:24 +0200	[thread overview]
Message-ID: <20200610101324.20437-1-sjpark@amazon.com> (raw)
In-Reply-To: <20200608114047.26589-5-sjpark@amazon.com> (raw)

On Mon, 8 Jun 2020 13:40:37 +0200 SeongJae Park <sjpark@amazon.com> wrote:

> From: SeongJae Park <sjpark@amazon.de>
> 
> At the beginning of the monitoring, DAMON constructs the initial regions
> by evenly splitting the memory mapped address space of the process into
> the user-specified minimal number of regions.  In this initial state,
> the assumption of the regions (pages in same region have similar access
> frequencies) is normally not kept and thus the monitoring quality could
> be low.  To keep the assumption as much as possible, DAMON adaptively
> merges and splits each region.
> 
> For each ``aggregation interval``, it compares the access frequencies of
> adjacent regions and merges those if the frequency difference is small.
> Then, after it reports and clears the aggregated access frequency of
> each region, it splits each region into two regions if the total number
> of regions is smaller than the half of the user-specified maximum number
> of regions.

I recently realized that only the 'maximum number of regions' is respected,
meanwhile the 'minimum number of regions' isn't.  In the next spin, I will
update the code to 1) set new internal variable, 'max_sz_region' as size of
entire monitoring target regions divided by the 'minimum number of regions',
and 2) avoid merging regions if it results in region of size larger than that.

This change would make DAMON more flexible for special cases.  For example,
some use cases would need static granularity monitoring.  In such case, users
will be able to adjust the granularity by controlling the 'minimum number of
regions', and avoid the split/merge of regions by setting the 'maximum number
of regions' as same to the 'minimum number of regions'.


Thanks,
SeongJae Park

> 
> In this way, DAMON provides its best-effort quality and minimal overhead
> while keeping the bounds users set for their trade-off.
> 
> Signed-off-by: SeongJae Park <sjpark@amazon.de>
> Reviewed-by: Leonard Foerster <foersleo@amazon.de>


  reply	other threads:[~2020-06-10 10:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-08 11:40 [PATCH v15 00/14] Introduce Data Access MONitor (DAMON) SeongJae Park
2020-06-08 11:40 ` [PATCH v15 01/14] mm/page_ext: Export lookup_page_ext() to GPL modules SeongJae Park
2020-06-08 11:53   ` David Hildenbrand
2020-06-08 11:56     ` SeongJae Park
2020-06-08 15:49     ` Christoph Hellwig
2020-06-08 17:48       ` SeongJae Park
2020-06-08 18:15       ` David Hildenbrand
2020-06-10 20:13   ` vrd
2020-06-08 11:40 ` [PATCH v15 02/14] mm: Introduce Data Access MONitor (DAMON) SeongJae Park
2020-06-08 11:40 ` [PATCH v15 03/14] mm/damon: Implement region based sampling SeongJae Park
2020-06-10 20:36   ` vrd
2020-06-11  7:21     ` SeongJae Park
2020-06-08 11:40 ` [PATCH v15 04/14] mm/damon: Adaptively adjust regions SeongJae Park
2020-06-10 10:13   ` SeongJae Park [this message]
2020-06-08 11:40 ` [PATCH v15 05/14] mm/damon: Apply dynamic memory mapping changes SeongJae Park
2020-06-08 11:40 ` [PATCH v15 06/14] mm/damon: Implement callbacks SeongJae Park
2020-06-08 11:40 ` [PATCH v15 07/14] mm/damon: Implement access pattern recording SeongJae Park
2020-06-08 11:40 ` [PATCH v15 08/14] mm/damon: Add debugfs interface SeongJae Park
2020-06-08 11:40 ` [PATCH v15 09/14] mm/damon: Add tracepoints SeongJae Park
2020-06-08 11:40 ` [PATCH v15 10/14] tools: Add a minimal user-space tool for DAMON SeongJae Park
2020-06-08 11:40 ` [PATCH v15 11/14] Documentation/admin-guide/mm: Add a document " SeongJae Park
2020-06-08 11:40 ` [PATCH v15 12/14] mm/damon: Add kunit tests SeongJae Park
2020-06-08 11:40 ` [PATCH v15 13/14] mm/damon: Add user space selftests SeongJae Park
2020-06-08 11:40 ` [PATCH v15 14/14] 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=20200610101324.20437-1-sjpark@amazon.com \
    --to=sjpark@amazon.com \
    --cc=Jonathan.Cameron@Huawei.com \
    --cc=aarcange@redhat.com \
    --cc=acme@kernel.org \
    --cc=akpm@linux-foundation.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=foersleo@amazon.de \
    --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=sblbir@amazon.com \
    --cc=shakeelb@google.com \
    --cc=shuah@kernel.org \
    --cc=sj38.park@gmail.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 \
    /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).