diff mbox series

[5/7] mm/khugepaged: use helper macro __ATTR_RW

Message ID 20220611084731.55155-6-linmiaohe@huawei.com (mailing list archive)
State New
Headers show
Series A few cleanup patches for khugepaged | expand

Commit Message

Miaohe Lin June 11, 2022, 8:47 a.m. UTC
Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
readability improvement.

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
---
 mm/khugepaged.c | 37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

Comments

Zach O'Keefe June 15, 2022, 12:29 a.m. UTC | #1
On 11 Jun 16:47, Miaohe Lin wrote:
> Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
> readability improvement.
> 
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
>  mm/khugepaged.c | 37 +++++++++++++++----------------------
>  1 file changed, 15 insertions(+), 22 deletions(-)
> 
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 8e6fad7c7bd9..142e26e4bdbf 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -147,8 +147,7 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
>  	return count;
>  }
>  static struct kobj_attribute scan_sleep_millisecs_attr =
> -	__ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
> -	       scan_sleep_millisecs_store);
> +	__ATTR_RW(scan_sleep_millisecs);
>  
>  static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
>  					  struct kobj_attribute *attr,
> @@ -175,8 +174,7 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
>  	return count;
>  }
>  static struct kobj_attribute alloc_sleep_millisecs_attr =
> -	__ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
> -	       alloc_sleep_millisecs_store);
> +	__ATTR_RW(alloc_sleep_millisecs);
>  
>  static ssize_t pages_to_scan_show(struct kobject *kobj,
>  				  struct kobj_attribute *attr,
> @@ -200,8 +198,7 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
>  	return count;
>  }
>  static struct kobj_attribute pages_to_scan_attr =
> -	__ATTR(pages_to_scan, 0644, pages_to_scan_show,
> -	       pages_to_scan_store);
> +	__ATTR_RW(pages_to_scan);
>  
>  static ssize_t pages_collapsed_show(struct kobject *kobj,
>  				    struct kobj_attribute *attr,
> @@ -221,13 +218,13 @@ static ssize_t full_scans_show(struct kobject *kobj,
>  static struct kobj_attribute full_scans_attr =
>  	__ATTR_RO(full_scans);
>  
> -static ssize_t khugepaged_defrag_show(struct kobject *kobj,
> +static ssize_t defrag_show(struct kobject *kobj,
>  				      struct kobj_attribute *attr, char *buf)
>  {
>  	return single_hugepage_flag_show(kobj, attr, buf,
>  					 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>  }
> -static ssize_t khugepaged_defrag_store(struct kobject *kobj,
> +static ssize_t defrag_store(struct kobject *kobj,
>  				       struct kobj_attribute *attr,
>  				       const char *buf, size_t count)
>  {
> @@ -235,8 +232,7 @@ static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>  				 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>  }
>  static struct kobj_attribute khugepaged_defrag_attr =
> -	__ATTR(defrag, 0644, khugepaged_defrag_show,
> -	       khugepaged_defrag_store);
> +	__ATTR_RW(defrag);
>  
>  /*
>   * max_ptes_none controls if khugepaged should collapse hugepages over
> @@ -246,13 +242,13 @@ static struct kobj_attribute khugepaged_defrag_attr =
>   * runs. Increasing max_ptes_none will instead potentially reduce the
>   * free memory in the system during the khugepaged scan.
>   */
> -static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
> +static ssize_t max_ptes_none_show(struct kobject *kobj,
>  					     struct kobj_attribute *attr,
>  					     char *buf)
>  {
>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
>  }
> -static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
> +static ssize_t max_ptes_none_store(struct kobject *kobj,
>  					      struct kobj_attribute *attr,
>  					      const char *buf, size_t count)
>  {
> @@ -268,17 +264,16 @@ static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>  	return count;
>  }
>  static struct kobj_attribute khugepaged_max_ptes_none_attr =
> -	__ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
> -	       khugepaged_max_ptes_none_store);
> +	__ATTR_RW(max_ptes_none);
>  
> -static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
> +static ssize_t max_ptes_swap_show(struct kobject *kobj,
>  					     struct kobj_attribute *attr,
>  					     char *buf)
>  {
>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
>  }
>  
> -static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
> +static ssize_t max_ptes_swap_store(struct kobject *kobj,
>  					      struct kobj_attribute *attr,
>  					      const char *buf, size_t count)
>  {
> @@ -295,17 +290,16 @@ static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>  }
>  
>  static struct kobj_attribute khugepaged_max_ptes_swap_attr =
> -	__ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
> -	       khugepaged_max_ptes_swap_store);
> +	__ATTR_RW(max_ptes_swap);
>  
> -static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
> +static ssize_t max_ptes_shared_show(struct kobject *kobj,
>  					       struct kobj_attribute *attr,
>  					       char *buf)
>  {
>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
>  }
>  
> -static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
> +static ssize_t max_ptes_shared_store(struct kobject *kobj,
>  					      struct kobj_attribute *attr,
>  					      const char *buf, size_t count)
>  {
> @@ -322,8 +316,7 @@ static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>  }
>  
>  static struct kobj_attribute khugepaged_max_ptes_shared_attr =
> -	__ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
> -	       khugepaged_max_ptes_shared_store);
> +	__ATTR_RW(max_ptes_shared);
>  
>  static struct attribute *khugepaged_attr[] = {
>  	&khugepaged_defrag_attr.attr,
> -- 
> 2.23.0
> 
> 

For function names that changed, can we align args that don't fit on opening
line with the opening brace?

Thanks,
Zach
Miaohe Lin June 15, 2022, 7:48 a.m. UTC | #2
On 2022/6/15 8:29, Zach O'Keefe wrote:
> On 11 Jun 16:47, Miaohe Lin wrote:
>> Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
>> readability improvement.
>>
>> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
>> ---
>>  mm/khugepaged.c | 37 +++++++++++++++----------------------
>>  1 file changed, 15 insertions(+), 22 deletions(-)
>>
>> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
>> index 8e6fad7c7bd9..142e26e4bdbf 100644
>> --- a/mm/khugepaged.c
>> +++ b/mm/khugepaged.c
>> @@ -147,8 +147,7 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
>>  	return count;
>>  }
>>  static struct kobj_attribute scan_sleep_millisecs_attr =
>> -	__ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
>> -	       scan_sleep_millisecs_store);
>> +	__ATTR_RW(scan_sleep_millisecs);
>>  
>>  static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
>>  					  struct kobj_attribute *attr,
>> @@ -175,8 +174,7 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
>>  	return count;
>>  }
>>  static struct kobj_attribute alloc_sleep_millisecs_attr =
>> -	__ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
>> -	       alloc_sleep_millisecs_store);
>> +	__ATTR_RW(alloc_sleep_millisecs);
>>  
>>  static ssize_t pages_to_scan_show(struct kobject *kobj,
>>  				  struct kobj_attribute *attr,
>> @@ -200,8 +198,7 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
>>  	return count;
>>  }
>>  static struct kobj_attribute pages_to_scan_attr =
>> -	__ATTR(pages_to_scan, 0644, pages_to_scan_show,
>> -	       pages_to_scan_store);
>> +	__ATTR_RW(pages_to_scan);
>>  
>>  static ssize_t pages_collapsed_show(struct kobject *kobj,
>>  				    struct kobj_attribute *attr,
>> @@ -221,13 +218,13 @@ static ssize_t full_scans_show(struct kobject *kobj,
>>  static struct kobj_attribute full_scans_attr =
>>  	__ATTR_RO(full_scans);
>>  
>> -static ssize_t khugepaged_defrag_show(struct kobject *kobj,
>> +static ssize_t defrag_show(struct kobject *kobj,
>>  				      struct kobj_attribute *attr, char *buf)
>>  {
>>  	return single_hugepage_flag_show(kobj, attr, buf,
>>  					 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>>  }
>> -static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>> +static ssize_t defrag_store(struct kobject *kobj,
>>  				       struct kobj_attribute *attr,
>>  				       const char *buf, size_t count)
>>  {
>> @@ -235,8 +232,7 @@ static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>>  				 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>>  }
>>  static struct kobj_attribute khugepaged_defrag_attr =
>> -	__ATTR(defrag, 0644, khugepaged_defrag_show,
>> -	       khugepaged_defrag_store);
>> +	__ATTR_RW(defrag);
>>  
>>  /*
>>   * max_ptes_none controls if khugepaged should collapse hugepages over
>> @@ -246,13 +242,13 @@ static struct kobj_attribute khugepaged_defrag_attr =
>>   * runs. Increasing max_ptes_none will instead potentially reduce the
>>   * free memory in the system during the khugepaged scan.
>>   */
>> -static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
>> +static ssize_t max_ptes_none_show(struct kobject *kobj,
>>  					     struct kobj_attribute *attr,
>>  					     char *buf)
>>  {
>>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
>>  }
>> -static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>> +static ssize_t max_ptes_none_store(struct kobject *kobj,
>>  					      struct kobj_attribute *attr,
>>  					      const char *buf, size_t count)
>>  {
>> @@ -268,17 +264,16 @@ static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>>  	return count;
>>  }
>>  static struct kobj_attribute khugepaged_max_ptes_none_attr =
>> -	__ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
>> -	       khugepaged_max_ptes_none_store);
>> +	__ATTR_RW(max_ptes_none);
>>  
>> -static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
>> +static ssize_t max_ptes_swap_show(struct kobject *kobj,
>>  					     struct kobj_attribute *attr,
>>  					     char *buf)
>>  {
>>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
>>  }
>>  
>> -static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>> +static ssize_t max_ptes_swap_store(struct kobject *kobj,
>>  					      struct kobj_attribute *attr,
>>  					      const char *buf, size_t count)
>>  {
>> @@ -295,17 +290,16 @@ static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>>  }
>>  
>>  static struct kobj_attribute khugepaged_max_ptes_swap_attr =
>> -	__ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
>> -	       khugepaged_max_ptes_swap_store);
>> +	__ATTR_RW(max_ptes_swap);
>>  
>> -static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
>> +static ssize_t max_ptes_shared_show(struct kobject *kobj,
>>  					       struct kobj_attribute *attr,
>>  					       char *buf)
>>  {
>>  	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
>>  }
>>  
>> -static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>> +static ssize_t max_ptes_shared_store(struct kobject *kobj,
>>  					      struct kobj_attribute *attr,
>>  					      const char *buf, size_t count)
>>  {
>> @@ -322,8 +316,7 @@ static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>>  }
>>  
>>  static struct kobj_attribute khugepaged_max_ptes_shared_attr =
>> -	__ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
>> -	       khugepaged_max_ptes_shared_store);
>> +	__ATTR_RW(max_ptes_shared);
>>  
>>  static struct attribute *khugepaged_attr[] = {
>>  	&khugepaged_defrag_attr.attr,
>> -- 
>> 2.23.0
>>
>>
> 
> For function names that changed, can we align args that don't fit on opening
> line with the opening brace?

Sorry, I forgot to fit on opening line with the opening brace and checkpatch.pl didn't
complain about it. Will fix these and similar case in another thread. Many thanks for
your review and comment!

> 
> Thanks,
> Zach
> .
>
Yang Shi June 15, 2022, 9:28 p.m. UTC | #3
On Sat, Jun 11, 2022 at 1:47 AM Miaohe Lin <linmiaohe@huawei.com> wrote:
>
> Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
> readability improvement.
>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
>  mm/khugepaged.c | 37 +++++++++++++++----------------------
>  1 file changed, 15 insertions(+), 22 deletions(-)
>
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 8e6fad7c7bd9..142e26e4bdbf 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -147,8 +147,7 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
>         return count;
>  }
>  static struct kobj_attribute scan_sleep_millisecs_attr =
> -       __ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
> -              scan_sleep_millisecs_store);
> +       __ATTR_RW(scan_sleep_millisecs);
>
>  static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
>                                           struct kobj_attribute *attr,
> @@ -175,8 +174,7 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
>         return count;
>  }
>  static struct kobj_attribute alloc_sleep_millisecs_attr =
> -       __ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
> -              alloc_sleep_millisecs_store);
> +       __ATTR_RW(alloc_sleep_millisecs);
>
>  static ssize_t pages_to_scan_show(struct kobject *kobj,
>                                   struct kobj_attribute *attr,
> @@ -200,8 +198,7 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
>         return count;
>  }
>  static struct kobj_attribute pages_to_scan_attr =
> -       __ATTR(pages_to_scan, 0644, pages_to_scan_show,
> -              pages_to_scan_store);
> +       __ATTR_RW(pages_to_scan);
>
>  static ssize_t pages_collapsed_show(struct kobject *kobj,
>                                     struct kobj_attribute *attr,
> @@ -221,13 +218,13 @@ static ssize_t full_scans_show(struct kobject *kobj,
>  static struct kobj_attribute full_scans_attr =
>         __ATTR_RO(full_scans);
>
> -static ssize_t khugepaged_defrag_show(struct kobject *kobj,
> +static ssize_t defrag_show(struct kobject *kobj,
>                                       struct kobj_attribute *attr, char *buf)

Why do you rename all the functions? Seems unnecessary and less intriguing TBH.

>  {
>         return single_hugepage_flag_show(kobj, attr, buf,
>                                          TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>  }
> -static ssize_t khugepaged_defrag_store(struct kobject *kobj,
> +static ssize_t defrag_store(struct kobject *kobj,
>                                        struct kobj_attribute *attr,
>                                        const char *buf, size_t count)
>  {
> @@ -235,8 +232,7 @@ static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>                                  TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>  }
>  static struct kobj_attribute khugepaged_defrag_attr =
> -       __ATTR(defrag, 0644, khugepaged_defrag_show,
> -              khugepaged_defrag_store);
> +       __ATTR_RW(defrag);
>
>  /*
>   * max_ptes_none controls if khugepaged should collapse hugepages over
> @@ -246,13 +242,13 @@ static struct kobj_attribute khugepaged_defrag_attr =
>   * runs. Increasing max_ptes_none will instead potentially reduce the
>   * free memory in the system during the khugepaged scan.
>   */
> -static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
> +static ssize_t max_ptes_none_show(struct kobject *kobj,
>                                              struct kobj_attribute *attr,
>                                              char *buf)
>  {
>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
>  }
> -static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
> +static ssize_t max_ptes_none_store(struct kobject *kobj,
>                                               struct kobj_attribute *attr,
>                                               const char *buf, size_t count)
>  {
> @@ -268,17 +264,16 @@ static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>         return count;
>  }
>  static struct kobj_attribute khugepaged_max_ptes_none_attr =
> -       __ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
> -              khugepaged_max_ptes_none_store);
> +       __ATTR_RW(max_ptes_none);
>
> -static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
> +static ssize_t max_ptes_swap_show(struct kobject *kobj,
>                                              struct kobj_attribute *attr,
>                                              char *buf)
>  {
>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
>  }
>
> -static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
> +static ssize_t max_ptes_swap_store(struct kobject *kobj,
>                                               struct kobj_attribute *attr,
>                                               const char *buf, size_t count)
>  {
> @@ -295,17 +290,16 @@ static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>  }
>
>  static struct kobj_attribute khugepaged_max_ptes_swap_attr =
> -       __ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
> -              khugepaged_max_ptes_swap_store);
> +       __ATTR_RW(max_ptes_swap);
>
> -static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
> +static ssize_t max_ptes_shared_show(struct kobject *kobj,
>                                                struct kobj_attribute *attr,
>                                                char *buf)
>  {
>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
>  }
>
> -static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
> +static ssize_t max_ptes_shared_store(struct kobject *kobj,
>                                               struct kobj_attribute *attr,
>                                               const char *buf, size_t count)
>  {
> @@ -322,8 +316,7 @@ static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>  }
>
>  static struct kobj_attribute khugepaged_max_ptes_shared_attr =
> -       __ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
> -              khugepaged_max_ptes_shared_store);
> +       __ATTR_RW(max_ptes_shared);
>
>  static struct attribute *khugepaged_attr[] = {
>         &khugepaged_defrag_attr.attr,
> --
> 2.23.0
>
>
Miaohe Lin June 16, 2022, 7:07 a.m. UTC | #4
On 2022/6/16 5:28, Yang Shi wrote:
> On Sat, Jun 11, 2022 at 1:47 AM Miaohe Lin <linmiaohe@huawei.com> wrote:
>>
>> Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
>> readability improvement.
>>
>> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
>> ---
>>  mm/khugepaged.c | 37 +++++++++++++++----------------------
>>  1 file changed, 15 insertions(+), 22 deletions(-)
>>
>> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
>> index 8e6fad7c7bd9..142e26e4bdbf 100644
>> --- a/mm/khugepaged.c
>> +++ b/mm/khugepaged.c
>> @@ -147,8 +147,7 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
>>         return count;
>>  }
>>  static struct kobj_attribute scan_sleep_millisecs_attr =
>> -       __ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
>> -              scan_sleep_millisecs_store);
>> +       __ATTR_RW(scan_sleep_millisecs);
>>
>>  static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
>>                                           struct kobj_attribute *attr,
>> @@ -175,8 +174,7 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
>>         return count;
>>  }
>>  static struct kobj_attribute alloc_sleep_millisecs_attr =
>> -       __ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
>> -              alloc_sleep_millisecs_store);
>> +       __ATTR_RW(alloc_sleep_millisecs);
>>
>>  static ssize_t pages_to_scan_show(struct kobject *kobj,
>>                                   struct kobj_attribute *attr,
>> @@ -200,8 +198,7 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
>>         return count;
>>  }
>>  static struct kobj_attribute pages_to_scan_attr =
>> -       __ATTR(pages_to_scan, 0644, pages_to_scan_show,
>> -              pages_to_scan_store);
>> +       __ATTR_RW(pages_to_scan);
>>
>>  static ssize_t pages_collapsed_show(struct kobject *kobj,
>>                                     struct kobj_attribute *attr,
>> @@ -221,13 +218,13 @@ static ssize_t full_scans_show(struct kobject *kobj,
>>  static struct kobj_attribute full_scans_attr =
>>         __ATTR_RO(full_scans);
>>
>> -static ssize_t khugepaged_defrag_show(struct kobject *kobj,
>> +static ssize_t defrag_show(struct kobject *kobj,
>>                                       struct kobj_attribute *attr, char *buf)
> 
> Why do you rename all the functions? Seems unnecessary and less intriguing TBH.

It's because e.g. __ATTR_RW(defrag) expects the defrag_show and defrag_store instead
of khugepaged_defrag_show and khugepaged_defrag_store.

Thanks.

> 
>>  {
>>         return single_hugepage_flag_show(kobj, attr, buf,
>>                                          TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>>  }
>> -static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>> +static ssize_t defrag_store(struct kobject *kobj,
>>                                        struct kobj_attribute *attr,
>>                                        const char *buf, size_t count)
>>  {
>> @@ -235,8 +232,7 @@ static ssize_t khugepaged_defrag_store(struct kobject *kobj,
>>                                  TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
>>  }
>>  static struct kobj_attribute khugepaged_defrag_attr =
>> -       __ATTR(defrag, 0644, khugepaged_defrag_show,
>> -              khugepaged_defrag_store);
>> +       __ATTR_RW(defrag);
>>
>>  /*
>>   * max_ptes_none controls if khugepaged should collapse hugepages over
>> @@ -246,13 +242,13 @@ static struct kobj_attribute khugepaged_defrag_attr =
>>   * runs. Increasing max_ptes_none will instead potentially reduce the
>>   * free memory in the system during the khugepaged scan.
>>   */
>> -static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
>> +static ssize_t max_ptes_none_show(struct kobject *kobj,
>>                                              struct kobj_attribute *attr,
>>                                              char *buf)
>>  {
>>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
>>  }
>> -static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>> +static ssize_t max_ptes_none_store(struct kobject *kobj,
>>                                               struct kobj_attribute *attr,
>>                                               const char *buf, size_t count)
>>  {
>> @@ -268,17 +264,16 @@ static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
>>         return count;
>>  }
>>  static struct kobj_attribute khugepaged_max_ptes_none_attr =
>> -       __ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
>> -              khugepaged_max_ptes_none_store);
>> +       __ATTR_RW(max_ptes_none);
>>
>> -static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
>> +static ssize_t max_ptes_swap_show(struct kobject *kobj,
>>                                              struct kobj_attribute *attr,
>>                                              char *buf)
>>  {
>>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
>>  }
>>
>> -static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>> +static ssize_t max_ptes_swap_store(struct kobject *kobj,
>>                                               struct kobj_attribute *attr,
>>                                               const char *buf, size_t count)
>>  {
>> @@ -295,17 +290,16 @@ static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
>>  }
>>
>>  static struct kobj_attribute khugepaged_max_ptes_swap_attr =
>> -       __ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
>> -              khugepaged_max_ptes_swap_store);
>> +       __ATTR_RW(max_ptes_swap);
>>
>> -static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
>> +static ssize_t max_ptes_shared_show(struct kobject *kobj,
>>                                                struct kobj_attribute *attr,
>>                                                char *buf)
>>  {
>>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
>>  }
>>
>> -static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>> +static ssize_t max_ptes_shared_store(struct kobject *kobj,
>>                                               struct kobj_attribute *attr,
>>                                               const char *buf, size_t count)
>>  {
>> @@ -322,8 +316,7 @@ static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
>>  }
>>
>>  static struct kobj_attribute khugepaged_max_ptes_shared_attr =
>> -       __ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
>> -              khugepaged_max_ptes_shared_store);
>> +       __ATTR_RW(max_ptes_shared);
>>
>>  static struct attribute *khugepaged_attr[] = {
>>         &khugepaged_defrag_attr.attr,
>> --
>> 2.23.0
>>
>>
> .
>
Yang Shi June 16, 2022, 3:48 p.m. UTC | #5
On Thu, Jun 16, 2022 at 12:07 AM Miaohe Lin <linmiaohe@huawei.com> wrote:
>
> On 2022/6/16 5:28, Yang Shi wrote:
> > On Sat, Jun 11, 2022 at 1:47 AM Miaohe Lin <linmiaohe@huawei.com> wrote:
> >>
> >> Use helper macro __ATTR_RW to define the khugepaged attributes. Minor
> >> readability improvement.
> >>
> >> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> >> ---
> >>  mm/khugepaged.c | 37 +++++++++++++++----------------------
> >>  1 file changed, 15 insertions(+), 22 deletions(-)
> >>
> >> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> >> index 8e6fad7c7bd9..142e26e4bdbf 100644
> >> --- a/mm/khugepaged.c
> >> +++ b/mm/khugepaged.c
> >> @@ -147,8 +147,7 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
> >>         return count;
> >>  }
> >>  static struct kobj_attribute scan_sleep_millisecs_attr =
> >> -       __ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
> >> -              scan_sleep_millisecs_store);
> >> +       __ATTR_RW(scan_sleep_millisecs);
> >>
> >>  static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
> >>                                           struct kobj_attribute *attr,
> >> @@ -175,8 +174,7 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
> >>         return count;
> >>  }
> >>  static struct kobj_attribute alloc_sleep_millisecs_attr =
> >> -       __ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
> >> -              alloc_sleep_millisecs_store);
> >> +       __ATTR_RW(alloc_sleep_millisecs);
> >>
> >>  static ssize_t pages_to_scan_show(struct kobject *kobj,
> >>                                   struct kobj_attribute *attr,
> >> @@ -200,8 +198,7 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
> >>         return count;
> >>  }
> >>  static struct kobj_attribute pages_to_scan_attr =
> >> -       __ATTR(pages_to_scan, 0644, pages_to_scan_show,
> >> -              pages_to_scan_store);
> >> +       __ATTR_RW(pages_to_scan);
> >>
> >>  static ssize_t pages_collapsed_show(struct kobject *kobj,
> >>                                     struct kobj_attribute *attr,
> >> @@ -221,13 +218,13 @@ static ssize_t full_scans_show(struct kobject *kobj,
> >>  static struct kobj_attribute full_scans_attr =
> >>         __ATTR_RO(full_scans);
> >>
> >> -static ssize_t khugepaged_defrag_show(struct kobject *kobj,
> >> +static ssize_t defrag_show(struct kobject *kobj,
> >>                                       struct kobj_attribute *attr, char *buf)
> >
> > Why do you rename all the functions? Seems unnecessary and less intriguing TBH.
>
> It's because e.g. __ATTR_RW(defrag) expects the defrag_show and defrag_store instead
> of khugepaged_defrag_show and khugepaged_defrag_store.

Aha, I see. I missed this.

Reviewed-by: Yang Shi <shy828301@gmail.com>

>
> Thanks.
>
> >
> >>  {
> >>         return single_hugepage_flag_show(kobj, attr, buf,
> >>                                          TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
> >>  }
> >> -static ssize_t khugepaged_defrag_store(struct kobject *kobj,
> >> +static ssize_t defrag_store(struct kobject *kobj,
> >>                                        struct kobj_attribute *attr,
> >>                                        const char *buf, size_t count)
> >>  {
> >> @@ -235,8 +232,7 @@ static ssize_t khugepaged_defrag_store(struct kobject *kobj,
> >>                                  TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
> >>  }
> >>  static struct kobj_attribute khugepaged_defrag_attr =
> >> -       __ATTR(defrag, 0644, khugepaged_defrag_show,
> >> -              khugepaged_defrag_store);
> >> +       __ATTR_RW(defrag);
> >>
> >>  /*
> >>   * max_ptes_none controls if khugepaged should collapse hugepages over
> >> @@ -246,13 +242,13 @@ static struct kobj_attribute khugepaged_defrag_attr =
> >>   * runs. Increasing max_ptes_none will instead potentially reduce the
> >>   * free memory in the system during the khugepaged scan.
> >>   */
> >> -static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
> >> +static ssize_t max_ptes_none_show(struct kobject *kobj,
> >>                                              struct kobj_attribute *attr,
> >>                                              char *buf)
> >>  {
> >>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
> >>  }
> >> -static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
> >> +static ssize_t max_ptes_none_store(struct kobject *kobj,
> >>                                               struct kobj_attribute *attr,
> >>                                               const char *buf, size_t count)
> >>  {
> >> @@ -268,17 +264,16 @@ static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
> >>         return count;
> >>  }
> >>  static struct kobj_attribute khugepaged_max_ptes_none_attr =
> >> -       __ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
> >> -              khugepaged_max_ptes_none_store);
> >> +       __ATTR_RW(max_ptes_none);
> >>
> >> -static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
> >> +static ssize_t max_ptes_swap_show(struct kobject *kobj,
> >>                                              struct kobj_attribute *attr,
> >>                                              char *buf)
> >>  {
> >>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
> >>  }
> >>
> >> -static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
> >> +static ssize_t max_ptes_swap_store(struct kobject *kobj,
> >>                                               struct kobj_attribute *attr,
> >>                                               const char *buf, size_t count)
> >>  {
> >> @@ -295,17 +290,16 @@ static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
> >>  }
> >>
> >>  static struct kobj_attribute khugepaged_max_ptes_swap_attr =
> >> -       __ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
> >> -              khugepaged_max_ptes_swap_store);
> >> +       __ATTR_RW(max_ptes_swap);
> >>
> >> -static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
> >> +static ssize_t max_ptes_shared_show(struct kobject *kobj,
> >>                                                struct kobj_attribute *attr,
> >>                                                char *buf)
> >>  {
> >>         return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
> >>  }
> >>
> >> -static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
> >> +static ssize_t max_ptes_shared_store(struct kobject *kobj,
> >>                                               struct kobj_attribute *attr,
> >>                                               const char *buf, size_t count)
> >>  {
> >> @@ -322,8 +316,7 @@ static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
> >>  }
> >>
> >>  static struct kobj_attribute khugepaged_max_ptes_shared_attr =
> >> -       __ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
> >> -              khugepaged_max_ptes_shared_store);
> >> +       __ATTR_RW(max_ptes_shared);
> >>
> >>  static struct attribute *khugepaged_attr[] = {
> >>         &khugepaged_defrag_attr.attr,
> >> --
> >> 2.23.0
> >>
> >>
> > .
> >
>
diff mbox series

Patch

diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index 8e6fad7c7bd9..142e26e4bdbf 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -147,8 +147,7 @@  static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
 	return count;
 }
 static struct kobj_attribute scan_sleep_millisecs_attr =
-	__ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
-	       scan_sleep_millisecs_store);
+	__ATTR_RW(scan_sleep_millisecs);
 
 static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
 					  struct kobj_attribute *attr,
@@ -175,8 +174,7 @@  static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
 	return count;
 }
 static struct kobj_attribute alloc_sleep_millisecs_attr =
-	__ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
-	       alloc_sleep_millisecs_store);
+	__ATTR_RW(alloc_sleep_millisecs);
 
 static ssize_t pages_to_scan_show(struct kobject *kobj,
 				  struct kobj_attribute *attr,
@@ -200,8 +198,7 @@  static ssize_t pages_to_scan_store(struct kobject *kobj,
 	return count;
 }
 static struct kobj_attribute pages_to_scan_attr =
-	__ATTR(pages_to_scan, 0644, pages_to_scan_show,
-	       pages_to_scan_store);
+	__ATTR_RW(pages_to_scan);
 
 static ssize_t pages_collapsed_show(struct kobject *kobj,
 				    struct kobj_attribute *attr,
@@ -221,13 +218,13 @@  static ssize_t full_scans_show(struct kobject *kobj,
 static struct kobj_attribute full_scans_attr =
 	__ATTR_RO(full_scans);
 
-static ssize_t khugepaged_defrag_show(struct kobject *kobj,
+static ssize_t defrag_show(struct kobject *kobj,
 				      struct kobj_attribute *attr, char *buf)
 {
 	return single_hugepage_flag_show(kobj, attr, buf,
 					 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
 }
-static ssize_t khugepaged_defrag_store(struct kobject *kobj,
+static ssize_t defrag_store(struct kobject *kobj,
 				       struct kobj_attribute *attr,
 				       const char *buf, size_t count)
 {
@@ -235,8 +232,7 @@  static ssize_t khugepaged_defrag_store(struct kobject *kobj,
 				 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
 }
 static struct kobj_attribute khugepaged_defrag_attr =
-	__ATTR(defrag, 0644, khugepaged_defrag_show,
-	       khugepaged_defrag_store);
+	__ATTR_RW(defrag);
 
 /*
  * max_ptes_none controls if khugepaged should collapse hugepages over
@@ -246,13 +242,13 @@  static struct kobj_attribute khugepaged_defrag_attr =
  * runs. Increasing max_ptes_none will instead potentially reduce the
  * free memory in the system during the khugepaged scan.
  */
-static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
+static ssize_t max_ptes_none_show(struct kobject *kobj,
 					     struct kobj_attribute *attr,
 					     char *buf)
 {
 	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
 }
-static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
+static ssize_t max_ptes_none_store(struct kobject *kobj,
 					      struct kobj_attribute *attr,
 					      const char *buf, size_t count)
 {
@@ -268,17 +264,16 @@  static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
 	return count;
 }
 static struct kobj_attribute khugepaged_max_ptes_none_attr =
-	__ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
-	       khugepaged_max_ptes_none_store);
+	__ATTR_RW(max_ptes_none);
 
-static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
+static ssize_t max_ptes_swap_show(struct kobject *kobj,
 					     struct kobj_attribute *attr,
 					     char *buf)
 {
 	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
 }
 
-static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
+static ssize_t max_ptes_swap_store(struct kobject *kobj,
 					      struct kobj_attribute *attr,
 					      const char *buf, size_t count)
 {
@@ -295,17 +290,16 @@  static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
 }
 
 static struct kobj_attribute khugepaged_max_ptes_swap_attr =
-	__ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
-	       khugepaged_max_ptes_swap_store);
+	__ATTR_RW(max_ptes_swap);
 
-static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
+static ssize_t max_ptes_shared_show(struct kobject *kobj,
 					       struct kobj_attribute *attr,
 					       char *buf)
 {
 	return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
 }
 
-static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
+static ssize_t max_ptes_shared_store(struct kobject *kobj,
 					      struct kobj_attribute *attr,
 					      const char *buf, size_t count)
 {
@@ -322,8 +316,7 @@  static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
 }
 
 static struct kobj_attribute khugepaged_max_ptes_shared_attr =
-	__ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
-	       khugepaged_max_ptes_shared_store);
+	__ATTR_RW(max_ptes_shared);
 
 static struct attribute *khugepaged_attr[] = {
 	&khugepaged_defrag_attr.attr,