[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200214065504.GK31689@dhcp22.suse.cz>
Date: Fri, 14 Feb 2020 07:55:04 +0100
From: Michal Hocko <mhocko@...nel.org>
To: Matthew Wilcox <willy@...radead.org>
Cc: Cong Wang <xiyou.wangcong@...il.com>,
LKML <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-mm <linux-mm@...ck.org>, Mel Gorman <mgorman@...e.de>,
Vlastimil Babka <vbabka@...e.cz>
Subject: Re: [PATCH] mm: avoid blocking lock_page() in kcompactd
On Thu 13-02-20 20:27:24, Matthew Wilcox wrote:
> On Thu, Feb 13, 2020 at 06:08:24PM +0100, Michal Hocko wrote:
> > On Thu 13-02-20 08:46:07, Matthew Wilcox wrote:
> > > On Thu, Feb 13, 2020 at 08:48:47AM +0100, Michal Hocko wrote:
> > > > Can we pursue on this please? An explicit NOFS scope annotation with a
> > > > reference to compaction potentially locking up on pages in the readahead
> > > > would be a great start.
> > >
> > > How about this (on top of the current readahead series):
> > >
> > > diff --git a/mm/readahead.c b/mm/readahead.c
> > > index 29ca25c8f01e..32fd32b913da 100644
> > > --- a/mm/readahead.c
> > > +++ b/mm/readahead.c
> > > @@ -160,6 +160,16 @@ unsigned long page_cache_readahead_limit(struct address_space *mapping,
> > > .nr_pages = 0,
> > > };
> > >
> > > + /*
> > > + * Partway through the readahead operation, we will have added
> > > + * locked pages to the page cache, but will not yet have submitted
> > > + * them for I/O. Adding another page may need to allocate
> > > + * memory, which can trigger memory migration. Telling the VM
> >
> > I would go with s@...ration@...paction@ because it would make it more
> > obvious that this is about high order allocations.
>
> Perhaps even just 'reclaim' -- it's about compaction today, but tomorrow's
> VM might try to reclaim these pages too. They are on the LRU, after all.
>
> So I currently have:
>
> /*
> * Partway through the readahead operation, we will have added
> * locked pages to the page cache, but will not yet have submitted
> * them for I/O. Adding another page may need to allocate memory,
> * which can trigger memory reclaim. Telling the VM we're in
> * the middle of a filesystem operation will cause it to not
> * touch file-backed pages, preventing a deadlock. Most (all?)
> * filesystems already specify __GFP_NOFS in their mapping's
> * gfp_mask, but let's be explicit here.
> */
OK, Thanks!
--
Michal Hocko
SUSE Labs
Powered by blists - more mailing lists