From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5CC4C433E1 for ; Mon, 29 Jun 2020 15:20:41 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8BE26246F9 for ; Mon, 29 Jun 2020 15:20:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="nGZFIs2M" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8BE26246F9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 7F3066B0023; Mon, 29 Jun 2020 11:20:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A0DE6B007E; Mon, 29 Jun 2020 11:20:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61D9C6B0080; Mon, 29 Jun 2020 11:20:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0153.hostedemail.com [216.40.44.153]) by kanga.kvack.org (Postfix) with ESMTP id 2C11E6B0023 for ; Mon, 29 Jun 2020 11:20:40 -0400 (EDT) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id E096C181AC9C6 for ; Mon, 29 Jun 2020 15:20:39 +0000 (UTC) X-FDA: 76982611398.23.oven10_330df2726e70 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin23.hostedemail.com (Postfix) with ESMTP id B9AA137608 for ; Mon, 29 Jun 2020 15:20:39 +0000 (UTC) X-HE-Tag: oven10_330df2726e70 X-Filterd-Recvd-Size: 2947 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP for ; Mon, 29 Jun 2020 15:20:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=B5KtamRoDLMzqg8FBJ8UDiXbyCRvboqrbqBovPLTjTY=; b=nGZFIs2MwmfVuSlVZWU5oGjWFF +0LWnq6wxXdk9tTo2w3/dbt8GQTWSsiWt8dFi1MMQ26Eja7P5GypHy3XUwj5gHnT4e/Y01ueEqmyL toF+18EnIY5G2dp3iFLPg5LqImxea2hlilEW5ci2FW+1mEGatziWSN8dtba5j2pMt88URRTdK3Snx 83mXDKQNLpHHB+o5FzvL/ESZa4/JHfHHF8jGxxdy/3jHfq9XdpysPuJIyzJnJudu1/isXkWeQBA6+ QNtjFFV5n5GOTFVq4XL2PQPKu9+r+PXStMliHxKF7ZWrEd1vtyfhTpsdi06nvq3a7xNMQIzWSC7WM WpNmEiVA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1jpvaF-0004Et-Q8; Mon, 29 Jun 2020 15:20:35 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton Cc: "Matthew Wilcox (Oracle)" , Hugh Dickins Subject: [PATCH 0/2] Use multi-index entries in the page cache Date: Mon, 29 Jun 2020 16:20:31 +0100 Message-Id: <20200629152033.16175-1-willy@infradead.org> X-Mailer: git-send-email 2.21.3 MIME-Version: 1.0 X-Rspamd-Queue-Id: B9AA137608 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Following Hugh's advice at LSFMM 2019, I was trying to avoid doing this, but it turns out to be hard to support range writeback with the pagecache using multiple single entries. Of course, this isn't a problem for shmem because it doesn't have a real backing device (only swap), but real filesystems need to start writeback at arbitrary file offsets and have problems if we don't notice that the first (huge) page in the range is dirty. Hugh, I would love it if you could test this. It didn't introduce any ne= w regressions to the xfstests, but shmem does exercise different paths and of course I don't have a clean xfstests run yet, so there could easily still be bugs. I'd like this to be included in mmotm, but it is less urgent than the previous patch series that I've sent. As far as risk, I think it only affects shmem/tmpfs. Matthew Wilcox (Oracle) (2): XArray: Add xas_split mm: Use multi-index entries in the page cache Documentation/core-api/xarray.rst | 16 ++-- include/linux/xarray.h | 2 + lib/test_xarray.c | 41 ++++++++ lib/xarray.c | 153 ++++++++++++++++++++++++++++-- mm/filemap.c | 42 ++++---- mm/huge_memory.c | 21 +++- mm/khugepaged.c | 12 ++- mm/shmem.c | 11 +-- 8 files changed, 245 insertions(+), 53 deletions(-) --=20 2.27.0