public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
@ 2006-03-02  7:08 Paul Jackson
  2006-03-02  8:47 ` Christoph Hellwig
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Jackson @ 2006-03-02  7:08 UTC (permalink / raw)
  To: akpm; +Cc: Simon.Derr, Paul Jackson, linux-kernel, ebiederm

From: Paul Jackson <pj@sgi.com>

Move the generic proc file operations support for
/proc/<pid>/cpuset from kernel/cpuset.c to fs/proc/base.c.

Leave behind in kernel/cpuset.c, now as an exported function, the
cpuset specific support for this /proc/<pid>/cpuset file, which
writes the cpuset pathname of a tasks cpuset into a seq_file.

The motivation for this move is to put proc stuff in fs/proc,
while keeping cpuset stuff in kernel/cpuset.c.

Signed-off-by: Paul Jackson <pj@sgi.com>

---

 fs/proc/base.c         |   16 ++++++++++++++++
 include/linux/cpuset.h |    3 ++-
 kernel/cpuset.c        |   17 ++---------------
 3 files changed, 20 insertions(+), 16 deletions(-)

--- 2.6.16-rc5-mm2-pre1.orig/kernel/cpuset.c	2006-03-01 21:06:49.375756164 -0800
+++ 2.6.16-rc5-mm2-pre1/kernel/cpuset.c	2006-03-01 21:22:58.072838717 -0800
@@ -2368,7 +2368,7 @@ void __cpuset_memory_pressure_bump(void)
 }
 
 /*
- * proc_cpuset_show()
+ * cpuset_proc_show_path()
  *  - Print tasks cpuset path into seq_file.
  *  - Used for /proc/<pid>/cpuset.
  *  - No need to task_lock(tsk) on this tsk->cpuset reference, as it
@@ -2377,7 +2377,7 @@ void __cpuset_memory_pressure_bump(void)
  *    anyway.
  */
 
-static int proc_cpuset_show(struct seq_file *m, void *v)
+int cpuset_proc_show_path(struct seq_file *m, void *v)
 {
 	struct cpuset *cs;
 	struct task_ref *tref;
@@ -2416,19 +2416,6 @@ out:
 	return retval;
 }
 
-static int cpuset_open(struct inode *inode, struct file *file)
-{
-	struct task_ref *tref = PROC_I(inode)->tref;
-	return single_open(file, proc_cpuset_show, tref);
-}
-
-struct file_operations proc_cpuset_operations = {
-	.open		= cpuset_open,
-	.read		= seq_read,
-	.llseek		= seq_lseek,
-	.release	= single_release,
-};
-
 /* Display task cpus_allowed, mems_allowed in /proc/<pid>/status file. */
 char *cpuset_task_status_allowed(struct task_struct *task, char *buffer)
 {
--- 2.6.16-rc5-mm2-pre1.orig/fs/proc/base.c	2006-03-01 21:06:49.377709312 -0800
+++ 2.6.16-rc5-mm2-pre1/fs/proc/base.c	2006-03-01 21:23:54.773712871 -0800
@@ -695,6 +695,22 @@ static struct file_operations proc_info_
 	.read		= proc_info_read,
 };
 
+#ifdef CONFIG_CPUSETS
+static int cpuset_open(struct inode *inode, struct file *file)
+{
+	struct task_ref *tref = PROC_I(inode)->tref;
+
+	return single_open(file, cpuset_proc_show_path, tref);
+}
+
+static struct file_operations proc_cpuset_operations = {
+	.open		= cpuset_open,
+	.read		= seq_read,
+	.llseek		= seq_lseek,
+	.release	= single_release,
+};
+#endif
+
 static int mem_open(struct inode* inode, struct file* file)
 {
 	file->private_data = (void*)((long)current->self_exec_id);
--- 2.6.16-rc5-mm2-pre1.orig/include/linux/cpuset.h	2006-03-01 21:06:49.378685886 -0800
+++ 2.6.16-rc5-mm2-pre1/include/linux/cpuset.h	2006-03-01 21:07:24.419141265 -0800
@@ -11,6 +11,7 @@
 #include <linux/sched.h>
 #include <linux/cpumask.h>
 #include <linux/nodemask.h>
+#include <linux/seq_file.h>
 
 #ifdef CONFIG_CPUSETS
 
@@ -45,7 +46,7 @@ extern int cpuset_excl_nodes_overlap(con
 extern int cpuset_memory_pressure_enabled;
 extern void __cpuset_memory_pressure_bump(void);
 
-extern struct file_operations proc_cpuset_operations;
+int cpuset_proc_show_path(struct seq_file *m, void *v);
 extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer);
 
 extern void cpuset_lock(void);

-- 
                          I won't rest till it's the best ...
                          Programmer, Linux Scalability
                          Paul Jackson <pj@sgi.com> 1.650.933.1373

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

* Re: [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
  2006-03-02  7:08 [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c Paul Jackson
@ 2006-03-02  8:47 ` Christoph Hellwig
  2006-03-02 14:23   ` Paul Jackson
  0 siblings, 1 reply; 6+ messages in thread
From: Christoph Hellwig @ 2006-03-02  8:47 UTC (permalink / raw)
  To: Paul Jackson; +Cc: akpm, Simon.Derr, linux-kernel, ebiederm

On Wed, Mar 01, 2006 at 11:08:12PM -0800, Paul Jackson wrote:
> From: Paul Jackson <pj@sgi.com>
> 
> Move the generic proc file operations support for
> /proc/<pid>/cpuset from kernel/cpuset.c to fs/proc/base.c.
> 
> Leave behind in kernel/cpuset.c, now as an exported function, the
> cpuset specific support for this /proc/<pid>/cpuset file, which
> writes the cpuset pathname of a tasks cpuset into a seq_file.
> 
> The motivation for this move is to put proc stuff in fs/proc,
> while keeping cpuset stuff in kernel/cpuset.c.

Seems pointless.  This just increases #ifdef churn for no gain.


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

* Re: [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
  2006-03-02  8:47 ` Christoph Hellwig
