From 30547a54ab834c3c2e69ae45df73cefa1489aece Mon Sep 17 00:00:00 2001 From: Gou Hao Date: Mon, 26 Sep 2022 17:08:42 +0800 Subject: [PATCH 1/2] anolis: mm/damon: move numa_stat_enabled_key to core.c ANBZ: #2280 Compilation failed when CONFIG_DAMON_DBGFS was turned off, like this: mm/damon/core.o: undefined reference to `numa_stat_enabled_key' mm/damon/vaddr.o: undefined reference to `numa_stat_enabled_key' At present, 'numa_stat_enabled_key' is defined in dbgfs.c, it used in many files(core.c, dbgfs.c, vaddr.c), so compilation failed when CONFIG_DAMON_DBGFS was turned off. So put the definition of 'numa_stat_enabled_key' in core.c is appropriate. Signed-off-by: Gou Hao --- mm/damon/core.c | 2 ++ mm/damon/dbgfs.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 0617cdaa89aa..2303cde95eca 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -27,6 +27,8 @@ static DEFINE_MUTEX(damon_lock); static int nr_running_ctxs; +DEFINE_STATIC_KEY_FALSE(numa_stat_enabled_key); + /* * Construct a damon_region struct * diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c index ecf4a62d554b..78895a174045 100644 --- a/mm/damon/dbgfs.c +++ b/mm/damon/dbgfs.c @@ -609,8 +609,6 @@ static ssize_t dbgfs_kdamond_pid_read(struct file *file, return len; } -DEFINE_STATIC_KEY_FALSE(numa_stat_enabled_key); - static ssize_t dbgfs_numa_stat_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { -- Gitee From ff17f440ec673b0c890e8c3c23c6efa73e06aeed Mon Sep 17 00:00:00 2001 From: Gou Hao Date: Mon, 26 Sep 2022 17:17:16 +0800 Subject: [PATCH 2/2] anolis: mm/damon: add the limitation of CONFIG_DAMON_DBGFS to damon_numa_fault ANBZ: #2280 Compilation failed when CONFIG_DAMON_DBGFS was turned off, like this: mm/damon/core.c:1110: undefined reference to `dbgfs_nr_ctxs' mm/damon/core.c:1110: undefined reference to `dbgfs_ctxs' 'dbgfs_nr_ctxs' and 'dbgfs_ctxs' is defined in dbgfs.c, it used in core.c, so compilation failed when CONFIG_DAMON_DBGFS was turned off. These two fields are mainly used by the damon_numa_fault interface, so add the limitation of CONFIG_DAMON_DBGFS to it. Signed-off-by: Gou Hao --- include/linux/damon.h | 8 ++++++-- mm/damon/core.c | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 450a70936ebb..875efe8f1377 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -17,8 +17,10 @@ #define DAMON_MIN_REGION PAGE_SIZE DECLARE_STATIC_KEY_FALSE(numa_stat_enabled_key); +#ifdef CONFIG_DAMON_DBGFS extern struct damon_ctx **dbgfs_ctxs; extern int dbgfs_nr_ctxs; +#endif /** * struct damon_addr_range - Represents an address region of [@start, @end). @@ -369,11 +371,13 @@ void damon_va_cleanup(struct damon_ctx *ctx); int damon_va_apply_scheme(struct damon_ctx *context, struct damon_target *t, struct damon_region *r, struct damos *scheme); void damon_va_set_primitives(struct damon_ctx *ctx); +#endif /* CONFIG_DAMON_VADDR */ + +#if defined(CONFIG_DAMON_DBGFS) && defined(CONFIG_DAMON_VADDR) void damon_numa_fault(int page_nid, int node_id, struct vm_fault *vmf); #else static inline void damon_numa_fault(int page_nid, int node_id, struct vm_fault *vmf) { } - -#endif /* CONFIG_DAMON_VADDR */ +#endif #ifdef CONFIG_DAMON_PADDR diff --git a/mm/damon/core.c b/mm/damon/core.c index 2303cde95eca..87eabb059898 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -873,6 +873,7 @@ static int kdamond_fn(void *data) return 0; } +#if defined(CONFIG_DAMON_DBGFS) && defined(CONFIG_DAMON_VADDR) static struct damon_target *get_damon_target(struct task_struct *task) { int i; @@ -939,5 +940,6 @@ void damon_numa_fault(int page_nid, int node_id, struct vm_fault *vmf) } } } +#endif #include "core-test.h" -- Gitee