DAMON development mailing list
 help / color / mirror / Atom feed
* [RFC] mm/damon/damo: saving damon sysfs configuration
@ 2026-09-28 19:13 Liew Rui Yan
  2026-09-29  7:43 ` SJ Park
  0 siblings, 1 reply; 10+ messages in thread
From: Liew Rui Yan @ 2026-09-28 19:13 UTC (permalink / raw)
  To: SJ Park; +Cc: damon, linux-mm

Hi SJ and Community,

I've noticed that damo [1] doesn't seem to have a feature for saving
DAMON SYSFS configuration.  I tried 'damo args damon', but it doesn't
save the DAMOS schemes information.  'damo report damon --json' provides
more detailed information, but its output cannot be read by 'damo start
--kdamonds'.

I'd like to know if there is currently any way in damo to save the DAMON
SYSFS configuration that can be correctly read by 'damo start
--kdamonds'.  If not, would it be worth adding one?

[1] https://github.com/damonitor/damo

Best regards,
Rui Yan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-09-28 19:13 [RFC] mm/damon/damo: saving damon sysfs configuration Liew Rui Yan
@ 2026-09-29  7:43 ` SJ Park
  2026-09-30  9:58   ` Liew Rui Yan
  0 siblings, 1 reply; 10+ messages in thread
From: SJ Park @ 2026-09-29  7:43 UTC (permalink / raw)
  To: Liew Rui Yan; +Cc: SJ Park, damon, linux-mm

Hi Liew,

On Tue, 29 Sep 2026 03:13:06 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> Hi SJ and Community,
> 
> I've noticed that damo [1] doesn't seem to have a feature for saving
> DAMON SYSFS configuration.  I tried 'damo args damon', but it doesn't
> save the DAMOS schemes information.

If so, it is a bug.  Could you share more details including how the issue can
be reproduced?  Directly sending a PR should also be fine.

> 'damo report damon --json' provides
> more detailed information, but its output cannot be read by 'damo start
> --kdamonds'.

Maybe this is also an issue that we could fix.

> 
> I'd like to know if there is currently any way in damo to save the DAMON
> SYSFS configuration that can be correctly read by 'damo start
> --kdamonds'.  If not, would it be worth adding one?

I believe it would be useful.  Please feel free to send a PR.

Nonetheless, we added the json/yaml kdamonds config support mainly because
there was no good way to flexibly configure kdamonds with the command line
interface.  Now it is much more improved [1].

I'd recommend using the command line interface.  That is, you could copy your
command line setup in a bash script and modify/reuse it.

Is there a use case that it cannot work or suboptimum?

[1] https://github.com/damonitor/damo/issues/3#issuecomment-5655965736


Thanks,
SJ

[...]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-09-29  7:43 ` SJ Park
@ 2026-09-30  9:58   ` Liew Rui Yan
  2026-10-08 12:09     ` Liew Rui Yan
  0 siblings, 1 reply; 10+ messages in thread
From: Liew Rui Yan @ 2026-09-30  9:58 UTC (permalink / raw)
  To: SJ Park; +Cc: Liew Rui Yan, damon, linux-mm

On Tue, 29 Sep 2026 00:43:00 -0700 SJ Park <sj@kernel.org> wrote:

> Hi Liew,
> 
> On Tue, 29 Sep 2026 03:13:06 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> 
> > Hi SJ and Community,
> > 
> > I've noticed that damo [1] doesn't seem to have a feature for saving
> > DAMON SYSFS configuration.  I tried 'damo args damon', but it doesn't
> > save the DAMOS schemes information.
> 
> If so, it is a bug.  Could you share more details including how the issue can
> be reproduced?  Directly sending a PR should also be fine.

