Thread (34 messages) 34 messages, 2 authors, 2021-07-01

Re: [PATCH v31 03/13] mm/damon: Adaptively adjust regions

From: SeongJae Park <hidden>
Date: 2021-06-24 10:26:44
Also in: linux-mm, lkml

From: SeongJae Park <redacted>

On Tue, 22 Jun 2021 07:59:35 -0700 Shakeel Butt [off-list ref] wrote:
On Mon, Jun 21, 2021 at 1:31 AM SeongJae Park [off-list ref] wrote:
quoted
From: SeongJae Park <redacted>

Even somehow the initial monitoring target regions are well constructed
to fulfill the assumption (pages in same region have similar access
frequencies), the data access pattern can be dynamically changed.  This
will result in low monitoring quality.  To keep the assumption as much
as possible, DAMON adaptively merges and splits each region based on
their access frequency.

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 or three regions if the
total number of regions will not exceed the user-specified maximum
number of regions after the split.

In this way, DAMON provides its best-effort quality and minimal overhead
while keeping the upper-bound overhead that users set.

Signed-off-by: SeongJae Park <redacted>
Reviewed-by: Leonard Foerster <redacted>
Reviewed-by: Fernand Sieber <redacted>
[...]
quoted
+unsigned int damon_nr_regions(struct damon_target *t)
+{
+       struct damon_region *r;
+       unsigned int nr_regions = 0;
+
+       damon_for_each_region(r, t)
+               nr_regions++;
This bugs me everytime. Please just have nr_regions field in the
damon_target instead of traversing the list to count the number of
regions.
Ok, I will make the change in next spin.
Other than that, it looks good to me.
Thanks,
SeongJae Park
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help