Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3286506pxk; Mon, 28 Sep 2020 13:15:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzGrxN6YQg4WzpvDZyas8BDpL8ZjiX9+WGlg7L144Be6NWhyEWh2FHJ843pkN5bvcdS2mmf X-Received: by 2002:a17:906:72d2:: with SMTP id m18mr486608ejl.220.1601324138129; Mon, 28 Sep 2020 13:15:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601324138; cv=none; d=google.com; s=arc-20160816; b=TE1i36nsSrznygo4UZcaH3lZOoHVn9+sC8trx3Ghiil8ANwIkCiTvmEkkRMWbJlLSc GrZUGIxWP6MY7/0yaapgJf+FczgORVOmOWSnIQ1DRNLAyFI4BQSo689BAPZ1WYCqsxlW KV8Ll9lSg5rpOYymWSVdf6ELgqCbjwu5aSfqneIdvEnpl4N7iChnKu1FpkbboYn64171 huO9q1KXHkbtwm00sLqnDnO/kSRm0VfCvcGkATWB0j4wPEMHwpso3trwL3YSFMdO2fh6 dAKHA3G/jpp5234rBVwYs1huWzfhyM5OYj6n/75Bk2lDcizDNW0R/xWGsPl3O6ZDIDfo QCXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=t2Q0uIBZ/RzOgL5GzysOkr7fCQhRlmEFsQdJ/RR5oT0=; b=A1AOJE06JsYzCwT6HDCSYZTN/JOw45ZJsDkVHA6Cy7snwuqtuHUEUcPr+yElbnnrT4 iMjworKJ/6BRNopIeMMtBii2ZGxTqSNCQ+AsAajJRpqKAJSM9yfdKSgeWzPLAfYO/9h1 6BcUcTqPkn0t/5X/aDmO3UW1EfrdRj5DRmwSEgetOnvB1RSgPF/zAUxfeMMaVnYIIFh/ OKR/t18v40cUh5WlUFn+zS9/GKDNbJ15FClD6BIcU0lk/4m5+j3q3YHx5cd9pELCmmtD 8PzzXxrG1fVy3mDrvIEurlz+VyObekDFBwC7hvKg9DTntPsqTAIoeE47JqewaiRSKZ1C 39ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=Hh0jWyOL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rn21si1215538ejb.69.2020.09.28.13.15.15; Mon, 28 Sep 2020 13:15:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=Hh0jWyOL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726799AbgI1UNp (ORCPT + 99 others); Mon, 28 Sep 2020 16:13:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726325AbgI1UNp (ORCPT ); Mon, 28 Sep 2020 16:13:45 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6464DC0613CE for ; Mon, 28 Sep 2020 13:13:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=t2Q0uIBZ/RzOgL5GzysOkr7fCQhRlmEFsQdJ/RR5oT0=; b=Hh0jWyOLmF2ubwBcGSJg9VHd0c 00enI/j0nkFWm9hZNU3/FCYw7ZgJ0g8eCVenH3BCTKdaYtaTQFNYEveagYc51mzw+FQiUPpLgkWJH FZARv2Fb0LOfTartGA6NV2F1P5kRnIAR3ZfizO1mWvGGG8jN+HcuFWhwYvBY8yxXon7TJzLXirxGJ KxkwaeI7DYNuwgI6LOEsAURn4Z7d8PZmnBMiLrm4AFjuhl5NdBeL/NQm41JtJrJ0ENMIIsWFFZyEv EltP7D0BscL07X6zUliaCskgs24B2vaeSADDRMdPyBKk01rEH9lZ2BuxT+y1JwRYg8rVw2Oc7neIW 32u1/wOQ==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kMzWg-00022X-DV; Mon, 28 Sep 2020 20:13:34 +0000 Date: Mon, 28 Sep 2020 21:13:34 +0100 From: Matthew Wilcox To: linux-mm@kvack.org Cc: Andrew Morton , Hugh Dickins , William Kucharski , Johannes Weiner , Jan Kara , Yang Shi , Dave Chinner , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 00/12] Overhaul multi-page lookups for THP Message-ID: <20200928201334.GC30994@casper.infradead.org> References: <20200914130042.11442-1-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200914130042.11442-1-willy@infradead.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ping On Mon, Sep 14, 2020 at 02:00:30PM +0100, Matthew Wilcox (Oracle) wrote: > The critical patch to review here is patch 11, "Handle truncates that > split THPs". This code is shared with shmem, and while xfstests passes > (both with the tmpfs filesystem and with THPs enabled for XFS), it is > terribly subtle. > > I posted a similar patch series a few weeks ago [1], but this goes a few > steps further than that one did. In addition to the unification of > find_get_entries() and pagevec_lookup_entries(), this patch series > includes: > > - Only return the head pages from tagged lookups > - Factor a lot of common code out of the various batch lookup routines > - Add mapping_seek_hole_data() > - Only return head pages from find_get_entries > > I also have a patch to iomap to use mapping_seek_hole_data(), but I'm > not including that as part of this batch of patches -- I'll send it > through the iomap tree once mapping_seek_hole_data() lands upstream. > > [1] https://lore.kernel.org/linux-mm/20200819184850.24779-1-willy@infradead.org/ > > Matthew Wilcox (Oracle) (12): > mm: Make pagecache tagged lookups return only head pages > mm/shmem: Use pagevec_lookup in shmem_unlock_mapping > mm/filemap: Add helper for finding pages > mm/filemap: Add mapping_seek_hole_data > mm: Add and use find_lock_entries > mm: Add an 'end' parameter to find_get_entries > mm: Add an 'end' parameter to pagevec_lookup_entries > mm: Remove nr_entries parameter from pagevec_lookup_entries > mm: Pass pvec directly to find_get_entries > mm: Remove pagevec_lookup_entries > mm/truncate,shmem: Handle truncates that split THPs > mm/filemap: Return only head pages from find_get_entries > > include/linux/pagemap.h | 5 +- > include/linux/pagevec.h | 4 - > mm/filemap.c | 267 +++++++++++++++++++++++++++------------- > mm/internal.h | 5 + > mm/shmem.c | 214 +++++++------------------------- > mm/swap.c | 38 +----- > mm/truncate.c | 249 ++++++++++++++----------------------- > 7 files changed, 329 insertions(+), 453 deletions(-) > > -- > 2.28.0 >