Yes, this can be reproduced easily.

    # make sure DAMON is started
    $ sudo ./damo args damon > damo_args_damon.json
    $ sudo ./damo report damon --json > damo_report_damon.json

    $ sudo ./damo stop

    $ sudo ./damo start --kdamonds damo_args_damon.json
    $ sudo ./damo report damon --json > damo_report_damon_after.json

    $ diff damo_report_damon.json damo_report_damon_after.json
    4c4
    <         "pid": "4959",
    ---
    >         "pid": "5582",
    16,17c16,17
    <                                 "start": "4,294,967,296",
    <                                 "end": "15,807,283,199"
    ---
    >                                 "start": "4,096",
    >                                 "end": "15,807,283,200"
    25c25
    <                     "ops_update_us": "1 m",
    ---
    >                     "ops_update_us": "1 s",
    46,159c46
    <                 "schemes": [
    <                     {
    <                         "action": "pageout",
    <                         "dests": [],
    <                         "access_pattern": {
    <                             "sz_bytes": {
    <                                 "min": "4.000 KiB",
    <                                 "max": "max"
    <                             },
    <                             "nr_accesses": {
    <                                 "min": "0 samples",
    <                                 "max": "0 samples"
    <                             },
    <                             "age": {
    <                                 "min": "60,000 aggr_intervals",
    <                                 "max": "18,446,744,073,709,551,615 aggr_intervals"
    <                             }
    <                         },
    <                         "apply_interval_us": "0 ns",
    <                         "quotas": {
    <                             "time_ms": "0 ns",
    <                             "sz_bytes": "16.000 MiB",
    <                             "reset_interval_ms": "1 s",
    <                             "fail_charge_num": "0",
    <                             "fail_charge_denom": "0",
    <                             "goals": [
    <                                 {
    <                                     "metric": "user_input",
    <                                     "nid": "0",
    <                                     "memcg_path": "",
    <                                     "target_value": "3,000",
    <                                     "current_value": "7,855"
    <                                 }
    <                             ],
    <                             "goal_tuner": "temporal\n",
    <                             "effective_sz_bytes": "0 B",
    <                             "weights": {
    <                                 "sz_permil": "0 %",
    <                                 "nr_accesses_permil": "0 %",
    <                                 "age_permil": "0 %"
    <                             }
    <                         },
    <                         "watermarks": {
    <                             "metric": "none",
    <                             "interval_us": "0 ns",
    <                             "high_permil": "0 %",
    <                             "mid_permil": "0 %",
    <                             "low_permil": "0 %"
    <                         },
    <                         "filters": [],
    <                         "stats": {
    <                             "nr_tried": "0",
    <                             "sz_tried": "0 B",
    <                             "nr_applied": "0",
    <                             "sz_applied": "0 B",
    <                             "sz_ops_filter_passed": "0 B",
    <                             "qt_exceeds": "19",
    <                             "nr_snapshots": "0",
    <                             "max_nr_snapshots": "0"
    <                         }
    <                     },
    <                     {
    <                         "action": "stat",
    <                         "dests": [],
    <                         "access_pattern": {
    <                             "sz_bytes": {
    <                                 "min": "0 B",
    <                                 "max": "max"
    <                             },
    <                             "nr_accesses": {
    <                                 "min": "0 samples",
    <                                 "max": "18,446,744,073,709,551,615 samples"
    <                             },
    <                             "age": {
    <                                 "min": "0 aggr_intervals",
    <                                 "max": "18,446,744,073,709,551,615 aggr_intervals"
    <                             }
    <                         },
    <                         "apply_interval_us": "0 ns",
    <                         "quotas": {
    <                             "time_ms": "0 ns",
    <                             "sz_bytes": "0 B",
    <                             "reset_interval_ms": "0 ns",
    <                             "fail_charge_num": "0",
    <                             "fail_charge_denom": "0",
    <                             "goals": [],
    <                             "goal_tuner": "consist\n",
    <                             "effective_sz_bytes": "0 B",
    <                             "weights": {
    <                                 "sz_permil": "0 %",
    <                                 "nr_accesses_permil": "0 %",
    <                                 "age_permil": "0 %"
    <                             }
    <                         },
    <                         "watermarks": {
    <                             "metric": "none",
    <                             "interval_us": "0 ns",
    <                             "high_permil": "0 %",
    <                             "mid_permil": "0 %",
    <                             "low_permil": "0 %"
    <                         },
    <                         "filters": [],
    <                         "stats": {
    <                             "nr_tried": "2,000",
    <                             "sz_tried": "1.801 TiB",
    <                             "nr_applied": "0",
    <                             "sz_applied": "0 B",
    <                             "sz_ops_filter_passed": "0 B",
    <                             "qt_exceeds": "0",
    <                             "nr_snapshots": "172",
    <                             "max_nr_snapshots": "0"
    <                         }
    <                     }
    <                 ]
    ---
    >                 "schemes": []

> 
> > 'damo report damon --json' provides
> > more detailed information, but its output cannot be read by 'damo start
> > --kdamonds'.
> 
> Maybe this is also an issue that we could fix.

In my opinion, this is not an issue, since there's no documentation
recommending we use the 'damo report damon --json' to generate
configuration for 'damo start --kdamonds'.

