Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-07-02 Thread Tetsuo Handa
Tetsuo Handa wrote: > Here is a demo patch. If you can join analysis of why memory allocation > function cannot return for more than 15 minutes under severe memory pressure, > I'll invite you to private discussion in order to share steps for reproducing > such memory pressure. A quick test says tha

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-06-09 Thread Tetsuo Handa
Tetsuo Handa wrote: > We need some more changes. I'm thinking memory allocation watchdog thread. > Add an "unsigned long" field to "struct task_struct", set jiffies to the field > upon entry of GFP_WAIT-able memory allocation attempts, and clear the field > upon returning from GFP_WAIT-able memory

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-06-05 Thread Dave Chinner
On Thu, Jun 05, 2014 at 09:45:26PM +0900, Tetsuo Handa wrote: > David Rientjes wrote: > > On Mon, 26 May 2014, Tetsuo Handa wrote: > > > > > In shrink_inactive_list(), we do not insert delay at > > > > > > if (!sc->hibernation_mode && !current_is_kswapd()) > > > wait_iff_congested(zone, BLK

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-06-05 Thread Tetsuo Handa
David Rientjes wrote: > On Mon, 26 May 2014, Tetsuo Handa wrote: > > > In shrink_inactive_list(), we do not insert delay at > > > > if (!sc->hibernation_mode && !current_is_kswapd()) > > wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10); > > > > if sc->hibernation_mode != 0. > > Follow the sam

RE: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-20 Thread Motohiro Kosaki
oundation.org; > h...@infradead.org; linux-kernel@vger.kernel.org; x...@oss.sgi.com > Subject: Re: [PATCH] mm/vmscan: Do not block forever at > shrink_inactive_list(). > > Today I discussed with Kosaki-san at LinuxCon Japan 2014 about this issue. > He does not like the idea of addi

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-20 Thread Tetsuo Handa
Today I discussed with Kosaki-san at LinuxCon Japan 2014 about this issue. He does not like the idea of adding timeout to throttle loop. As Dave posted a patch that fixes a bug in XFS delayed allocation, I updated my patch accordingly. Although the bug in XFS was fixed by Dave's patch, other kerne

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-20 Thread Christoph Hellwig
On Mon, May 19, 2014 at 10:59:15PM -0700, Andrew Morton wrote: > So current_is_kswapd() returns true for a thread which is not kswapd. > That's a bit smelly. > > Should this thread really be incrementing KSWAPD_INODESTEAL instead of > PGINODESTEAL, for example? current_is_kswapd() does a range o

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Dave Chinner
On Mon, May 19, 2014 at 11:03:11PM -0700, Andrew Morton wrote: > On Mon, 19 May 2014 22:59:15 -0700 Andrew Morton > wrote: > > > On Tue, 20 May 2014 10:44:49 +1000 Dave Chinner wrote: > > > > > @@ -258,14 +258,23 @@ xfs_bmapi_allocate_worker( > > > struct xfs_bmalloca *args = container_o

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Dave Chinner
On Mon, May 19, 2014 at 10:59:15PM -0700, Andrew Morton wrote: > On Tue, 20 May 2014 10:44:49 +1000 Dave Chinner wrote: > > > @@ -258,14 +258,23 @@ xfs_bmapi_allocate_worker( > > struct xfs_bmalloca *args = container_of(work, > > struct xfs_bmal

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Andrew Morton
On Mon, 19 May 2014 22:59:15 -0700 Andrew Morton wrote: > On Tue, 20 May 2014 10:44:49 +1000 Dave Chinner wrote: > > > @@ -258,14 +258,23 @@ xfs_bmapi_allocate_worker( > > struct xfs_bmalloca *args = container_of(work, > > struct xfs_bmalloca

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Andrew Morton
On Tue, 20 May 2014 10:44:49 +1000 Dave Chinner wrote: > @@ -258,14 +258,23 @@ xfs_bmapi_allocate_worker( > struct xfs_bmalloca *args = container_of(work, > struct xfs_bmalloca, work); > unsigned long pflags; > + unsigned

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Dave Chinner
On Tue, May 20, 2014 at 12:54:29PM +0900, Tetsuo Handa wrote: > Dave Chinner wrote: > > So, XFS should be passing kswapd context to the workqueue allocation > > context. The patch below does this. > > > > Tetsuo-san, when it comes to problems involving XFS, you should > > really CC x...@oss.sgi.co

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Tetsuo Handa
Dave Chinner wrote: > So, XFS should be passing kswapd context to the workqueue allocation > context. The patch below does this. > > Tetsuo-san, when it comes to problems involving XFS, you should > really CC x...@oss.sgi.com because very few people really know how > XFS works and even fewer still

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Jianyu Zhan
On Mon, May 19, 2014 at 10:40 PM, Tetsuo Handa wrote: > > Since the kernel worker thread needs to escape from the while loop so that > alloc_page() can allocate memory (and eventually allow xfs_vm_writepage() > to release memory), I think that we should not block forever. This patch > introduces 3

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Dave Chinner
[cc x...@oss.sgi.com] On Mon, May 19, 2014 at 11:40:46PM +0900, Tetsuo Handa wrote: > >From f016db5d7f84d6321132150b13c5888ef67d694f Mon Sep 17 00:00:00 2001 > From: Tetsuo Handa > Date: Mon, 19 May 2014 23:24:11 +0900 > Subject: [PATCH] mm/vmscan: Do not block forever at shrin

Re: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Rik van Riel
On 05/19/2014 10:40 AM, Tetsuo Handa wrote: >>From f016db5d7f84d6321132150b13c5888ef67d694f Mon Sep 17 00:00:00 2001 > From: Tetsuo Handa > Date: Mon, 19 May 2014 23:24:11 +0900 > Subject: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list(). > > I can observe

[PATCH] mm/vmscan: Do not block forever at shrink_inactive_list().

2014-05-19 Thread Tetsuo Handa
>From f016db5d7f84d6321132150b13c5888ef67d694f Mon Sep 17 00:00:00 2001 From: Tetsuo Handa Date: Mon, 19 May 2014 23:24:11 +0900 Subject: [PATCH] mm/vmscan: Do not block forever at shrink_inactive_list(). I can observe that commit 35cd7815 "vmscan: throttle direct reclaim when too many p