diff mbox series

[v2,2/2] mm/debug: sync up latest migrate_reason to migrate_reason_names

Message ID 20210921064553.293905-3-o451686892@gmail.com (mailing list archive)
State New
Headers show
Series None | expand

Commit Message

Weizhao Ouyang Sept. 21, 2021, 6:45 a.m. UTC
Sync up MR_DEMOTION to migrate_reason_names and add a synch prompt.

Fixes: 26aa2d199d6f ("mm/migrate: demote pages during reclaim")
Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
---
 include/linux/migrate.h | 6 +++++-
 mm/debug.c              | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

Comments

Huang, Ying Sept. 21, 2021, 7:07 a.m. UTC | #1
Weizhao Ouyang <o451686892@gmail.com> writes:

> Sync up MR_DEMOTION to migrate_reason_names and add a synch prompt.
>
> Fixes: 26aa2d199d6f ("mm/migrate: demote pages during reclaim")
> Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
> Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
> ---
>  include/linux/migrate.h | 6 +++++-
>  mm/debug.c              | 1 +
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/migrate.h b/include/linux/migrate.h
> index 326250996b4e..c8077e936691 100644
> --- a/include/linux/migrate.h
> +++ b/include/linux/migrate.h
> @@ -19,6 +19,11 @@ struct migration_target_control;
>   */
>  #define MIGRATEPAGE_SUCCESS		0
>  
> +/*
> + * Keep sync with:
> + * - macro MIGRATE_REASON in include/trace/events/migrate.h
> + * - migrate_reason_names[MR_TYPES] in mm/debug.c
> + */
>  enum migrate_reason {
>  	MR_COMPACTION,
>  	MR_MEMORY_FAILURE,
> @@ -32,7 +37,6 @@ enum migrate_reason {
>  	MR_TYPES
>  };
>  
> -/* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
>  extern const char *migrate_reason_names[MR_TYPES];
>  
>  #ifdef CONFIG_MIGRATION
> diff --git a/mm/debug.c b/mm/debug.c
> index e61037cded98..fae0f81ad831 100644
> --- a/mm/debug.c
> +++ b/mm/debug.c
> @@ -26,6 +26,7 @@ const char *migrate_reason_names[MR_TYPES] = {
>  	"numa_misplaced",
>  	"contig_range",
>  	"longterm_pin",
> +	"demotion",
>  };
>  
>  const struct trace_print_flags pageflag_names[] = {

Can we add BUILD_BUG_ON() somewhere to capture at least some
synchronization issue?

Best Regards,
Huang, Ying
Weizhao Ouyang Sept. 21, 2021, 7:31 a.m. UTC | #2
On 2021/9/21 15:07, Huang, Ying wrote:
> Weizhao Ouyang <o451686892@gmail.com> writes:
>
>> Sync up MR_DEMOTION to migrate_reason_names and add a synch prompt.
>>
>> Fixes: 26aa2d199d6f ("mm/migrate: demote pages during reclaim")
>> Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
>> Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
>> ---
>>  include/linux/migrate.h | 6 +++++-
>>  mm/debug.c              | 1 +
>>  2 files changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/migrate.h b/include/linux/migrate.h
>> index 326250996b4e..c8077e936691 100644
>> --- a/include/linux/migrate.h
>> +++ b/include/linux/migrate.h
>> @@ -19,6 +19,11 @@ struct migration_target_control;
>>   */
>>  #define MIGRATEPAGE_SUCCESS		0
>>  
>> +/*
>> + * Keep sync with:
>> + * - macro MIGRATE_REASON in include/trace/events/migrate.h
>> + * - migrate_reason_names[MR_TYPES] in mm/debug.c
>> + */
>>  enum migrate_reason {
>>  	MR_COMPACTION,
>>  	MR_MEMORY_FAILURE,
>> @@ -32,7 +37,6 @@ enum migrate_reason {
>>  	MR_TYPES
>>  };
>>  
>> -/* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
>>  extern const char *migrate_reason_names[MR_TYPES];
>>  
>>  #ifdef CONFIG_MIGRATION
>> diff --git a/mm/debug.c b/mm/debug.c
>> index e61037cded98..fae0f81ad831 100644
>> --- a/mm/debug.c
>> +++ b/mm/debug.c
>> @@ -26,6 +26,7 @@ const char *migrate_reason_names[MR_TYPES] = {
>>  	"numa_misplaced",
>>  	"contig_range",
>>  	"longterm_pin",
>> +	"demotion",
>>  };
>>  
>>  const struct trace_print_flags pageflag_names[] = {
> Can we add BUILD_BUG_ON() somewhere to capture at least some
> synchronization issue?

Hi Huang, we discussed this in the v1 thread with you and John, seems you
missed it. Now we just add a comment to do the synchronization, and we can
figure out a more general way to use strings which in trace_events straight.

Thanks,
Weizhao
Huang, Ying Sept. 21, 2021, 2:06 p.m. UTC | #3
Weizhao Ouyang <o451686892@gmail.com> writes:

> On 2021/9/21 15:07, Huang, Ying wrote:
>> Weizhao Ouyang <o451686892@gmail.com> writes:
>>
>>> Sync up MR_DEMOTION to migrate_reason_names and add a synch prompt.
>>>
>>> Fixes: 26aa2d199d6f ("mm/migrate: demote pages during reclaim")
>>> Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
>>> Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
>>> ---
>>>  include/linux/migrate.h | 6 +++++-
>>>  mm/debug.c              | 1 +
>>>  2 files changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/include/linux/migrate.h b/include/linux/migrate.h
>>> index 326250996b4e..c8077e936691 100644
>>> --- a/include/linux/migrate.h
>>> +++ b/include/linux/migrate.h
>>> @@ -19,6 +19,11 @@ struct migration_target_control;
>>>   */
>>>  #define MIGRATEPAGE_SUCCESS		0
>>>  
>>> +/*
>>> + * Keep sync with:
>>> + * - macro MIGRATE_REASON in include/trace/events/migrate.h
>>> + * - migrate_reason_names[MR_TYPES] in mm/debug.c
>>> + */
>>>  enum migrate_reason {
>>>  	MR_COMPACTION,
>>>  	MR_MEMORY_FAILURE,
>>> @@ -32,7 +37,6 @@ enum migrate_reason {
>>>  	MR_TYPES
>>>  };
>>>  
>>> -/* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
>>>  extern const char *migrate_reason_names[MR_TYPES];
>>>  
>>>  #ifdef CONFIG_MIGRATION
>>> diff --git a/mm/debug.c b/mm/debug.c
>>> index e61037cded98..fae0f81ad831 100644
>>> --- a/mm/debug.c
>>> +++ b/mm/debug.c
>>> @@ -26,6 +26,7 @@ const char *migrate_reason_names[MR_TYPES] = {
>>>  	"numa_misplaced",
>>>  	"contig_range",
>>>  	"longterm_pin",
>>> +	"demotion",
>>>  };
>>>  
>>>  const struct trace_print_flags pageflag_names[] = {
>> Can we add BUILD_BUG_ON() somewhere to capture at least some
>> synchronization issue?
>
> Hi Huang, we discussed this in the v1 thread with you and John, seems you
> missed it. Now we just add a comment to do the synchronization, and we can
> figure out a more general way to use strings which in trace_events straight.

Got it!  And I think we can add the BUILD_BUG_ON() now and delete it
when we have a better solution to deal with that.  But if you can work
out a better solution quickly, that's fine to ignore this.

Best Regards,
Huang, Ying
John Hubbard Sept. 21, 2021, 6 p.m. UTC | #4
On 9/21/21 07:06, Huang, Ying wrote:
...
>>> Can we add BUILD_BUG_ON() somewhere to capture at least some
>>> synchronization issue?
>>
>> Hi Huang, we discussed this in the v1 thread with you and John, seems you
>> missed it. Now we just add a comment to do the synchronization, and we can
>> figure out a more general way to use strings which in trace_events straight.
> 
> Got it!  And I think we can add the BUILD_BUG_ON() now and delete it
> when we have a better solution to deal with that.  But if you can work
> out a better solution quickly, that's fine to ignore this.
> 

I have a solution now, it's basically what I sent earlier. There appears to be
some confusion about it. I'll send it out as a patch that builds on top of
these two, hopefully in a few hours, if no problems pop up during testing.

thanks,
John Hubbard Sept. 21, 2021, 9:53 p.m. UTC | #5
On 9/21/21 11:00, John Hubbard wrote:
> On 9/21/21 07:06, Huang, Ying wrote:
> ...
>>>> Can we add BUILD_BUG_ON() somewhere to capture at least some
>>>> synchronization issue?
>>>
>>> Hi Huang, we discussed this in the v1 thread with you and John, seems you
>>> missed it. Now we just add a comment to do the synchronization, and we can
>>> figure out a more general way to use strings which in trace_events straight.
>>
>> Got it!  And I think we can add the BUILD_BUG_ON() now and delete it
>> when we have a better solution to deal with that.  But if you can work
>> out a better solution quickly, that's fine to ignore this.
>>
> 
> I have a solution now, it's basically what I sent earlier. There appears to be
> some confusion about it. I'll send it out as a patch that builds on top of
> these two, hopefully in a few hours, if no problems pop up during testing.
> 

Oh OK, I think the confusion was on my end: you are hoping to integrate the
TRACE_DEFINE_ENUM in with this. Let me take a peek there, because otherwise,
we can only reduce, but not fully remove the duplication.

thanks,
Huang, Ying Sept. 22, 2021, 2:07 a.m. UTC | #6
John Hubbard <jhubbard@nvidia.com> writes:

> On 9/21/21 07:06, Huang, Ying wrote:
> ...
>>>> Can we add BUILD_BUG_ON() somewhere to capture at least some
>>>> synchronization issue?
>>>
>>> Hi Huang, we discussed this in the v1 thread with you and John, seems you
>>> missed it. Now we just add a comment to do the synchronization, and we can
>>> figure out a more general way to use strings which in trace_events straight.
>> Got it!  And I think we can add the BUILD_BUG_ON() now and delete it
>> when we have a better solution to deal with that.  But if you can work
>> out a better solution quickly, that's fine to ignore this.
>> 
>
> I have a solution now, it's basically what I sent earlier. There appears to be
> some confusion about it. I'll send it out as a patch that builds on top of
> these two, hopefully in a few hours, if no problems pop up during testing.

Sorry, I didn't read your latest email.  The solution looks good!
Thanks!

Best Regards,
Huang, Ying
John Hubbard Sept. 22, 2021, 4:49 a.m. UTC | #7
On 9/20/21 23:45, Weizhao Ouyang wrote:
> Sync up MR_DEMOTION to migrate_reason_names and add a synch prompt.
> 
> Fixes: 26aa2d199d6f ("mm/migrate: demote pages during reclaim")
> Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
> Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
> ---
>   include/linux/migrate.h | 6 +++++-
>   mm/debug.c              | 1 +
>   2 files changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/migrate.h b/include/linux/migrate.h
> index 326250996b4e..c8077e936691 100644
> --- a/include/linux/migrate.h
> +++ b/include/linux/migrate.h
> @@ -19,6 +19,11 @@ struct migration_target_control;
>    */
>   #define MIGRATEPAGE_SUCCESS		0
>   
> +/*
> + * Keep sync with:
> + * - macro MIGRATE_REASON in include/trace/events/migrate.h
> + * - migrate_reason_names[MR_TYPES] in mm/debug.c
> + */
>   enum migrate_reason {
>   	MR_COMPACTION,
>   	MR_MEMORY_FAILURE,
> @@ -32,7 +37,6 @@ enum migrate_reason {
>   	MR_TYPES
>   };
>   
> -/* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
>   extern const char *migrate_reason_names[MR_TYPES];
>   
>   #ifdef CONFIG_MIGRATION
> diff --git a/mm/debug.c b/mm/debug.c
> index e61037cded98..fae0f81ad831 100644
> --- a/mm/debug.c
> +++ b/mm/debug.c
> @@ -26,6 +26,7 @@ const char *migrate_reason_names[MR_TYPES] = {
>   	"numa_misplaced",
>   	"contig_range",
>   	"longterm_pin",
> +	"demotion",
>   };
>   
>   const struct trace_print_flags pageflag_names[] = {
> 

Looks good.

Reviewed-by: John Hubbard <jhubbard@nvidia.com>


thanks,
diff mbox series

Patch

diff --git a/include/linux/migrate.h b/include/linux/migrate.h
index 326250996b4e..c8077e936691 100644
--- a/include/linux/migrate.h
+++ b/include/linux/migrate.h
@@ -19,6 +19,11 @@  struct migration_target_control;
  */
 #define MIGRATEPAGE_SUCCESS		0
 
+/*
+ * Keep sync with:
+ * - macro MIGRATE_REASON in include/trace/events/migrate.h
+ * - migrate_reason_names[MR_TYPES] in mm/debug.c
+ */
 enum migrate_reason {
 	MR_COMPACTION,
 	MR_MEMORY_FAILURE,
@@ -32,7 +37,6 @@  enum migrate_reason {
 	MR_TYPES
 };
 
-/* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
 extern const char *migrate_reason_names[MR_TYPES];
 
 #ifdef CONFIG_MIGRATION
diff --git a/mm/debug.c b/mm/debug.c
index e61037cded98..fae0f81ad831 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -26,6 +26,7 @@  const char *migrate_reason_names[MR_TYPES] = {
 	"numa_misplaced",
 	"contig_range",
 	"longterm_pin",
+	"demotion",
 };
 
 const struct trace_print_flags pageflag_names[] = {