From: "Maxim V. Patlasov" <mpatlasov@parallels.com>
To: "miklos@szeredi.hu" <miklos@szeredi.hu>
Cc: <dev@parallels.com>, <xemul@parallels.com>,
"fuse-devel@lists.sourceforge.net"
<fuse-devel@lists.sourceforge.net>,
<linux-kernel@vger.kernel.org>, <jbottomley@parallels.com>,
<viro@zeniv.linux.org.uk>, <linux-fsdevel@vger.kernel.org>,
<devel@openvz.org>, <akpm@linux-foundation.org>,
<fengguang.wu@intel.com>
Subject: Re: [fuse-devel] [PATCH 14/14] mm: Account for WRITEBACK_TEMP in balance_dirty_pages
Date: Thu, 25 Apr 2013 18:29:58 +0400 [thread overview]
Message-ID: <51793DE6.3000503@parallels.com> (raw)
In-Reply-To: <20130401104250.19027.27795.stgit@maximpc.sw.ru>
Hi Miklos,
04/01/2013 02:42 PM, Maxim V. Patlasov пишет:
> Make balance_dirty_pages start the throttling when the WRITEBACK_TEMP
> counter is high enough. This prevents us from having too many dirty
> pages on fuse, thus giving the userspace part of it a chance to write
> stuff properly.
>
> Note, that the existing balance logic is per-bdi, i.e. if the fuse
> user task gets stuck in the function this means, that it either
> writes to the mountpoint it serves (but it can deadlock even without
> the writeback) or it is writing to some _other_ dirty bdi and in the
> latter case someone else will free the memory for it.
>
> Signed-off-by: Maxim Patlasov <MPatlasov@parallels.com>
> Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
> ---
> mm/page-writeback.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/mm/page-writeback.c b/mm/page-writeback.c
> index 0713bfb..c47bcd4 100644
> --- a/mm/page-writeback.c
> +++ b/mm/page-writeback.c
> @@ -1235,7 +1235,8 @@ static void balance_dirty_pages(struct address_space *mapping,
> */
> nr_reclaimable = global_page_state(NR_FILE_DIRTY) +
> global_page_state(NR_UNSTABLE_NFS);
> - nr_dirty = nr_reclaimable + global_page_state(NR_WRITEBACK);
> + nr_dirty = nr_reclaimable + global_page_state(NR_WRITEBACK) +
> + global_page_state(NR_WRITEBACK_TEMP);
>
> global_dirty_limits(&background_thresh, &dirty_thresh);
Please drop this patch. As we discussed in LSF/MM, the fix above is
correct, but it's not enough: we also need to ensure disregard of
NR_WRITEBACK_TEMP when balance_dirty_pages() is called from fuse daemon.
I'll send a separate patch-set soon.
Thanks,
Maxim
next prev parent reply other threads:[~2013-04-25 14:29 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-01 10:40 [PATCH v4 00/14] fuse: An attempt to implement a write-back cache policy Maxim V. Patlasov
2013-04-01 10:41 ` [PATCH 08/14] fuse: Flush files on wb close Maxim V. Patlasov
[not found] ` <20130401103749.19027.89833.stgit-vWG5eQQidJHciZdyczg/7Q@public.gmane.org>
2013-04-01 10:40 ` [PATCH 01/14] fuse: Linking file to inode helper Maxim V. Patlasov
2013-04-01 10:40 ` Maxim V. Patlasov
2013-04-01 10:40 ` [PATCH 02/14] fuse: Getting file for writeback helper Maxim V. Patlasov
2013-04-01 10:40 ` Maxim V. Patlasov
2013-04-01 10:41 ` [PATCH 03/14] fuse: Prepare to handle short reads Maxim V. Patlasov
2013-04-01 10:41 ` Maxim V. Patlasov
2013-04-01 10:41 ` [PATCH 04/14] fuse: Prepare to handle multiple pages in writeback Maxim V. Patlasov
2013-04-01 10:41 ` Maxim V. Patlasov
2013-04-25 10:22 ` Miklos Szeredi
2013-04-01 10:41 ` [PATCH 05/14] fuse: Connection bit for enabling writeback Maxim V. Patlasov
2013-04-01 10:41 ` Maxim V. Patlasov
2013-04-01 10:41 ` [PATCH 06/14] fuse: Trust kernel i_size only - v3 Maxim V. Patlasov
2013-04-01 10:41 ` Maxim V. Patlasov
2013-04-01 10:41 ` [PATCH 07/14] fuse: Trust kernel i_mtime only Maxim V. Patlasov
2013-04-01 10:41 ` Maxim V. Patlasov
2013-04-01 10:42 ` [PATCH 09/14] fuse: Implement writepages and write_begin/write_end callbacks - v3 Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-25 10:35 ` Miklos Szeredi
2013-06-14 14:03 ` Maxim Patlasov
2013-04-01 10:42 ` [PATCH 10/14] fuse: fuse_writepage_locked() should wait on writeback Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-01 10:42 ` [PATCH 11/14] fuse: fuse_flush() " Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-01 10:42 ` [PATCH 12/14] fuse: Fix O_DIRECT operations vs cached writeback misorder - v2 Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-01 10:42 ` [PATCH 13/14] fuse: Turn writeback cache on Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-01 10:42 ` [PATCH 14/14] mm: Account for WRITEBACK_TEMP in balance_dirty_pages Maxim V. Patlasov
2013-04-01 10:42 ` Maxim V. Patlasov
2013-04-25 14:29 ` Maxim V. Patlasov [this message]
2013-04-25 15:49 ` [fuse-devel] " Miklos Szeredi
2013-04-25 16:16 ` Maxim V. Patlasov
2013-04-25 20:43 ` Miklos Szeredi
2013-04-26 8:32 ` Maxim V. Patlasov
2013-04-26 8:32 ` Maxim V. Patlasov
2013-04-26 8:32 ` Maxim V. Patlasov
2013-04-26 14:02 ` Miklos Szeredi
2013-04-26 14:02 ` Miklos Szeredi
2013-04-26 17:44 ` Maxim V. Patlasov
2013-04-26 17:44 ` Maxim V. Patlasov
2013-04-26 17:44 ` Maxim V. Patlasov
2013-05-07 11:39 ` Miklos Szeredi
2013-05-07 11:39 ` Miklos Szeredi
2013-04-11 11:18 ` [fuse-devel] [PATCH v4 00/14] fuse: An attempt to implement a write-back cache policy Maxim V. Patlasov
2013-04-11 14:36 ` Miklos Szeredi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51793DE6.3000503@parallels.com \
--to=mpatlasov@parallels.com \
--cc=akpm@linux-foundation.org \
--cc=dev@parallels.com \
--cc=devel@openvz.org \
--cc=fengguang.wu@intel.com \
--cc=fuse-devel@lists.sourceforge.net \
--cc=jbottomley@parallels.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=viro@zeniv.linux.org.uk \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.