[mm-unstable,v1,1/2] mm: multi-gen LRU: clean up sysfs code

Message ID 20230214035445.1250139-1-talumbau@google.com
State New
Headers
Series [mm-unstable,v1,1/2] mm: multi-gen LRU: clean up sysfs code |

Commit Message

T.J. Alumbaugh Feb. 14, 2023, 3:54 a.m. UTC
  This patch cleans up the sysfs code. Specifically,
  1. use sysfs_emit(),
  2. use __ATTR_RW(), and
  3. constify multi-gen LRU struct attribute_group.

Signed-off-by: T.J. Alumbaugh <talumbau@google.com>
---
 include/linux/mmzone.h |  2 +-
 mm/vmscan.c            | 22 +++++++++-------------
 2 files changed, 10 insertions(+), 14 deletions(-)
  

Comments

Wei Xu Feb. 17, 2023, 7:20 a.m. UTC | #1
Reviewed-by: Wei Xu <weixugc@google.com>

On Mon, Feb 13, 2023 at 7:54 PM T.J. Alumbaugh <talumbau@google.com> wrote:
>
> This patch cleans up the sysfs code. Specifically,

Nit: Remove "This patch" per the "submitting patches" guide.

>   1. use sysfs_emit(),
>   2. use __ATTR_RW(), and
>   3. constify multi-gen LRU struct attribute_group.
>
> Signed-off-by: T.J. Alumbaugh <talumbau@google.com>
> ---
>  include/linux/mmzone.h |  2 +-
>  mm/vmscan.c            | 22 +++++++++-------------
>  2 files changed, 10 insertions(+), 14 deletions(-)
>
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index 9fb1b03b83b2..bf8786d45b31 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -1369,7 +1369,7 @@ typedef struct pglist_data {
>
>  #ifdef CONFIG_LRU_GEN
>         /* kswap mm walk data */
> -       struct lru_gen_mm_walk  mm_walk;
> +       struct lru_gen_mm_walk mm_walk;
>         /* lru_gen_folio list */
>         struct lru_gen_memcg memcg_lru;
>  #endif
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index d4b9fd1ae0ed..09c064accdb1 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -5658,14 +5658,14 @@ static void lru_gen_change_state(bool enabled)
>   *                          sysfs interface
>   ******************************************************************************/
>
> -static ssize_t show_min_ttl(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
> +static ssize_t min_ttl_ms_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
>  {
> -       return sprintf(buf, "%u\n", jiffies_to_msecs(READ_ONCE(lru_gen_min_ttl)));
> +       return sysfs_emit(buf, "%u\n", jiffies_to_msecs(READ_ONCE(lru_gen_min_ttl)));
>  }
>
>  /* see Documentation/admin-guide/mm/multigen_lru.rst for details */
> -static ssize_t store_min_ttl(struct kobject *kobj, struct kobj_attribute *attr,
> -                            const char *buf, size_t len)
> +static ssize_t min_ttl_ms_store(struct kobject *kobj, struct kobj_attribute *attr,
> +                               const char *buf, size_t len)
>  {
>         unsigned int msecs;
>
> @@ -5677,11 +5677,9 @@ static ssize_t store_min_ttl(struct kobject *kobj, struct kobj_attribute *attr,
>         return len;
>  }
>
> -static struct kobj_attribute lru_gen_min_ttl_attr = __ATTR(
> -       min_ttl_ms, 0644, show_min_ttl, store_min_ttl
> -);
> +static struct kobj_attribute lru_gen_min_ttl_attr = __ATTR_RW(min_ttl_ms);
>
> -static ssize_t show_enabled(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
> +static ssize_t enabled_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
>  {
>         unsigned int caps = 0;
>
> @@ -5698,7 +5696,7 @@ static ssize_t show_enabled(struct kobject *kobj, struct kobj_attribute *attr, c
>  }
>
>  /* see Documentation/admin-guide/mm/multigen_lru.rst for details */
> -static ssize_t store_enabled(struct kobject *kobj, struct kobj_attribute *attr,
> +static ssize_t enabled_store(struct kobject *kobj, struct kobj_attribute *attr,
>                              const char *buf, size_t len)
>  {
>         int i;
> @@ -5725,9 +5723,7 @@ static ssize_t store_enabled(struct kobject *kobj, struct kobj_attribute *attr,
>         return len;
>  }
>
> -static struct kobj_attribute lru_gen_enabled_attr = __ATTR(
> -       enabled, 0644, show_enabled, store_enabled
> -);
> +static struct kobj_attribute lru_gen_enabled_attr = __ATTR_RW(enabled);
>
>  static struct attribute *lru_gen_attrs[] = {
>         &lru_gen_min_ttl_attr.attr,
> @@ -5735,7 +5731,7 @@ static struct attribute *lru_gen_attrs[] = {
>         NULL
>  };
>
> -static struct attribute_group lru_gen_attr_group = {
> +static const struct attribute_group lru_gen_attr_group = {
>         .name = "lru_gen",
>         .attrs = lru_gen_attrs,
>  };
> --
> 2.39.1.581.gbfd45094c4-goog
>
>
  

Patch

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 9fb1b03b83b2..bf8786d45b31 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -1369,7 +1369,7 @@  typedef struct pglist_data {
 
 #ifdef CONFIG_LRU_GEN
 	/* kswap mm walk data */
-	struct lru_gen_mm_walk	mm_walk;
+	struct lru_gen_mm_walk mm_walk;
 	/* lru_gen_folio list */
 	struct lru_gen_memcg memcg_lru;
 #endif
diff --git a/mm/vmscan.c b/mm/vmscan.c
index d4b9fd1ae0ed..09c064accdb1 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -5658,14 +5658,14 @@  static void lru_gen_change_state(bool enabled)
  *                          sysfs interface
  ******************************************************************************/
 
-static ssize_t show_min_ttl(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
+static ssize_t min_ttl_ms_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
 {
-	return sprintf(buf, "%u\n", jiffies_to_msecs(READ_ONCE(lru_gen_min_ttl)));
+	return sysfs_emit(buf, "%u\n", jiffies_to_msecs(READ_ONCE(lru_gen_min_ttl)));
 }
 
 /* see Documentation/admin-guide/mm/multigen_lru.rst for details */
-static ssize_t store_min_ttl(struct kobject *kobj, struct kobj_attribute *attr,
-			     const char *buf, size_t len)
+static ssize_t min_ttl_ms_store(struct kobject *kobj, struct kobj_attribute *attr,
+				const char *buf, size_t len)
 {
 	unsigned int msecs;
 
@@ -5677,11 +5677,9 @@  static ssize_t store_min_ttl(struct kobject *kobj, struct kobj_attribute *attr,
 	return len;
 }
 
-static struct kobj_attribute lru_gen_min_ttl_attr = __ATTR(
-	min_ttl_ms, 0644, show_min_ttl, store_min_ttl
-);
+static struct kobj_attribute lru_gen_min_ttl_attr = __ATTR_RW(min_ttl_ms);
 
-static ssize_t show_enabled(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
+static ssize_t enabled_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
 {
 	unsigned int caps = 0;
 
@@ -5698,7 +5696,7 @@  static ssize_t show_enabled(struct kobject *kobj, struct kobj_attribute *attr, c
 }
 
 /* see Documentation/admin-guide/mm/multigen_lru.rst for details */
-static ssize_t store_enabled(struct kobject *kobj, struct kobj_attribute *attr,
+static ssize_t enabled_store(struct kobject *kobj, struct kobj_attribute *attr,
 			     const char *buf, size_t len)
 {
 	int i;
@@ -5725,9 +5723,7 @@  static ssize_t store_enabled(struct kobject *kobj, struct kobj_attribute *attr,
 	return len;
 }
 
-static struct kobj_attribute lru_gen_enabled_attr = __ATTR(
-	enabled, 0644, show_enabled, store_enabled
-);
+static struct kobj_attribute lru_gen_enabled_attr = __ATTR_RW(enabled);
 
 static struct attribute *lru_gen_attrs[] = {
 	&lru_gen_min_ttl_attr.attr,
@@ -5735,7 +5731,7 @@  static struct attribute *lru_gen_attrs[] = {
 	NULL
 };
 
-static struct attribute_group lru_gen_attr_group = {
+static const struct attribute_group lru_gen_attr_group = {
 	.name = "lru_gen",
 	.attrs = lru_gen_attrs,
 };