linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V1 1/2] mm/damon/dbgfs: Put "paddr" check into damon_pa_check() func
       [not found] <cover.1642722660.git.xhao@linux.alibaba.com>
@ 2022-01-20 16:04 ` Xin Hao
  2022-01-20 17:47   ` SeongJae Park
  2022-01-20 16:04 ` [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig Xin Hao
  1 sibling, 1 reply; 6+ messages in thread
From: Xin Hao @ 2022-01-20 16:04 UTC (permalink / raw)
  To: sj; +Cc: xhao, akpm, linux-mm, linux-kernel

The purpose of putting "paddr" check into damon_pa_check() func
is to better solve "DAMON_DBGFS" dependency on both "DAMON_VADDR"
and "DAMON_PADDR".

Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
---
 include/linux/damon.h | 1 +
 mm/damon/dbgfs.c      | 2 +-
 mm/damon/paddr.c      | 8 ++++++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/include/linux/damon.h b/include/linux/damon.h
index 5e1e3a128b77..794b5f453662 100644
--- a/include/linux/damon.h
+++ b/include/linux/damon.h
@@ -504,6 +504,7 @@ void damon_va_set_primitives(struct damon_ctx *ctx);
 #endif	/* CONFIG_DAMON_VADDR */

 #ifdef CONFIG_DAMON_PADDR
+bool damon_pa_check(char *buf, size_t count);
 bool damon_pa_target_valid(void *t);
 void damon_pa_set_primitives(struct damon_ctx *ctx);
 #endif	/* CONFIG_DAMON_PADDR */
diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c
index 5b899601e56c..cdb9c1e2ab29 100644
--- a/mm/damon/dbgfs.c
+++ b/mm/damon/dbgfs.c
@@ -374,7 +374,7 @@ static ssize_t dbgfs_target_ids_write(struct file *file,
 	if (IS_ERR(kbuf))
 		return PTR_ERR(kbuf);

-	if (!strncmp(kbuf, "paddr\n", count)) {
+	if (damon_pa_check(kbuf, count)) {
 		id_is_pid = false;
 		/* target id is meaningless here, but we set it just for fun */
 		scnprintf(kbuf, count, "42    ");
diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index 5e8244f65a1a..14a6bf2a2adb 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -208,6 +208,14 @@ static unsigned int damon_pa_check_accesses(struct damon_ctx *ctx)
 	return max_nr_accesses;
 }

+bool damon_pa_check(char *buf, size_t count)
+{
+	if (!strncmp(buf, "paddr\n", count))
+		return true;
+
+	return false;
+}
+
 bool damon_pa_target_valid(void *t)
 {
 	return true;
--
2.27.0

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

* [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig
       [not found] <cover.1642722660.git.xhao@linux.alibaba.com>
  2022-01-20 16:04 ` [PATCH V1 1/2] mm/damon/dbgfs: Put "paddr" check into damon_pa_check() func Xin Hao
@ 2022-01-20 16:04 ` Xin Hao
  2022-01-20 17:46   ` SeongJae Park
  1 sibling, 1 reply; 6+ messages in thread
From: Xin Hao @ 2022-01-20 16:04 UTC (permalink / raw)
  To: sj; +Cc: xhao, akpm, linux-mm, linux-kernel

If you want to support "DAMON_DBGFS" in config file, it only depends on
any one of "DAMON_VADDR" and "DAMON_PADDR", and sometimes we just want to
use damon virtual address function, but it is unreasonable to include
"DAMON_PADDR" in config file which cause the damon/paddr.c be compiled.

So there just do little change to fix it.

Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
---
 include/linux/damon.h | 16 ++++++++++++++++
 mm/damon/Kconfig      |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/include/linux/damon.h b/include/linux/damon.h
index 794b5f453662..c83e4588aa45 100644
--- a/include/linux/damon.h
+++ b/include/linux/damon.h
@@ -501,12 +501,28 @@ int damon_stop(struct damon_ctx **ctxs, int nr_ctxs);
 #ifdef CONFIG_DAMON_VADDR
 bool damon_va_target_valid(void *t);
 void damon_va_set_primitives(struct damon_ctx *ctx);