> 
> > 
> > I'd like to know if there is currently any way in damo to save the DAMON
> > SYSFS configuration that can be correctly read by 'damo start
> > --kdamonds'.  If not, would it be worth adding one?
> 
> I believe it would be useful.  Please feel free to send a PR.
> 
> Nonetheless, we added the json/yaml kdamonds config support mainly because
> there was no good way to flexibly configure kdamonds with the command line
> interface.  Now it is much more improved [1].

Thank you for clarifying this!

> 
> I'd recommend using the command line interface.  That is, you could copy your
> command line setup in a bash script and modify/reuse it.
> 
> Is there a use case that it cannot work or suboptimum?

No, CLI (Command Line Interface) do very convenience.  I can write my
configuration in CLI and it is very readable.  Thank you for letting me
know this feature!

    #!/bin/bash

    # update-damon-config.sh

    ./damo args damon \
    --kdamond --damon_ctx --ops paddr \
        --monitoring_intervals 5000 100000 1000000 \
        --damon_target --regions 4294967296-15807283199 \
        --damos_scheme --damos_action pageout \
            --damos_sz_region 4096 18446744073709551615 \
            --damos_access_rate 0 0 \
            --damos_age 600000000 18446744073709551615 \
            --damos_quota_goal user_input 3000 10000 \
            --damos_quota_goal_tuner temporal \
            --damos_quota_interval 1000 \
            --damos_quota_time 0 \
            --damos_quota_space 16777216 \
            --damos_quota_weights 0 0 0 \
    > config.json

> 
> [1] https://github.com/damonitor/damo/issues/3#issuecomment-5655965736

[...]