@ 2006-03-02 14:23   ` Paul Jackson
  2006-03-02 16:32     ` Eric W. Biederman
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Jackson @ 2006-03-02 14:23 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: akpm, Simon.Derr, linux-kernel, ebiederm

> Seems pointless.  This just increases #ifdef churn for no gain.

Take a look at fs/proc/base.c.  That's how pretty much all the
other proc hooks are done, with ifdef's around their proc hooks.

ifdef minimization is a good goal, yes.

But uniformity of practice is another good goal.

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.925.600.0401

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

* Re: [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
  2006-03-02 14:23   ` Paul Jackson
@ 2006-03-02 16:32     ` Eric W. Biederman
  2006-03-02 16:52       ` Paul Jackson
  0 siblings, 1 reply; 6+ messages in thread
From: Eric W. Biederman @ 2006-03-02 16:32 UTC (permalink / raw)
  To: Paul Jackson; +Cc: Christoph Hellwig, akpm, Simon.Derr, linux-kernel

Paul Jackson <pj@sgi.com> writes:

>> Seems pointless.  This just increases #ifdef churn for no gain.
>
> Take a look at fs/proc/base.c.  That's how pretty much all the
> other proc hooks are done, with ifdef's around their proc hooks.
>
> ifdef minimization is a good goal, yes.
>
> But uniformity of practice is another good goal.

Agreed.  However the direction I am gradually moving fs/proc/base.c
is the opposite.  Moving things out of it as much as is reasonably
possible.

I already moved out all of the /proc/<pid>/?maps code into
fs/proc/task_mmu.c

I think the more important piece of uniform practice is to put all of
the operations structures and methods together in one file so that it
is easier to look between them, when making modifications especially
since cpuset_open and proc_cpuset_show are interdependent.

Eric

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

* Re: [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
  2006-03-02 16:32     ` Eric W. Biederman
@ 2006-03-02 16:52       ` Paul Jackson
  2006-03-02 17:09         ` Eric W. Biederman
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Jackson @ 2006-03-02 16:52 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: hch, akpm, Simon.Derr, linux-kernel

> Agreed.  However the direction I am gradually moving fs/proc/base.c
> is the opposite.

Oh - ok fine.

I had seen something from Andrew a couple of days ago
that led me to a different understanding in this particular
case.

Andrew - kill this patch (unless you know better.)

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.925.600.0401

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

* Re: [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c
  2006-03-02 16:52       ` Paul Jackson
@ 2006-03-02 17:09         ` Eric W. Biederman
  0 siblings, 0 replies; 6+ messages in thread
From: Eric W. Biederman @ 2006-03-02 17:09 UTC (permalink / raw)
  To: Paul Jackson; +Cc: hch, akpm, Simon.Derr, linux-kernel

Paul Jackson <pj@sgi.com> writes:

>> Agreed.  However the direction I am gradually moving fs/proc/base.c
>> is the opposite.
>
> Oh - ok fine.
>
> I had seen something from Andrew a couple of days ago
> that led me to a different understanding in this particular
> case.

As we increase the number of namespaces that we allow multiple instances
of in linux.  More of the files that are in /proc need to become
per process, like /proc/mounts did.

I mentioned that to Andrew and I think the message got a little
garbled.

Eric

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

end of thread, other threads:[~2006-03-02 17:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-02  7:08 [PATCH] Proc: move proc fs hooks from cpuset.c to proc/fs/base.c Paul Jackson
2006-03-02  8:47 ` Christoph Hellwig
2006-03-02 14:23   ` Paul Jackson
2006-03-02 16:32     ` Eric W. Biederman
2006-03-02 16:52       ` Paul Jackson
2006-03-02 17:09         ` Eric W. Biederman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox