From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752810AbaCABVU (ORCPT ); Fri, 28 Feb 2014 20:21:20 -0500 Received: from mail-pa0-f52.google.com ([209.85.220.52]:61847 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751739AbaCABVR (ORCPT ); Fri, 28 Feb 2014 20:21:17 -0500 Date: Fri, 28 Feb 2014 17:20:23 -0800 (PST) From: Hugh Dickins X-X-Sender: hugh@eggly.anvils To: Ning Qu cc: Linus Torvalds , Andrew Morton , Mel Gorman , Rik van Riel , "Kirill A. Shutemov" , Andi Kleen , Matthew Wilcox , Dave Hansen , Alexander Viro , Dave Chinner , Ning Qu , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/1] mm: implement ->map_pages for shmem/tmpfs In-Reply-To: <1393625931-2858-2-git-send-email-quning@google.com> Message-ID: References: <1393625931-2858-1-git-send-email-quning@google.com> <1393625931-2858-2-git-send-email-quning@google.com> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 28 Feb 2014, Ning Qu wrote: > In shmem/tmpfs, we also use the generic filemap_map_pages, > seems the additional checking is not worth a separate version > of map_pages for it. > > Signed-off-by: Ning Qu > --- > mm/shmem.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/shmem.c b/mm/shmem.c > index 1f18c9d..2ea4e89 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -2783,6 +2783,7 @@ static const struct super_operations shmem_ops = { > > static const struct vm_operations_struct shmem_vm_ops = { > .fault = shmem_fault, > + .map_pages = filemap_map_pages, > #ifdef CONFIG_NUMA > .set_policy = shmem_set_policy, > .get_policy = shmem_get_policy, > -- (There's no need for a 0/1, all the info should go into the one patch.) I expect this will prove to be a very sensible and adequate patch, thank you: it probably wouldn't be worth more effort to give shmem anything special of its own, and filemap_map_pages() is already (almost) coping with exceptional entries. But I can't Ack it until I've tested it some more, won't be able to do so until Sunday; and even then some doubt, since this and Kirill's are built upon mmotm/next, which after a while gives me spinlock lockups under load these days, yet to be investigated. "almost" above because, Kirill, even without Ning's extension to shmem, your filemap_map_page() soon crashes on an exceptional entry: Don't try to dereference an exceptional entry. Signed-off-by: Hugh Dickins --- mmotm+kirill/mm/filemap.c 2014-02-28 15:17:50.984019060 -0800 +++ linux/mm/filemap.c 2014-02-28 16:38:04.976633308 -0800 @@ -2084,7 +2084,7 @@ repeat: if (radix_tree_deref_retry(page)) break; else - goto next; + continue; } if (!page_cache_get_speculative(page))