Best regards,
Rui Yan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-09-30  9:58   ` Liew Rui Yan
@ 2026-10-08 12:09     ` Liew Rui Yan
  2026-10-08 12:32       ` SJ Park
  0 siblings, 1 reply; 10+ messages in thread
From: Liew Rui Yan @ 2026-10-08 12:09 UTC (permalink / raw)
  To: Liew Rui Yan; +Cc: damon, linux-mm, SJ Park

Hi SJ,

Just a reminder, I think you might have missed the question I asked.

On Wed, 30 Sep 2026 17:58:54 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> On Tue, 29 Sep 2026 00:43:00 -0700 SJ Park <sj@kernel.org> wrote:
> 
> > Hi Liew,
> > 
> > On Tue, 29 Sep 2026 03:13:06 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > 
> > > Hi SJ and Community,
> > > 
> > > I've noticed that damo [1] doesn't seem to have a feature for saving
> > > DAMON SYSFS configuration.  I tried 'damo args damon', but it doesn't
> > > save the DAMOS schemes information.
> > 
> > If so, it is a bug.  Could you share more details including how the issue can
> > be reproduced?  Directly sending a PR should also be fine.
> 
> Yes, this can be reproduced easily.
> 
>     # make sure DAMON is started
>     $ sudo ./damo args damon > damo_args_damon.json
>     $ sudo ./damo report damon --json > damo_report_damon.json
> 
>     $ sudo ./damo stop
> 
>     $ sudo ./damo start --kdamonds damo_args_damon.json
>     $ sudo ./damo report damon --json > damo_report_damon_after.json
> 
>     $ diff damo_report_damon.json damo_report_damon_after.json
>     4c4
>     <         "pid": "4959",
>     ---
>     >         "pid": "5582",
>     16,17c16,17
>     <                                 "start": "4,294,967,296",
>     <                                 "end": "15,807,283,199"
>     ---
>     >                                 "start": "4,096",
>     >                                 "end": "15,807,283,200"
>     25c25
>     <                     "ops_update_us": "1 m",
>     ---
>     >                     "ops_update_us": "1 s",
>     46,159c46
>     <                 "schemes": [
>     <                     {
>     <                         "action": "pageout",
>     <                         "dests": [],
>     <                         "access_pattern": {
>     <                             "sz_bytes": {
>     <                                 "min": "4.000 KiB",
>     <                                 "max": "max"
>     <                             },
>     <                             "nr_accesses": {
>     <                                 "min": "0 samples",
>     <                                 "max": "0 samples"
>     <                             },
>     <                             "age": {
>     <                                 "min": "60,000 aggr_intervals",
>     <                                 "max": "18,446,744,073,709,551,615 aggr_intervals"
>     <                             }
>     <                         },
>     <                         "apply_interval_us": "0 ns",
>     <                         "quotas": {
>     <                             "time_ms": "0 ns",
>     <                             "sz_bytes": "16.000 MiB",
>     <                             "reset_interval_ms": "1 s",
>     <                             "fail_charge_num": "0",
>     <                             "fail_charge_denom": "0",
>     <                             "goals": [
>     <                                 {
>     <                                     "metric": "user_input",
>     <                                     "nid": "0",
>     <                                     "memcg_path": "",
>     <                                     "target_value": "3,000",
>     <                                     "current_value": "7,855"
>     <                                 }
>     <                             ],
>     <                             "goal_tuner": "temporal\n",
>     <                             "effective_sz_bytes": "0 B",
>     <                             "weights": {
>     <                                 "sz_permil": "0 %",
>     <                                 "nr_accesses_permil": "0 %",
>     <                                 "age_permil": "0 %"
>     <                             }
>     <                         },
>     <                         "watermarks": {
>     <                             "metric": "none",
>     <                             "interval_us": "0 ns",
>     <                             "high_permil": "0 %",
>     <                             "mid_permil": "0 %",
>     <                             "low_permil": "0 %"
>     <                         },
>     <                         "filters": [],
>     <                         "stats": {
>     <                             "nr_tried": "0",
>     <                             "sz_tried": "0 B",
>     <                             "nr_applied": "0",
>     <                             "sz_applied": "0 B",
>     <                             "sz_ops_filter_passed": "0 B",
>     <                             "qt_exceeds": "19",
>     <                             "nr_snapshots": "0",
>     <                             "max_nr_snapshots": "0"
>     <                         }
>     <                     },
>     <                     {
>     <                         "action": "stat",
>     <                         "dests": [],
>     <                         "access_pattern": {
>     <                             "sz_bytes": {
>     <                                 "min": "0 B",
>     <                                 "max": "max"
>     <                             },
>     <                             "nr_accesses": {
>     <                                 "min": "0 samples",
>     <                                 "max": "18,446,744,073,709,551,615 samples"
>     <                             },
>     <                             "age": {
>     <                                 "min": "0 aggr_intervals",
>     <                                 "max": "18,446,744,073,709,551,615 aggr_intervals"
>     <                             }
>     <                         },
>     <                         "apply_interval_us": "0 ns",
>     <                         "quotas": {
>     <                             "time_ms": "0 ns",
>     <                             "sz_bytes": "0 B",
>     <                             "reset_interval_ms": "0 ns",
>     <                             "fail_charge_num": "0",
>     <                             "fail_charge_denom": "0",
>     <                             "goals": [],
>     <                             "goal_tuner": "consist\n",
>     <                             "effective_sz_bytes": "0 B",
>     <                             "weights": {
>     <                                 "sz_permil": "0 %",
>     <                                 "nr_accesses_permil": "0 %",
>     <                                 "age_permil": "0 %"
>     <                             }
>     <                         },
>     <                         "watermarks": {
>     <                             "metric": "none",
>     <                             "interval_us": "0 ns",
>     <                             "high_permil": "0 %",
>     <                             "mid_permil": "0 %",
>     <                             "low_permil": "0 %"
>     <                         },
>     <                         "filters": [],
>     <                         "stats": {
>     <                             "nr_tried": "2,000",
>     <                             "sz_tried": "1.801 TiB",
>     <                             "nr_applied": "0",
>     <                             "sz_applied": "0 B",
>     <                             "sz_ops_filter_passed": "0 B",
>     <                             "qt_exceeds": "0",
>     <                             "nr_snapshots": "172",
>     <                             "max_nr_snapshots": "0"
>     <                         }
>     <                     }
>     <                 ]
>     ---
>     >                 "schemes": []
> 
> > 
> > > 'damo report damon --json' provides
> > > more detailed information, but its output cannot be read by 'damo start
> > > --kdamonds'.
> > 
> > Maybe this is also an issue that we could fix.
> 
> In my opinion, this is not an issue, since there's no documentation
> recommending we use the 'damo report damon --json' to generate
> configuration for 'damo start --kdamonds'.
> 
> > 
> > > 
> > > I'd like to know if there is currently any way in damo to save the DAMON
> > > SYSFS configuration that can be correctly read by 'damo start
> > > --kdamonds'.  If not, would it be worth adding one?
> > 
> > I believe it would be useful.  Please feel free to send a PR.
> > 
> > Nonetheless, we added the json/yaml kdamonds config support mainly because
> > there was no good way to flexibly configure kdamonds with the command line
> > interface.  Now it is much more improved [1].
> 
> Thank you for clarifying this!
> 
> > 
> > I'd recommend using the command line interface.  That is, you could copy your
> > command line setup in a bash script and modify/reuse it.
> > 
> > Is there a use case that it cannot work or suboptimum?
> 
> No, CLI (Command Line Interface) do very convenience.  I can write my
> configuration in CLI and it is very readable.  Thank you for letting me
> know this feature!
> 
>     #!/bin/bash
> 
>     # update-damon-config.sh
> 
>     ./damo args damon \
>     --kdamond --damon_ctx --ops paddr \
>         --monitoring_intervals 5000 100000 1000000 \
>         --damon_target --regions 4294967296-15807283199 \
>         --damos_scheme --damos_action pageout \
>             --damos_sz_region 4096 18446744073709551615 \
>             --damos_access_rate 0 0 \
>             --damos_age 600000000 18446744073709551615 \
>             --damos_quota_goal user_input 3000 10000 \
>             --damos_quota_goal_tuner temporal \
>             --damos_quota_interval 1000 \
>             --damos_quota_time 0 \
>             --damos_quota_space 16777216 \
>             --damos_quota_weights 0 0 0 \
>     > config.json
> 
> > 
> > [1] https://github.com/damonitor/damo/issues/3#issuecomment-5655965736
> 
> [...]
> 
> Best regards,
> Rui Yan
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-08 12:09     ` Liew Rui Yan
@ 2026-10-08 12:32       ` SJ Park
  2026-10-08 13:44         ` Liew Rui Yan
  0 siblings, 1 reply; 10+ messages in thread
