Messages in this thread Patch in this message | | | Date | Fri, 13 Apr 2018 20:54:08 +0300 | From | Alexey Dobriyan <> | Subject | [PATCH] proc: fix /proc/loadavg regression |
| |
commit 95846ecf9dac5089aed4b144d912225f8ef86ae4 "pid: replace pid bitmap implementation with IDR API"
changed last field of /proc/loadavg (last pid allocated) to be off by one:
# unshare -p -f --mount-proc cat /proc/loadavg 0.00 0.00 0.00 1/60 2 <===
It should be 1 after first fork into pid namespace.
This is formally a regression but given how useless this field is I don't think anyone is affected.
Bug was found by /proc testsuite!
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> ---
arch/powerpc/platforms/cell/spufs/sched.c | 2 +- fs/proc/loadavg.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
--- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c @@ -1093,7 +1093,7 @@ static int show_spu_loadavg(struct seq_file *s, void *private) LOAD_INT(c), LOAD_FRAC(c), count_active_contexts(), atomic_read(&nr_spu_contexts), - idr_get_cursor(&task_active_pid_ns(current)->idr)); + idr_get_cursor(&task_active_pid_ns(current)->idr) - 1); return 0; } --- a/fs/proc/loadavg.c +++ b/fs/proc/loadavg.c @@ -24,7 +24,7 @@ static int loadavg_proc_show(struct seq_file *m, void *v) LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]), LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]), nr_running(), nr_threads, - idr_get_cursor(&task_active_pid_ns(current)->idr)); + idr_get_cursor(&task_active_pid_ns(current)->idr) - 1); return 0; }
| |