Messages in this thread | | | Date | Tue, 24 Jan 2012 23:12:45 -0800 | From | Andrew Morton <> | Subject | Re: [patch 3/4] c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat |
| |
On Wed, 25 Jan 2012 10:54:50 +0400 Cyrill Gorcunov <gorcunov@gmail.com> wrote:
> > > + (mm && permitted) ? mm->start_brk : 0, > > > + (mm && permitted) ? mm->arg_start : 0, > > > + (mm && permitted) ? mm->arg_end : 0, > > > + (mm && permitted) ? mm->env_start : 0, > > > + (mm && permitted) ? mm->env_end : 0, > > > + task->exit_code); > > > if (mm) > > > mmput(mm); > > > return 0; > > > > /proc/pid/stat is getting out of control. People are now sending patches > > because reading from this thing already takes too long.
err, actually, that was /proc/stat/
> > The problem is that if you only want one field, you have to incur the > > cost of preparing all the fields. The magnitude of this problem > > increases exponentially over time! > > > > I'm unsure what to do about it really. Perhaps add a new > > /proc/pid/mmstat for MM-specific things. We could put the above six > > fields in there, as long as we move quickly. > > > > I can add prctl PR_GET_MM with subcodes, since PR_SET_MM is already here > and wrapped with CHECKPOINT_RESTORE. Would this be better?
mm, not really - /proc is the logical/expected place for it.
I'm thinking that perhaps we should start again with all of this and export all this information in brand new, well-designed procfs files. We'd still maintain /proc/stat and /proc/pid/stat but people should migrate off them. Eventually (10 years?) everyone will be setting their CONFIG_PROC_[PID_]STAT to 'n' and perhaps we can retire the things.
Meanwhile, I suppose you may as well continue to make /proc/pid/stat even crazier :( It isn't as bad as /proc/stat!
btw, do we really need to do "(mm && permitted)" so many times? ie, can we split that seq_printf up and do
if (mm && permitted) { seq_printf(m + offset, "%lu", mm->start_data); ... } else { seq_printf(m + offset, "0 0 0 0 0 0 0 0 0"); }
? Although this probably won't help much.
| |