From: SJ Park @ 2026-10-08 12:32 UTC (permalink / raw)
  To: Liew Rui Yan; +Cc: SJ Park, damon, linux-mm

Hi Liew,

On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> Hi SJ,
> 
> Just a reminder, I think you might have missed the question I asked.

Could you please clarify what is the question that is not yet answered?


Thanks,
SJ

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-08 12:32       ` SJ Park
@ 2026-10-08 13:44         ` Liew Rui Yan
  2026-10-08 15:00           ` SJ Park
  0 siblings, 1 reply; 10+ messages in thread
From: Liew Rui Yan @ 2026-10-08 13:44 UTC (permalink / raw)
  To: SJ Park; +Cc: Liew Rui Yan, damon, linux-mm

On Thu, 08 Oct 2026 05:32:31 -0700 SJ Park <sj@kernel.org> wrote:

> Hi Liew,
> 
> On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> 
> > Hi SJ,
> > 
> > Just a reminder, I think you might have missed the question I asked.
> 
> Could you please clarify what is the question that is not yet answered?

It seems I forgot to ask the question, my apologies.

I would like to ask: after reviewing the reproduction, do you still
think this is a real issue?  If so, I will start working on a fix.

[...]

Best regards,
Rui Yan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-08 13:44         ` Liew Rui Yan
@ 2026-10-08 15:00           ` SJ Park
  2026-10-08 16:14             ` Liew Rui Yan
  0 siblings, 1 reply; 10+ messages in thread
From: SJ Park @ 2026-10-08 15:00 UTC (permalink / raw)
  To: Liew Rui Yan; +Cc: SJ Park, damon, linux-mm

On Thu,  8 Oct 2026 21:44:19 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> On Thu, 08 Oct 2026 05:32:31 -0700 SJ Park <sj@kernel.org> wrote:
> 
> > Hi Liew,
> > 
> > On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > 
> > > Hi SJ,
> > > 
> > > Just a reminder, I think you might have missed the question I asked.
> > 
> > Could you please clarify what is the question that is not yet answered?
> 
> It seems I forgot to ask the question, my apologies.

No worry!

> 
> I would like to ask: after reviewing the reproduction, do you still
> think this is a real issue?  If so, I will start working on a fix.

I'm not good at reading the diff in your previous reply.  It makes me difficult
to understand what the issue is.  So I tried the commands on my system.

'''
$ sudo ./damo start
$ sudo ./damo args damon > damo_args_damon.json
$ sudo ./damo report damon --json > damo_report_damon.json
$ sudo ./damo stop
$ sudo ./damo start --kdamonds damo_args_damon.json
$ sudo ./damo report damon --json > damo_report_damon_aftr.json
$ diff -u damo_report_damon.json damo_report_damon_aftr.json
--- damo_report_damon.json      2026-10-08 07:56:04.979178016 -0700
+++ damo_report_damon_aftr.json 2026-10-08 07:56:27.717941609 -0700
@@ -1,7 +1,7 @@
 [
     {
         "state": "on",
-        "pid": "46402",
+        "pid": "46449",
         "refresh_ms": 0,
         "contexts": [
             {
'''