+#else
+static inline void damon_va_set_primitives(struct damon_ctx *ctx) { }
+static inline bool damon_va_target_valid(void *t)
+{
+	return false;
+}
 #endif	/* CONFIG_DAMON_VADDR */

 #ifdef CONFIG_DAMON_PADDR
 bool damon_pa_check(char *buf, size_t count);
 bool damon_pa_target_valid(void *t);
 void damon_pa_set_primitives(struct damon_ctx *ctx);
+#else
+static inline bool damon_pa_check(char *buf, size_t count)
+{
+	return false;
+}
+static inline void damon_pa_set_primitives(struct damon_ctx *ctx) { }
+static inline bool damon_pa_target_valid(void *t)
+{
+	return false;
+}
 #endif	/* CONFIG_DAMON_PADDR */

 #endif	/* _DAMON_H */
diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
index 5bcf05851ad0..a8952af3c8bf 100644
--- a/mm/damon/Kconfig
+++ b/mm/damon/Kconfig
@@ -54,7 +54,7 @@ config DAMON_VADDR_KUNIT_TEST

 config DAMON_DBGFS
 	bool "DAMON debugfs interface"
-	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
+	depends on (DAMON_VADDR || DAMON_PADDR) && DEBUG_FS
 	help
 	  This builds the debugfs interface for DAMON.  The user space admins
 	  can use the interface for arbitrary data access monitoring.
--
2.27.0

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

