projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2027766
)
proc: add a schedule point in proc_pid_readdir()
author
Eric Dumazet
<edumazet@google.com>
Tue, 24 Jan 2017 23:18:07 +0000
(15:18 -0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Sat, 17 Jun 2017 04:39:38 +0000
(06:39 +0200)
[ Upstream commit
3ba4bceef23206349d4130ddf140819b365de7c8
]
We have seen proc_pid_readdir() invocations holding cpu for more than 50
ms. Add a cond_resched() to be gentle with other tasks.
[akpm@linux-foundation.org: coding style fix]
Link:
http://lkml.kernel.org/r/1484238380.15816.42.camel@edumazet-glaptop3.roam.corp.google.com
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/proc/base.c
patch
|
blob
|
history
diff --git
a/fs/proc/base.c
b/fs/proc/base.c
index d2b8c754f627f55b7de6b4af51ef407a869c5276..dd732400578e36d226dd932d55f427b815dae94c 100644
(file)
--- a/
fs/proc/base.c
+++ b/
fs/proc/base.c
@@
-3058,6
+3058,8
@@
int proc_pid_readdir(struct file *file, struct dir_context *ctx)
iter.tgid += 1, iter = next_tgid(ns, iter)) {
char name[PROC_NUMBUF];
int len;
+
+ cond_resched();
if (!has_pid_permissions(ns, iter.task, 2))
continue;