All of lore.kernel.org
 help / color / mirror / Atom feed
* [lustre-devel] [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
@ 2016-10-16 17:16 ` Oleg Drokin
  0 siblings, 0 replies; 6+ messages in thread
From: Oleg Drokin @ 2016-10-16 17:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman, devel, Andreas Dilger, James Simmons
  Cc: Linux Kernel Mailing List, Lustre Development List, Oleg Drokin

It's multiple values per file, so it has no business being in sysfs,
besides it was assuming seqfile anyway.

Introduced by
commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
---
 drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 +++++++++++------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c
index 6eae605..23fda9d 100644
--- a/drivers/staging/lustre/lustre/llite/lproc_llite.c
+++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c
@@ -871,12 +871,10 @@ static ssize_t xattr_cache_store(struct kobject *kobj,
 }
 LUSTRE_RW_ATTR(xattr_cache);
 
-static ssize_t unstable_stats_show(struct kobject *kobj,
-				   struct attribute *attr,
-				   char *buf)
+static int ll_unstable_stats_seq_show(struct seq_file *m, void *v)
 {
-	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
-					      ll_kobj);
+	struct super_block     *sb    = m->private;
+	struct ll_sb_info      *sbi   = ll_s2sbi(sb);
 	struct cl_client_cache *cache = sbi->ll_cache;
 	long pages;
 	int mb;
@@ -884,19 +882,21 @@ static ssize_t unstable_stats_show(struct kobject *kobj,
 	pages = atomic_long_read(&cache->ccc_unstable_nr);
 	mb = (pages * PAGE_SIZE) >> 20;
 
-	return sprintf(buf, "unstable_check:     %8d\n"
-			    "unstable_pages: %12ld\n"
-			    "unstable_mb:        %8d\n",
-			    cache->ccc_unstable_check, pages, mb);
+	seq_printf(m,
+		   "unstable_check:     %8d\n"
+		   "unstable_pages: %12ld\n"
+		   "unstable_mb:        %8d\n",
+		   cache->ccc_unstable_check, pages, mb);
+
+	return 0;
 }
 
-static ssize_t unstable_stats_store(struct kobject *kobj,
-				    struct attribute *attr,
-				    const char *buffer,
-				    size_t count)
+static ssize_t ll_unstable_stats_seq_write(struct file *file,
+					   const char __user *buffer,
+					   size_t count, loff_t *off)
 {
-	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
-					      ll_kobj);
+	struct super_block *sb = ((struct seq_file *)file->private_data)->private;
+	struct ll_sb_info *sbi = ll_s2sbi(sb);
 	char kernbuf[128];
 	int val, rc;
 
@@ -922,7 +922,7 @@ static ssize_t unstable_stats_store(struct kobject *kobj,
 
 	return count;
 }
-LUSTRE_RW_ATTR(unstable_stats);
+LPROC_SEQ_FOPS(ll_unstable_stats);
 
 static ssize_t root_squash_show(struct kobject *kobj, struct attribute *attr,
 				char *buf)
@@ -995,6 +995,7 @@ static struct lprocfs_vars lprocfs_llite_obd_vars[] = {
 	/* { "filegroups",   lprocfs_rd_filegroups,  0, 0 }, */
 	{ "max_cached_mb",    &ll_max_cached_mb_fops, NULL },
 	{ "statahead_stats",  &ll_statahead_stats_fops, NULL, 0 },
+	{ "unstable_stats",   &ll_unstable_stats_fops, NULL },
 	{ "sbi_flags",	      &ll_sbi_flags_fops, NULL, 0 },
 	{ .name =		"nosquash_nids",
 	  .fops =		&ll_nosquash_nids_fops		},
@@ -1026,7 +1027,6 @@ static struct attribute *llite_attrs[] = {
 	&lustre_attr_max_easize.attr,
 	&lustre_attr_default_easize.attr,
 	&lustre_attr_xattr_cache.attr,
-	&lustre_attr_unstable_stats.attr,
 	&lustre_attr_root_squash.attr,
 	NULL,
 };
-- 
2.7.4

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

* [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
@ 2016-10-16 17:16 ` Oleg Drokin
  0 siblings, 0 replies; 6+ messages in thread
From: Oleg Drokin @ 2016-10-16 17:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman, devel, Andreas Dilger, James Simmons
  Cc: Linux Kernel Mailing List, Lustre Development List, Oleg Drokin

It's multiple values per file, so it has no business being in sysfs,
besides it was assuming seqfile anyway.

Introduced by
commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
---
 drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 +++++++++++------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c
index 6eae605..23fda9d 100644
--- a/drivers/staging/lustre/lustre/llite/lproc_llite.c
+++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c
@@ -871,12 +871,10 @@ static ssize_t xattr_cache_store(struct kobject *kobj,
 }
 LUSTRE_RW_ATTR(xattr_cache);
 
-static ssize_t unstable_stats_show(struct kobject *kobj,
-				   struct attribute *attr,
-				   char *buf)
+static int ll_unstable_stats_seq_show(struct seq_file *m, void *v)
 {
-	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
-					      ll_kobj);
+	struct super_block     *sb    = m->private;
+	struct ll_sb_info      *sbi   = ll_s2sbi(sb);
 	struct cl_client_cache *cache = sbi->ll_cache;
 	long pages;
 	int mb;
@@ -884,19 +882,21 @@ static ssize_t unstable_stats_show(struct kobject *kobj,
 	pages = atomic_long_read(&cache->ccc_unstable_nr);
 	mb = (pages * PAGE_SIZE) >> 20;
 
-	return sprintf(buf, "unstable_check:     %8d\n"
-			    "unstable_pages: %12ld\n"
-			    "unstable_mb:        %8d\n",
-			    cache->ccc_unstable_check, pages, mb);
+	seq_printf(m,
+		   "unstable_check:     %8d\n"
+		   "unstable_pages: %12ld\n"
+		   "unstable_mb:        %8d\n",
+		   cache->ccc_unstable_check, pages, mb);
+
+	return 0;
 }
 
-static ssize_t unstable_stats_store(struct kobject *kobj,
-				    struct attribute *attr,
-				    const char *buffer,
-				    size_t count)
+static ssize_t ll_unstable_stats_seq_write(struct file *file,
+					   const char __user *buffer,
+					   size_t count, loff_t *off)
 {
-	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
-					      ll_kobj);
+	struct super_block *sb = ((struct seq_file *)file->private_data)->private;
+	struct ll_sb_info *sbi = ll_s2sbi(sb);
 	char kernbuf[128];
 	int val, rc;
 
@@ -922,7 +922,7 @@ static ssize_t unstable_stats_store(struct kobject *kobj,
 
 	return count;
 }
-LUSTRE_RW_ATTR(unstable_stats);
+LPROC_SEQ_FOPS(ll_unstable_stats);
 
 static ssize_t root_squash_show(struct kobject *kobj, struct attribute *attr,
 				char *buf)
@@ -995,6 +995,7 @@ static struct lprocfs_vars lprocfs_llite_obd_vars[] = {
 	/* { "filegroups",   lprocfs_rd_filegroups,  0, 0 }, */
 	{ "max_cached_mb",    &ll_max_cached_mb_fops, NULL },
 	{ "statahead_stats",  &ll_statahead_stats_fops, NULL, 0 },
+	{ "unstable_stats",   &ll_unstable_stats_fops, NULL },
 	{ "sbi_flags",	      &ll_sbi_flags_fops, NULL, 0 },
 	{ .name =		"nosquash_nids",
 	  .fops =		&ll_nosquash_nids_fops		},
@@ -1026,7 +1027,6 @@ static struct attribute *llite_attrs[] = {
 	&lustre_attr_max_easize.attr,
 	&lustre_attr_default_easize.attr,
 	&lustre_attr_xattr_cache.attr,
-	&lustre_attr_unstable_stats.attr,
 	&lustre_attr_root_squash.attr,
 	NULL,
 };
-- 
2.7.4

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

* [lustre-devel] [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
  2016-10-16 17:16 ` Oleg Drokin
@ 2016-10-17  7:19   ` Greg Kroah-Hartman
  -1 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2016-10-17  7:19 UTC (permalink / raw)
  To: Oleg Drokin
  Cc: devel, Andreas Dilger, James Simmons, Linux Kernel Mailing List,
	Lustre Development List

On Sun, Oct 16, 2016 at 01:16:50PM -0400, Oleg Drokin wrote:
> It's multiple values per file, so it has no business being in sysfs,
> besides it was assuming seqfile anyway.
> 
> Introduced by
> commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

In the future, the "correct" format for saying something like this is:

Fixes: d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

thanks,

greg k-h

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

* Re: [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
@ 2016-10-17  7:19   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2016-10-17  7:19 UTC (permalink / raw)
  To: Oleg Drokin
  Cc: devel, Andreas Dilger, James Simmons, Linux Kernel Mailing List,
	Lustre Development List

On Sun, Oct 16, 2016 at 01:16:50PM -0400, Oleg Drokin wrote:
> It's multiple values per file, so it has no business being in sysfs,
> besides it was assuming seqfile anyway.
> 
> Introduced by
> commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

In the future, the "correct" format for saying something like this is:

Fixes: d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

thanks,

greg k-h

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

* [lustre-devel] [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
  2016-10-16 17:16 ` Oleg Drokin
@ 2016-10-18 21:43   ` James Simmons
  -1 siblings, 0 replies; 6+ messages in thread
From: James Simmons @ 2016-10-18 21:43 UTC (permalink / raw)
  To: Oleg Drokin
  Cc: Greg Kroah-Hartman, devel, Andreas Dilger,
	Linux Kernel Mailing List, Lustre Development List

> It's multiple values per file, so it has no business being in sysfs,
> besides it was assuming seqfile anyway.
> 
> Introduced by
> commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

Tested it manually to make sure it was right this time.

Reviewed-by: James Simmons <jsimmons@infradead.org>
 
> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> ---
>  drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 +++++++++++------------
>  1 file changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> index 6eae605..23fda9d 100644
> --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c
> +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> @@ -871,12 +871,10 @@ static ssize_t xattr_cache_store(struct kobject *kobj,
>  }
>  LUSTRE_RW_ATTR(xattr_cache);
>  
> -static ssize_t unstable_stats_show(struct kobject *kobj,
> -				   struct attribute *attr,
> -				   char *buf)
> +static int ll_unstable_stats_seq_show(struct seq_file *m, void *v)
>  {
> -	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
> -					      ll_kobj);
> +	struct super_block     *sb    = m->private;
> +	struct ll_sb_info      *sbi   = ll_s2sbi(sb);
>  	struct cl_client_cache *cache = sbi->ll_cache;
>  	long pages;
>  	int mb;
> @@ -884,19 +882,21 @@ static ssize_t unstable_stats_show(struct kobject *kobj,
>  	pages = atomic_long_read(&cache->ccc_unstable_nr);
>  	mb = (pages * PAGE_SIZE) >> 20;
>  
> -	return sprintf(buf, "unstable_check:     %8d\n"
> -			    "unstable_pages: %12ld\n"
> -			    "unstable_mb:        %8d\n",
> -			    cache->ccc_unstable_check, pages, mb);
> +	seq_printf(m,
> +		   "unstable_check:     %8d\n"
> +		   "unstable_pages: %12ld\n"
> +		   "unstable_mb:        %8d\n",
> +		   cache->ccc_unstable_check, pages, mb);
> +
> +	return 0;
>  }
>  
> -static ssize_t unstable_stats_store(struct kobject *kobj,
> -				    struct attribute *attr,
> -				    const char *buffer,
> -				    size_t count)
> +static ssize_t ll_unstable_stats_seq_write(struct file *file,
> +					   const char __user *buffer,
> +					   size_t count, loff_t *off)
>  {
> -	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
> -					      ll_kobj);
> +	struct super_block *sb = ((struct seq_file *)file->private_data)->private;
> +	struct ll_sb_info *sbi = ll_s2sbi(sb);
>  	char kernbuf[128];
>  	int val, rc;
>  
> @@ -922,7 +922,7 @@ static ssize_t unstable_stats_store(struct kobject *kobj,
>  
>  	return count;
>  }
> -LUSTRE_RW_ATTR(unstable_stats);
> +LPROC_SEQ_FOPS(ll_unstable_stats);
>  
>  static ssize_t root_squash_show(struct kobject *kobj, struct attribute *attr,
>  				char *buf)
> @@ -995,6 +995,7 @@ static struct lprocfs_vars lprocfs_llite_obd_vars[] = {
>  	/* { "filegroups",   lprocfs_rd_filegroups,  0, 0 }, */
>  	{ "max_cached_mb",    &ll_max_cached_mb_fops, NULL },
>  	{ "statahead_stats",  &ll_statahead_stats_fops, NULL, 0 },
> +	{ "unstable_stats",   &ll_unstable_stats_fops, NULL },
>  	{ "sbi_flags",	      &ll_sbi_flags_fops, NULL, 0 },
>  	{ .name =		"nosquash_nids",
>  	  .fops =		&ll_nosquash_nids_fops		},
> @@ -1026,7 +1027,6 @@ static struct attribute *llite_attrs[] = {
>  	&lustre_attr_max_easize.attr,
>  	&lustre_attr_default_easize.attr,
>  	&lustre_attr_xattr_cache.attr,
> -	&lustre_attr_unstable_stats.attr,
>  	&lustre_attr_root_squash.attr,
>  	NULL,
>  };
> -- 
> 2.7.4
> 
> 

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

* Re: [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs
@ 2016-10-18 21:43   ` James Simmons
  0 siblings, 0 replies; 6+ messages in thread
From: James Simmons @ 2016-10-18 21:43 UTC (permalink / raw)
  To: Oleg Drokin
  Cc: Greg Kroah-Hartman, devel, Andreas Dilger,
	Linux Kernel Mailing List, Lustre Development List

> It's multiple values per file, so it has no business being in sysfs,
> besides it was assuming seqfile anyway.
> 
> Introduced by
> commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting")

Tested it manually to make sure it was right this time.

Reviewed-by: James Simmons <jsimmons@infradead.org>
 
> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> ---
>  drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 +++++++++++------------
>  1 file changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> index 6eae605..23fda9d 100644
> --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c
> +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> @@ -871,12 +871,10 @@ static ssize_t xattr_cache_store(struct kobject *kobj,
>  }
>  LUSTRE_RW_ATTR(xattr_cache);
>  
> -static ssize_t unstable_stats_show(struct kobject *kobj,
> -				   struct attribute *attr,
> -				   char *buf)
> +static int ll_unstable_stats_seq_show(struct seq_file *m, void *v)
>  {
> -	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
> -					      ll_kobj);
> +	struct super_block     *sb    = m->private;
> +	struct ll_sb_info      *sbi   = ll_s2sbi(sb);
>  	struct cl_client_cache *cache = sbi->ll_cache;
>  	long pages;
>  	int mb;
> @@ -884,19 +882,21 @@ static ssize_t unstable_stats_show(struct kobject *kobj,
>  	pages = atomic_long_read(&cache->ccc_unstable_nr);
>  	mb = (pages * PAGE_SIZE) >> 20;
>  
> -	return sprintf(buf, "unstable_check:     %8d\n"
> -			    "unstable_pages: %12ld\n"
> -			    "unstable_mb:        %8d\n",
> -			    cache->ccc_unstable_check, pages, mb);
> +	seq_printf(m,
> +		   "unstable_check:     %8d\n"
> +		   "unstable_pages: %12ld\n"
> +		   "unstable_mb:        %8d\n",
> +		   cache->ccc_unstable_check, pages, mb);
> +
> +	return 0;
>  }
>  
> -static ssize_t unstable_stats_store(struct kobject *kobj,
> -				    struct attribute *attr,
> -				    const char *buffer,
> -				    size_t count)
> +static ssize_t ll_unstable_stats_seq_write(struct file *file,
> +					   const char __user *buffer,
> +					   size_t count, loff_t *off)
>  {
> -	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
> -					      ll_kobj);
> +	struct super_block *sb = ((struct seq_file *)file->private_data)->private;
> +	struct ll_sb_info *sbi = ll_s2sbi(sb);
>  	char kernbuf[128];
>  	int val, rc;
>  
> @@ -922,7 +922,7 @@ static ssize_t unstable_stats_store(struct kobject *kobj,
>  
>  	return count;
>  }
> -LUSTRE_RW_ATTR(unstable_stats);
> +LPROC_SEQ_FOPS(ll_unstable_stats);
>  
>  static ssize_t root_squash_show(struct kobject *kobj, struct attribute *attr,
>  				char *buf)
> @@ -995,6 +995,7 @@ static struct lprocfs_vars lprocfs_llite_obd_vars[] = {
>  	/* { "filegroups",   lprocfs_rd_filegroups,  0, 0 }, */
>  	{ "max_cached_mb",    &ll_max_cached_mb_fops, NULL },
>  	{ "statahead_stats",  &ll_statahead_stats_fops, NULL, 0 },
> +	{ "unstable_stats",   &ll_unstable_stats_fops, NULL },
>  	{ "sbi_flags",	      &ll_sbi_flags_fops, NULL, 0 },
>  	{ .name =		"nosquash_nids",
>  	  .fops =		&ll_nosquash_nids_fops		},
> @@ -1026,7 +1027,6 @@ static struct attribute *llite_attrs[] = {
>  	&lustre_attr_max_easize.attr,
>  	&lustre_attr_default_easize.attr,
>  	&lustre_attr_xattr_cache.attr,
> -	&lustre_attr_unstable_stats.attr,
>  	&lustre_attr_root_squash.attr,
>  	NULL,
>  };
> -- 
> 2.7.4
> 
> 

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

end of thread, other threads:[~2016-10-18 21:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-16 17:16 [lustre-devel] [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs Oleg Drokin
2016-10-16 17:16 ` Oleg Drokin
2016-10-17  7:19 ` [lustre-devel] " Greg Kroah-Hartman
2016-10-17  7:19   ` Greg Kroah-Hartman
2016-10-18 21:43 ` [lustre-devel] " James Simmons
2016-10-18 21:43   ` James Simmons

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.