And still it is unclear what is the problem.  Could I ask your elaboration?


Thanks,
SJ

[...]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-08 15:00           ` SJ Park
@ 2026-10-08 16:14             ` Liew Rui Yan
  2026-10-09  8:01               ` SJ Park
  0 siblings, 1 reply; 10+ messages in thread
From: Liew Rui Yan @ 2026-10-08 16:14 UTC (permalink / raw)
  To: SJ Park; +Cc: Liew Rui Yan, damon, linux-mm

On Thu, 08 Oct 2026 08:00:43 -0700 SJ Park <sj@kernel.org> wrote:

> On Thu,  8 Oct 2026 21:44:19 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> 
> > On Thu, 08 Oct 2026 05:32:31 -0700 SJ Park <sj@kernel.org> wrote:
> > 
> > > Hi Liew,
> > > 
> > > On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > > 
> > > > Hi SJ,
> > > > 
> > > > Just a reminder, I think you might have missed the question I asked.
> > > 
> > > Could you please clarify what is the question that is not yet answered?
> > 
> > It seems I forgot to ask the question, my apologies.
> 
> No worry!
> 
> > 
> > I would like to ask: after reviewing the reproduction, do you still
> > think this is a real issue?  If so, I will start working on a fix.
> 
> I'm not good at reading the diff in your previous reply.  It makes me difficult
> to understand what the issue is.  So I tried the commands on my system.
> 
> '''
> $ sudo ./damo start
> $ sudo ./damo args damon > damo_args_damon.json
> $ sudo ./damo report damon --json > damo_report_damon.json
> $ sudo ./damo stop
> $ sudo ./damo start --kdamonds damo_args_damon.json
> $ sudo ./damo report damon --json > damo_report_damon_aftr.json
> $ diff -u damo_report_damon.json damo_report_damon_aftr.json
> --- damo_report_damon.json      2026-10-08 07:56:04.979178016 -0700
> +++ damo_report_damon_aftr.json 2026-10-08 07:56:27.717941609 -0700
> @@ -1,7 +1,7 @@
>  [
>      {
>          "state": "on",
> -        "pid": "46402",
> +        "pid": "46449",
>          "refresh_ms": 0,
>          "contexts": [
>              {
> '''
> 
> And still it is unclear what is the problem.  Could I ask your elaboration?

Thank you for testing this!

The reason it did not reproduce is that no DAMOS Schemes were configured
during this test.

This is a bash script for reproduce:

'''
#!/bin/bash

mkdir -p /tmp/config
mkdir -p /tmp/output

./damo args damon \
--kdamond --damon_ctx --ops paddr \
    --monitoring_intervals 5000 100000 1000000 \
    --damon_target --regions 0-4096 \
    --damos_scheme --damos_action lru_deprio \
        --damos_sz_region 4096 max \
        --damos_access_rate 0 max \
        --damos_age 120000000 max \
        --damos_quota_interval 1000 \
        --damos_quota_time 0 \
        --damos_quota_space 16777216 \
        --damos_quota_weights 0 1000 1000 \
> /tmp/config/lru.json

./damo stop
./damo start --kdamonds /tmp/config/lru.json
./damo args damon > /tmp/output/damo_args_damon.json
./damo report damon --json > /tmp/output/damo_report_damon.json
./damo stop
./damo start --kdamonds /tmp/output/damo_args_damon.json
./damo report damon --json > /tmp/output/damo_report_damon_aftr.json
diff -u /tmp/output/damo_report_damon.json /tmp/output/damo_report_damon_aftr.json
./damo stop

rm -r /tmp/config
rm -r /tmp/output
'''

[...]

Best regards,
Rui Yan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-08 16:14             ` Liew Rui Yan
@ 2026-10-09  8:01               ` SJ Park
  2026-10-09 12:08                 ` Liew Rui Yan
  0 siblings, 1 reply; 10+ messages in thread
From: SJ Park @ 2026-10-09  8:01 UTC (permalink / raw)
  To: Liew Rui Yan; +Cc: SJ Park, damon, linux-mm