* Re: [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig
  2022-01-20 16:04 ` [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig Xin Hao
@ 2022-01-20 17:46   ` SeongJae Park
  2022-01-21  2:14     ` Xin Hao
  0 siblings, 1 reply; 6+ messages in thread
From: SeongJae Park @ 2022-01-20 17:46 UTC (permalink / raw)
  To: Xin Hao; +Cc: sj, akpm, linux-mm, linux-kernel

Hi Xin,


I guess this should be at least v3, as you posted v1[1] and v2[2] before.
Could you please also summarize what changes are made from v2?

On Fri, 21 Jan 2022 00:04:28 +0800 Xin Hao <xhao@linux.alibaba.com> wrote:

> If you want to support "DAMON_DBGFS" in config file, it only depends on
> any one of "DAMON_VADDR" and "DAMON_PADDR", and sometimes we just want to
> use damon virtual address function, but it is unreasonable to include
> "DAMON_PADDR" in config file which cause the damon/paddr.c be compiled.

My comment[3] to the v2 was,

    So, unless you make me believe the benefit is big enough and all possible
    corner cases are well handled and sufficiently tested, I'm sorry but I would
    not be convinced with this change.

I don't find answers to the requests here.  Could you please add those if you
have?

[1] https://lore.kernel.org/linux-mm/fbf27c39e8f23d12d5474b9b659d3d45f8dd38ca.1637429074.git.xhao@lin
ux.alibaba.com/
[2] https://lore.kernel.org/linux-mm/b6bd0063-efb2-62ce-53ee-0193f63262d8@linux.alibaba.com/
[3] https://lore.kernel.org/linux-mm/20211123103855.12592-1-sj@kernel.org/


Thanks,
SJ

> 
> So there just do little change to fix it.
> 
> Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
> ---
>  include/linux/damon.h | 16 ++++++++++++++++
>  mm/damon/Kconfig      |  2 +-
>  2 files changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/damon.h b/include/linux/damon.h
> index 794b5f453662..c83e4588aa45 100644
> --- a/include/linux/damon.h
> +++ b/include/linux/damon.h
> @@ -501,12 +501,28 @@ int damon_stop(struct damon_ctx **ctxs, int nr_ctxs);
>  #ifdef CONFIG_DAMON_VADDR
>  bool damon_va_target_valid(void *t);
>  void damon_va_set_primitives(struct damon_ctx *ctx);
> +#else
> +static inline void damon_va_set_primitives(struct damon_ctx *ctx) { }
> +static inline bool damon_va_target_valid(void *t)
> +{
> +	return false;
> +}
>  #endif	/* CONFIG_DAMON_VADDR */
> 
>  #ifdef CONFIG_DAMON_PADDR
>  bool damon_pa_check(char *buf, size_t count);
>  bool damon_pa_target_valid(void *t);
>  void damon_pa_set_primitives(struct damon_ctx *ctx);
> +#else
> +static inline bool damon_pa_check(char *buf, size_t count)
> +{
> +	return false;
> +}
> +static inline void damon_pa_set_primitives(struct damon_ctx *ctx) { }
> +static inline bool damon_pa_target_valid(void *t)
> +{
> +	return false;
> +}
>  #endif	/* CONFIG_DAMON_PADDR */
> 
>  #endif	/* _DAMON_H */
> diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
> index 5bcf05851ad0..a8952af3c8bf 100644
> --- a/mm/damon/Kconfig
> +++ b/mm/damon/Kconfig
> @@ -54,7 +54,7 @@ config DAMON_VADDR_KUNIT_TEST
> 
>  config DAMON_DBGFS
>  	bool "DAMON debugfs interface"
> -	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
> +	depends on (DAMON_VADDR || DAMON_PADDR) && DEBUG_FS
>  	help
>  	  This builds the debugfs interface for DAMON.  The user space admins
>  	  can use the interface for arbitrary data access monitoring.
> --
> 2.27.0
> 

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

* Re: [PATCH V1 1/2] mm/damon/dbgfs: Put "paddr" check into damon_pa_check() func
  2022-01-20 16:04 ` [PATCH V1 1/2] mm/damon/dbgfs: Put "paddr" check into damon_pa_check() func Xin Hao
@ 2022-01-20 17:47   ` SeongJae Park
  0 siblings, 0 replies; 6+ messages in thread
From: SeongJae Park @ 2022-01-20 17:47 UTC (permalink / raw)
  To: Xin Hao; +Cc: sj, akpm, linux-mm, linux-kernel

Hi Xin,

On Fri, 21 Jan 2022 00:04:27 +0800 Xin Hao <xhao@linux.alibaba.com> wrote:

> The purpose of putting "paddr" check into damon_pa_check() func
> is to better solve "DAMON_DBGFS" dependency on both "DAMON_VADDR"
> and "DAMON_PADDR".

Syntax of "paddr" is dbgfs's own.  I don't think handling it in paddr is a
right thing to do.


Thanks,
SJ

> 
> Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
> ---
>  include/linux/damon.h | 1 +
>  mm/damon/dbgfs.c      | 2 +-
>  mm/damon/paddr.c      | 8 ++++++++
>  3 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/damon.h b/include/linux/damon.h
> index 5e1e3a128b77..794b5f453662 100644
> --- a/include/linux/damon.h
> +++ b/include/linux/damon.h
> @@ -504,6 +504,7 @@ void damon_va_set_primitives(struct damon_ctx *ctx);
>  #endif	/* CONFIG_DAMON_VADDR */
> 
>  #ifdef CONFIG_DAMON_PADDR
> +bool damon_pa_check(char *buf, size_t count);
>  bool damon_pa_target_valid(void *t);
>  void damon_pa_set_primitives(struct damon_ctx *ctx);
>  #endif	/* CONFIG_DAMON_PADDR */
> diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c
> index 5b899601e56c..cdb9c1e2ab29 100644
> --- a/mm/damon/dbgfs.c
> +++ b/mm/damon/dbgfs.c
> @@ -374,7 +374,7 @@ static ssize_t dbgfs_target_ids_write(struct file *file,
>  	if (IS_ERR(kbuf))
>  		return PTR_ERR(kbuf);
> 
> -	if (!strncmp(kbuf, "paddr\n", count)) {
> +	if (damon_pa_check(kbuf, count)) {
>  		id_is_pid = false;
>  		/* target id is meaningless here, but we set it just for fun */
>  		scnprintf(kbuf, count, "42    ");
> diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
> index 5e8244f65a1a..14a6bf2a2adb 100644
> --- a/mm/damon/paddr.c
> +++ b/mm/damon/paddr.c
> @@ -208,6 +208,14 @@ static unsigned int damon_pa_check_accesses(struct damon_ctx *ctx)
>  	return max_nr_accesses;
>  }
> 
> +bool damon_pa_check(char *buf, size_t count)
> +{
> +	if (!strncmp(buf, "paddr\n", count))
> +		return true;
> +
> +	return false;
> +}
> +
>  bool damon_pa_target_valid(void *t)
>  {
>  	return true;
> --
> 2.27.0
> 
> 

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

* Re: [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig
  2022-01-20 17:46   ` SeongJae Park
@ 2022-01-21  2:14     ` Xin Hao
  2022-01-21  9:45       ` SeongJae Park
  0 siblings, 1 reply; 6+ messages in thread
From: Xin Hao @ 2022-01-21  2:14 UTC (permalink / raw)
  To: SeongJae Park; +Cc: akpm, linux-mm, linux-kernel


On 1/21/22 1:46 AM, SeongJae Park wrote:
> Hi Xin,
>
>
> I guess this should be at least v3, as you posted v1[1] and v2[2] before.
> Could you please also summarize what changes are made from v2?
>
> On Fri, 21 Jan 2022 00:04:28 +0800 Xin Hao <xhao@linux.alibaba.com> wrote:
>
>> If you want to support "DAMON_DBGFS" in config file, it only depends on
>> any one of "DAMON_VADDR" and "DAMON_PADDR", and sometimes we just want to
>> use damon virtual address function, but it is unreasonable to include
>> "DAMON_PADDR" in config file which cause the damon/paddr.c be compiled.
> My comment[3] to the v2 was,
>
>      So, unless you make me believe the benefit is big enough and all possible
>      corner cases are well handled and sufficiently tested, I'm sorry but I would
>      not be convinced with this change.

This has really bothered me for a long time. I don't send patches just 
for the sake of sending patches. I integrate DAMON patches into my 
kernel, and one obvious problem is that I don't use paddr at all. But my 
config had to select DAMON_PADDR so that my DAMON codes would compile 
and work. I wanted DAMON code to be as simple and clean as possible, 
which is why I sent the patch for three times.


I quite agree with what you said, it is necessary to conduct sufficient 
test and verification, which I have not done enough. However, I will 
conduct further test later. I don't think we should not modify the 
previous test case just because it will affect it. I can guarantee the 
tools/testing/selftests/Damon and kunit Damon test right before i send a 
new version.

>
> I don't find answers to the requests here.  Could you please add those if you
> have?
>
> [1] https://lore.kernel.org/linux-mm/fbf27c39e8f23d12d5474b9b659d3d45f8dd38ca.1637429074.git.xhao@lin
> ux.alibaba.com/
> [2] https://lore.kernel.org/linux-mm/b6bd0063-efb2-62ce-53ee-0193f63262d8@linux.alibaba.com/
> [3] https://lore.kernel.org/linux-mm/20211123103855.12592-1-sj@kernel.org/
>
>
> Thanks,
> SJ
>
>> So there just do little change to fix it.
>>
>> Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
>> ---
>>   include/linux/damon.h | 16 ++++++++++++++++
>>   mm/damon/Kconfig      |  2 +-
>>   2 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/damon.h b/include/linux/damon.h
>> index 794b5f453662..c83e4588aa45 100644
>> --- a/include/linux/damon.h
>> +++ b/include/linux/damon.h
>> @@ -501,12 +501,28 @@ int damon_stop(struct damon_ctx **ctxs, int nr_ctxs);
>>   #ifdef CONFIG_DAMON_VADDR
>>   bool damon_va_target_valid(void *t);
>>   void damon_va_set_primitives(struct damon_ctx *ctx);
>> +#else
>> +static inline void damon_va_set_primitives(struct damon_ctx *ctx) { }
>> +static inline bool damon_va_target_valid(void *t)
>> +{
>> +	return false;
>> +}
>>   #endif	/* CONFIG_DAMON_VADDR */
>>
>>   #ifdef CONFIG_DAMON_PADDR
>>   bool damon_pa_check(char *buf, size_t count);
>>   bool damon_pa_target_valid(void *t);
>>   void damon_pa_set_primitives(struct damon_ctx *ctx);
>> +#else
>> +static inline bool damon_pa_check(char *buf, size_t count)
>> +{
>> +	return false;
>> +}
>> +static inline void damon_pa_set_primitives(struct damon_ctx *ctx) { }
>> +static inline bool damon_pa_target_valid(void *t)
>> +{
>> +	return false;
>> +}
>>   #endif	/* CONFIG_DAMON_PADDR */
>>
>>   #endif	/* _DAMON_H */
>> diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
>> index 5bcf05851ad0..a8952af3c8bf 100644
>> --- a/mm/damon/Kconfig
>> +++ b/mm/damon/Kconfig
>> @@ -54,7 +54,7 @@ config DAMON_VADDR_KUNIT_TEST
>>
>>   config DAMON_DBGFS
>>   	bool "DAMON debugfs interface"
>> -	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
>> +	depends on (DAMON_VADDR || DAMON_PADDR) && DEBUG_FS
>>   	help
>>   	  This builds the debugfs interface for DAMON.  The user space admins
>>   	  can use the interface for arbitrary data access monitoring.
>> --
>> 2.27.0
>>
-- 
Best Regards!
Xin Hao


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

* Re: [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig
  2022-01-21  2:14     ` Xin Hao
@ 2022-01-21  9:45       ` SeongJae Park
  0 siblings, 0 replies; 6+ messages in thread
From: SeongJae Park @ 2022-01-21  9:45 UTC (permalink / raw)
  To: Xin Hao; +Cc: SeongJae Park, akpm, linux-mm, linux-kernel

Hi Xin,

On Fri, 21 Jan 2022 10:14:36 +0800 Xin Hao <xhao@linux.alibaba.com> wrote:

> 
> On 1/21/22 1:46 AM, SeongJae Park wrote:
> > Hi Xin,
> >
> >
> > I guess this should be at least v3, as you posted v1[1] and v2[2] before.
> > Could you please also summarize what changes are made from v2?
> >
> > On Fri, 21 Jan 2022 00:04:28 +0800 Xin Hao <xhao@linux.alibaba.com> wrote:
> >
> >> If you want to support "DAMON_DBGFS" in config file, it only depends on
> >> any one of "DAMON_VADDR" and "DAMON_PADDR", and sometimes we just want to
> >> use damon virtual address function, but it is unreasonable to include
> >> "DAMON_PADDR" in config file which cause the damon/paddr.c be compiled.
> > My comment[3] to the v2 was,
> >
> >      So, unless you make me believe the benefit is big enough and all possible
> >      corner cases are well handled and sufficiently tested, I'm sorry but I would
> >      not be convinced with this change.
> 
> This has really bothered me for a long time. I don't send patches just 
> for the sake of sending patches. I integrate DAMON patches into my 
> kernel, and one obvious problem is that I don't use paddr at all. But my 
> config had to select DAMON_PADDR so that my DAMON codes would compile 
> and work. I wanted DAMON code to be as simple and clean as possible, 
> which is why I sent the patch for three times.

Thank you for the clarification.  I know you really want to improve DAMON and
made great progress already.  I really appreciate that.  I can also understand
your frustration.  Of course, it's optimal to compile only what we need.
However, this code is for the community, not for specific users.  And, I still
unsure how much pain is incurred by the compilation of one additional source
file for you, and others in the community.

And, sometimes we can compile some of unnecessary code and thus make the binary
a tiny bit bigger to make the code simple.  If it seems the benefit of dropping
DAMON_PADDR dependency is clearly bigger than increased complexity of dbgfs and
the change doesn't break any other things to me, I will happily give you my
'Reviewed-by:'.  Else, I'm sorry but I wouldn't.

Also, please note that I have a plan[1] to make more reliable DAMON user
interface based on sysfs, and it would not have such unnecessary dependencies.

[1] https://lore.kernel.org/linux-mm/20220119133110.24901-1-sj@kernel.org/

> 
> 
> I quite agree with what you said, it is necessary to conduct sufficient 
> test and verification, which I have not done enough. However, I will 
> conduct further test later. I don't think we should not modify the 
> previous test case just because it will affect it. I can guarantee the 
> tools/testing/selftests/Damon and kunit Damon test right before i send a 
> new version.

Those are for minimal tests.  I'd like to suggest you to do
https://github.com/awslabs/damon-tests/tree/master/corr, or at least
https://github.com/awslabs/damo/blob/next/tests/run.sh in addition to those.

Also, please ensure you are caring not only DAMON_VADDR && DEBUG_FS, but also
DAMON_PADDR && DEBUG_FS.  This also reveals another downside of this patch.
This requires DAMON tests to cover the one more configuration case.  And
actually it's currently affecting you.  I hope the benefit of next patch
clearly outweighs the effort for that.

Of course, it would be even greter if you can clearly guarantee the patch will
not break other things with the code or comments.


Thanks,
SJ

> 
> >
> > I don't find answers to the requests here.  Could you please add those if you
> > have?
> >
> > [1] https://lore.kernel.org/linux-mm/fbf27c39e8f23d12d5474b9b659d3d45f8dd38ca.1637429074.git.xhao@lin
> > ux.alibaba.com/
> > [2] https://lore.kernel.org/linux-mm/b6bd0063-efb2-62ce-53ee-0193f63262d8@linux.alibaba.com/
> > [3] https://lore.kernel.org/linux-mm/20211123103855.12592-1-sj@kernel.org/
> >
> >
> > Thanks,
> > SJ
> >
> >> So there just do little change to fix it.
> >>
> >> Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
> >> ---
> >>   include/linux/damon.h | 16 ++++++++++++++++
> >>   mm/damon/Kconfig      |  2 +-
> >>   2 files changed, 17 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/include/linux/damon.h b/include/linux/damon.h
> >> index 794b5f453662..c83e4588aa45 100644
> >> --- a/include/linux/damon.h
> >> +++ b/include/linux/damon.h
> >> @@ -501,12 +501,28 @@ int damon_stop(struct damon_ctx **ctxs, int nr_ctxs);
> >>   #ifdef CONFIG_DAMON_VADDR
> >>   bool damon_va_target_valid(void *t);
> >>   void damon_va_set_primitives(struct damon_ctx *ctx);
> >> +#else
> >> +static inline void damon_va_set_primitives(struct damon_ctx *ctx) { }
> >> +static inline bool damon_va_target_valid(void *t)
> >> +{
> >> +	return false;
> >> +}
> >>   #endif	/* CONFIG_DAMON_VADDR */
> >>
> >>   #ifdef CONFIG_DAMON_PADDR
> >>   bool damon_pa_check(char *buf, size_t count);
> >>   bool damon_pa_target_valid(void *t);
> >>   void damon_pa_set_primitives(struct damon_ctx *ctx);
> >> +#else
> >> +static inline bool damon_pa_check(char *buf, size_t count)
> >> +{
> >> +	return false;
> >> +}
> >> +static inline void damon_pa_set_primitives(struct damon_ctx *ctx) { }
> >> +static inline bool damon_pa_target_valid(void *t)
> >> +{
> >> +	return false;
> >> +}
> >>   #endif	/* CONFIG_DAMON_PADDR */
> >>
> >>   #endif	/* _DAMON_H */
> >> diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
> >> index 5bcf05851ad0..a8952af3c8bf 100644
> >> --- a/mm/damon/Kconfig
> >> +++ b/mm/damon/Kconfig
> >> @@ -54,7 +54,7 @@ config DAMON_VADDR_KUNIT_TEST
> >>
> >>   config DAMON_DBGFS
> >>   	bool "DAMON debugfs interface"
> >> -	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
> >> +	depends on (DAMON_VADDR || DAMON_PADDR) && DEBUG_FS
> >>   	help
> >>   	  This builds the debugfs interface for DAMON.  The user space admins
> >>   	  can use the interface for arbitrary data access monitoring.
> >> --
> >> 2.27.0
> >>
> -- 
> Best Regards!
> Xin Hao
> 

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

end of thread, other threads:[~2022-01-21  9:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <cover.1642722660.git.xhao@linux.alibaba.com>
2022-01-20 16:04 ` [PATCH V1 1/2] mm/damon/dbgfs: Put "paddr" check into damon_pa_check() func Xin Hao
2022-01-20 17:47   ` SeongJae Park
2022-01-20 16:04 ` [PATCH V1 2/2] mm/damon/dbgfs: Modify Damon dbfs interface dependency in Kconfig Xin Hao
2022-01-20 17:46   ` SeongJae Park
2022-01-21  2:14     ` Xin Hao
2022-01-21  9:45       ` SeongJae Park

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).