Re: [PATCH v22 04/18] mm/damon: Track dynamic monitoring target regions update

From: SeongJae Park
Date: Thu Nov 26 2020 - 07:19:58 EST


On Wed, 25 Nov 2020 07:29:57 -0800 Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:

> On Tue, Oct 20, 2020 at 2:02 AM SeongJae Park <sjpark@xxxxxxxxxx> wrote:
> >
> > From: SeongJae Park <sjpark@xxxxxxxxx>
> >
> > The monitoring target address range can be dynamically changed. For
> > example, virtual memory could be dynamically mapped and unmapped.
> > Physical memory could be hot-plugged.
> >
> > As the changes could be quite frequent in some cases,
>
> Which cases? Usually address space changes are very infrequent for
> performance reasons.

It depends on the application, but there are some cases for the mmap[1].
ebizzy, the popular benchmarks in mm community is also one such application.

[1] Section 4.3, https://dl.acm.org/doi/pdf/10.1145/3342195.3387527

>
> > DAMON checks the
> > dynamic memory mapping changes and applies it to the abstracted target
> > area only for each of a user-specified time interval, ``regions update
> > interval``.
> >
> > Signed-off-by: SeongJae Park <sjpark@xxxxxxxxx>
> > Reviewed-by: Leonard Foerster <foersleo@xxxxxxxxx>
> [snip]
> > * Check whether current monitoring should be stopped
> > *
> > @@ -612,6 +625,11 @@ static int kdamond_fn(void *data)
> > kdamond_reset_aggregated(ctx);
> > kdamond_split_regions(ctx);
> > }
> > +
> > + if (kdamond_need_update_regions(ctx)) {
> > + kdamond_call_prmt(ctx, update_target_regions);
>
> The implementation of update_target_regions callback should be part of
> this patch.

Agreed, will make so in the next version.


Thanks,
SeongJae Park

>
>
> > + sz_limit = damon_region_sz_limit(ctx);
> > + }
> > }
> > damon_for_each_target(t, ctx) {
> > damon_for_each_region_safe(r, next, t)
> > --
> > 2.17.1
> >