On Fri,  9 Oct 2026 00:14:54 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> On Thu, 08 Oct 2026 08:00:43 -0700 SJ Park <sj@kernel.org> wrote:
> 
> > On Thu,  8 Oct 2026 21:44:19 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > 
> > > On Thu, 08 Oct 2026 05:32:31 -0700 SJ Park <sj@kernel.org> wrote:
> > > 
> > > > Hi Liew,
> > > > 
> > > > On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > > > 
> > > > > Hi SJ,
> > > > > 
> > > > > Just a reminder, I think you might have missed the question I asked.
> > > > 
> > > > Could you please clarify what is the question that is not yet answered?
> > > 
> > > It seems I forgot to ask the question, my apologies.
> > 
> > No worry!
> > 
> > > 
> > > I would like to ask: after reviewing the reproduction, do you still
> > > think this is a real issue?  If so, I will start working on a fix.
> > 
> > I'm not good at reading the diff in your previous reply.  It makes me difficult
> > to understand what the issue is.  So I tried the commands on my system.
> > 
> > '''
> > $ sudo ./damo start
> > $ sudo ./damo args damon > damo_args_damon.json
> > $ sudo ./damo report damon --json > damo_report_damon.json
> > $ sudo ./damo stop
> > $ sudo ./damo start --kdamonds damo_args_damon.json
> > $ sudo ./damo report damon --json > damo_report_damon_aftr.json
> > $ diff -u damo_report_damon.json damo_report_damon_aftr.json
> > --- damo_report_damon.json      2026-10-08 07:56:04.979178016 -0700
> > +++ damo_report_damon_aftr.json 2026-10-08 07:56:27.717941609 -0700
> > @@ -1,7 +1,7 @@
> >  [
> >      {
> >          "state": "on",
> > -        "pid": "46402",
> > +        "pid": "46449",
> >          "refresh_ms": 0,
> >          "contexts": [
> >              {
> > '''
> > 
> > And still it is unclear what is the problem.  Could I ask your elaboration?
> 
> Thank you for testing this!
> 
> The reason it did not reproduce is that no DAMOS Schemes were configured
> during this test.
> 
> This is a bash script for reproduce:
> 
> '''
> #!/bin/bash
> 
> mkdir -p /tmp/config
> mkdir -p /tmp/output
> 
> ./damo args damon \
> --kdamond --damon_ctx --ops paddr \
>     --monitoring_intervals 5000 100000 1000000 \
>     --damon_target --regions 0-4096 \
>     --damos_scheme --damos_action lru_deprio \
>         --damos_sz_region 4096 max \
>         --damos_access_rate 0 max \
>         --damos_age 120000000 max \
>         --damos_quota_interval 1000 \
>         --damos_quota_time 0 \
>         --damos_quota_space 16777216 \
>         --damos_quota_weights 0 1000 1000 \
> > /tmp/config/lru.json
> 
> ./damo stop
> ./damo start --kdamonds /tmp/config/lru.json
> ./damo args damon > /tmp/output/damo_args_damon.json
> ./damo report damon --json > /tmp/output/damo_report_damon.json
> ./damo stop
> ./damo start --kdamonds /tmp/output/damo_args_damon.json
> ./damo report damon --json > /tmp/output/damo_report_damon_aftr.json
> diff -u /tmp/output/damo_report_damon.json /tmp/output/damo_report_damon_aftr.json
> ./damo stop
> 
> rm -r /tmp/config
> rm -r /tmp/output
> '''

Thank you for sharing this script.

However, issue reports in genral are better to clarify the expected and
unexpected behaviors of the repro together.  Please add such clarifications
from the next time.

And maybe because of the lack of such clarification, I still don't get what is
the problem.  Clarify, please?


Thanks,
SJ

[...]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC] mm/damon/damo: saving damon sysfs configuration
  2026-10-09  8:01               ` SJ Park
@ 2026-10-09 12:08                 ` Liew Rui Yan
  0 siblings, 0 replies; 10+ messages in thread
From: Liew Rui Yan @ 2026-10-09 12:08 UTC (permalink / raw)
  To: SJ Park; +Cc: Liew Rui Yan, damon, linux-mm

On Fri, 09 Oct 2026 01:01:38 -0700 SJ Park <sj@kernel.org> wrote:

> On Fri,  9 Oct 2026 00:14:54 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> 
> > On Thu, 08 Oct 2026 08:00:43 -0700 SJ Park <sj@kernel.org> wrote:
> > 
> > > On Thu,  8 Oct 2026 21:44:19 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > > 
> > > > On Thu, 08 Oct 2026 05:32:31 -0700 SJ Park <sj@kernel.org> wrote:
> > > > 
> > > > > Hi Liew,
> > > > > 
> > > > > On Thu,  8 Oct 2026 20:09:05 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> > > > > 
> > > > > > Hi SJ,
> > > > > > 
> > > > > > Just a reminder, I think you might have missed the question I asked.
> > > > > 
> > > > > Could you please clarify what is the question that is not yet answered?
> > > > 
> > > > It seems I forgot to ask the question, my apologies.
> > > 
> > > No worry!
> > > 
> > > > 
> > > > I would like to ask: after reviewing the reproduction, do you still
> > > > think this is a real issue?  If so, I will start working on a fix.
> > > 
> > > I'm not good at reading the diff in your previous reply.  It makes me difficult
> > > to understand what the issue is.  So I tried the commands on my system.
> > > 
> > > '''
> > > $ sudo ./damo start
> > > $ sudo ./damo args damon > damo_args_damon.json
> > > $ sudo ./damo report damon --json > damo_report_damon.json
> > > $ sudo ./damo stop
> > > $ sudo ./damo start --kdamonds damo_args_damon.json
> > > $ sudo ./damo report damon --json > damo_report_damon_aftr.json
> > > $ diff -u damo_report_damon.json damo_report_damon_aftr.json
> > > --- damo_report_damon.json      2026-10-08 07:56:04.979178016 -0700
> > > +++ damo_report_damon_aftr.json 2026-10-08 07:56:27.717941609 -0700
> > > @@ -1,7 +1,7 @@
> > >  [
> > >      {
> > >          "state": "on",
> > > -        "pid": "46402",
> > > +        "pid": "46449",
> > >          "refresh_ms": 0,
> > >          "contexts": [
> > >              {
> > > '''
> > > 
> > > And still it is unclear what is the problem.  Could I ask your elaboration?
> > 
> > Thank you for testing this!
> > 
> > The reason it did not reproduce is that no DAMOS Schemes were configured
> > during this test.
> > 
> > This is a bash script for reproduce:
> > 
> > '''
> > #!/bin/bash
> > 
> > mkdir -p /tmp/config
> > mkdir -p /tmp/output
> > 
> > ./damo args damon \
> > --kdamond --damon_ctx --ops paddr \
> >     --monitoring_intervals 5000 100000 1000000 \
> >     --damon_target --regions 0-4096 \
> >     --damos_scheme --damos_action lru_deprio \
> >         --damos_sz_region 4096 max \
> >         --damos_access_rate 0 max \
> >         --damos_age 120000000 max \
> >         --damos_quota_interval 1000 \
> >         --damos_quota_time 0 \
> >         --damos_quota_space 16777216 \
> >         --damos_quota_weights 0 1000 1000 \
> > > /tmp/config/lru.json
> > 
> > ./damo stop
> > ./damo start --kdamonds /tmp/config/lru.json
> > ./damo args damon > /tmp/output/damo_args_damon.json
> > ./damo report damon --json > /tmp/output/damo_report_damon.json
> > ./damo stop
> > ./damo start --kdamonds /tmp/output/damo_args_damon.json
> > ./damo report damon --json > /tmp/output/damo_report_damon_aftr.json
> > diff -u /tmp/output/damo_report_damon.json /tmp/output/damo_report_damon_aftr.json
> > ./damo stop
> > 
> > rm -r /tmp/config
> > rm -r /tmp/output
> > '''
> 
> Thank you for sharing this script.
> 
> However, issue reports in genral are better to clarify the expected and
> unexpected behaviors of the repro together.  Please add such clarifications
> from the next time.

Thank you for your guidance.

> 
> And maybe because of the lack of such clarification, I still don't get what is
> the problem.  Clarify, please?

Yes.  My expected behavior is to completely save and restore the DAMON
SYSFS configuration, including DAMOS Schemes.  But it cannot done by
'damo args damon'.

In the script I provided, it first apply lru.json and then uses
'damo args damon' to export the current configuration file.  I expected
that reapplying this exported configuration (via 'damo start --kdamonds')
would fully restore the previous DAMON SYSFS setup.

However, the current/unexpected behavior is that it drops the DAMOS
Schemes configuration entirely.  In other words, I cannot fully save
and restore the DAMON SYSFS configuration using 'damo args damon'.

[...]

Best regards,
Rui Yan

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-10-09 12:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-28 19:13 [RFC] mm/damon/damo: saving damon sysfs configuration Liew Rui Yan
2026-09-29  7:43 ` SJ Park
2026-09-30  9:58   ` Liew Rui Yan
2026-10-08 12:09     ` Liew Rui Yan
2026-10-08 12:32       ` SJ Park
2026-10-08 13:44         ` Liew Rui Yan
2026-10-08 15:00           ` SJ Park
2026-10-08 16:14             ` Liew Rui Yan
2026-10-09  8:01               ` SJ Park
2026-10-09 12:08                 ` Liew Rui Yan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox