Reading/writing a /proc/kpage* file may take long on machines with a lot of RAM installed. Suggested-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx> Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> --- fs/proc/page.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/proc/page.c b/fs/proc/page.c index 13dcb823fe4e..7ff7cba8617b 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c @@ -58,6 +58,8 @@ static ssize_t kpagecount_read(struct file *file, char __user *buf, pfn++; out++; count -= KPMSIZE; + + cond_resched(); } *ppos += (char __user *)out - buf; @@ -219,6 +221,8 @@ static ssize_t kpageflags_read(struct file *file, char __user *buf, pfn++; out++; count -= KPMSIZE; + + cond_resched(); } *ppos += (char __user *)out - buf; @@ -267,6 +271,8 @@ static ssize_t kpagecgroup_read(struct file *file, char __user *buf, pfn++; out++; count -= KPMSIZE; + + cond_resched(); } *ppos += (char __user *)out - buf; @@ -421,6 +427,7 @@ static ssize_t kpageidle_read(struct file *file, char __user *buf, idle_bitmap = 0; out++; } + cond_resched(); } *ppos += (char __user *)out - buf; @@ -467,6 +474,7 @@ static ssize_t kpageidle_write(struct file *file, const char __user *buf, put_page(page); } } + cond_resched(); } *ppos += (const char __user *)in - buf; -- 2.1.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>