Re: [PATCH V1 2/2] mm/damon: Add 'age' of region tracepoint support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Park:

On 2021/11/10 下午9:16, SeongJae Park wrote:
On Wed, 10 Nov 2021 20:13:14 +0800 Xin Hao <xhao@xxxxxxxxxxxxxxxxx> wrote:

In patch "mm/damon: add a tracepoint", it adds a
tracepoint for DAMON, it can monitor each region
for each aggregation interval, Now the region add
a new 'age' variable, some primitive would calculate
the priority of each region as a weight, there put it
into tracepoint, so we can easily track the change of
its value through perf or damon-tools.
DAMON calculates the age using the address range and nr_accesses of the region,
which are already in the tracepoint.  In other words, user space can calculate
the age on their own.  Therefore I thought putting age in the tracepoint as
adding unnecessary information, at the moment of the implementation.

Of course, I would missing some use cases that need this information in the
tracepoint.  Furthermore, adding just one more value in the tracepoint wouldn't
incur a real issue.  But, I'd like to know why this is necessary and how much
benefit it provides.  Xin, could you please share that?

I think these two variables nr_access &  age have different meanings, the nr_access only reflect the

period of  sample_interval,  We may be able to get the change of age through continuous long-term sampling,

But I think this is not very convenient.

We only need to observe the change of age value a small number of times to replace the continue sampling of the region.

For example, age has been increasing to 141, but nr_access shows a value of 0 at a certain time. Through this,we can

conclude that the region has a very low nr_access value for a long time.

This datas that  i used perf tool to record & script 

       kdamond.0  8282 [007]   664.187237: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 305254400-597266432: 0 140
       kdamond.0  8282 [007]   664.187237: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 597266432-900239360: 0 140
       kdamond.0  8282 [007]   664.187237: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 900239360-980148224: 0 140
       kdamond.0  8282 [007]   664.187238: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281471544459264-281471789129728: 0 1
       kdamond.0  8282 [007]   664.187238: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281471789129728-281472066732032: 0 0
       kdamond.0  8282 [007]   664.187238: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472066732032-281472281972736: 0 1
       kdamond.0  8282 [007]   664.187239: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472281972736-281472346124288: 1 0
       kdamond.0  8282 [007]   664.187239: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472346124288-281472379187200: 0 1
       kdamond.0  8282 [007]   664.187239: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472379187200-281472678154240: 1 0
       kdamond.0  8282 [007]   664.187239: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472678154240-281472951209984: 1 0
       kdamond.0  8282 [007]   664.187240: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472951209984-281473069228032: 2 0
       kdamond.0  8282 [007]   664.187240: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473069228032-281473299972096: 0 1
       kdamond.0  8282 [007]   664.187241: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473299972096-281473603727360: 0 0
       kdamond.0  8282 [007]   664.187241: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473603727360-281473611063296: 0 5
       kdamond.0  8282 [007]   664.187242: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281474851557376-281474851692544: 0 140
       kdamond.0  8282 [007]   664.287642: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 4194304-305254400: 0 141
       kdamond.0  8282 [007]   664.287643: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 305254400-597266432: 0 141
       kdamond.0  8282 [007]   664.287643: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 597266432-900239360: 0 141
       kdamond.0  8282 [007]   664.287650: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 900239360-980148224: 0 141
       kdamond.0  8282 [007]   664.287650: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281471544459264-281471789129728: 0 2
       kdamond.0  8282 [007]   664.287651: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281471789129728-281472066732032: 0 1
       kdamond.0  8282 [007]   664.287651: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472066732032-281472349429760: 0 0
       kdamond.0  8282 [007]   664.287651: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472349429760-281472588464128: 0 0
       kdamond.0  8282 [007]   664.287652: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472588464128-281472678154240: 0 0
       kdamond.0  8282 [007]   664.287652: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472678154240-281472951209984: 0 0
       kdamond.0  8282 [007]   664.287652: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281472951209984-281473092300800: 1 0
       kdamond.0  8282 [007]   664.287653: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473092300800-281473299972096: 0 2
       kdamond.0  8282 [007]   664.287654: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473299972096-281473421471744: 0 1
       kdamond.0  8282 [007]   664.287654: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473421471744-281473603727360: 2 0
       kdamond.0  8282 [007]   664.287654: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281473603727360-281473611063296: 0 6
       kdamond.0  8282 [007]   664.287655: damon:damon_aggregated: target_id=18446462650354140800 nr_regions=16 281474851557376-281474851692544: 0 141



Thanks,
SJ

Signed-off-by: Xin Hao <xhao@xxxxxxxxxxxxxxxxx>
---
 include/trace/events/damon.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/trace/events/damon.h b/include/trace/events/damon.h
index 2f422f4f1fb9..99ffa601e351 100644
--- a/include/trace/events/damon.h
+++ b/include/trace/events/damon.h
@@ -22,6 +22,7 @@ TRACE_EVENT(damon_aggregated,
 		__field(unsigned long, start)
 		__field(unsigned long, end)
 		__field(unsigned int, nr_accesses)
+		__field(unsigned int, age)
 	),
 
 	TP_fast_assign(
@@ -30,11 +31,13 @@ TRACE_EVENT(damon_aggregated,
 		__entry->start = r->ar.start;
 		__entry->end = r->ar.end;
 		__entry->nr_accesses = r->nr_accesses;
+		__entry->age = r->age;
 	),
 
-	TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u",
+	TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u %u",
 			__entry->target_id, __entry->nr_regions,
-			__entry->start, __entry->end, __entry->nr_accesses)
+			__entry->start, __entry->end,
+			__entry->nr_accesses, __entry->age)
 );
 
 #endif /* _TRACE_DAMON_H */
-- 
2.31.0
-- 
Best Regards!
Xin Hao

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux