OSDN Git Service

mm/damon/core: add number of each enum type values
authorSeongJae Park <sj@kernel.org>
Tue, 22 Mar 2022 21:49:24 +0000 (14:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Mar 2022 22:57:13 +0000 (15:57 -0700)
This commit declares the number of legal values for each DAMON enum types
to make traversals of such DAMON enum types easy and safe.

Link: https://lkml.kernel.org/r/20220228081314.5770-3-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: Xin Hao <xhao@linux.alibaba.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/damon.h

index f8e99e4..f23cbfa 100644 (file)
@@ -87,6 +87,7 @@ struct damon_target {
  * @DAMOS_HUGEPAGE:    Call ``madvise()`` for the region with MADV_HUGEPAGE.
  * @DAMOS_NOHUGEPAGE:  Call ``madvise()`` for the region with MADV_NOHUGEPAGE.
  * @DAMOS_STAT:                Do nothing but count the stat.
+ * @NR_DAMOS_ACTIONS:  Total number of DAMOS actions
  */
 enum damos_action {
        DAMOS_WILLNEED,
@@ -95,6 +96,7 @@ enum damos_action {
        DAMOS_HUGEPAGE,
        DAMOS_NOHUGEPAGE,
        DAMOS_STAT,             /* Do nothing but only record the stat */
+       NR_DAMOS_ACTIONS,
 };
 
 /**
@@ -157,10 +159,12 @@ struct damos_quota {
  *
  * @DAMOS_WMARK_NONE:          Ignore the watermarks of the given scheme.
  * @DAMOS_WMARK_FREE_MEM_RATE: Free memory rate of the system in [0,1000].
+ * @NR_DAMOS_WMARK_METRICS:    Total number of DAMOS watermark metrics
  */
 enum damos_wmark_metric {
        DAMOS_WMARK_NONE,
        DAMOS_WMARK_FREE_MEM_RATE,
+       NR_DAMOS_WMARK_METRICS,
 };
 
 /**