From patchwork Mon Oct 11 02:22:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Wang X-Patchwork-Id: 12548937 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48EA6C433F5 for ; Mon, 11 Oct 2021 02:22:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E1CB960F0F for ; Mon, 11 Oct 2021 02:22:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E1CB960F0F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 0C5E36B0071; Sun, 10 Oct 2021 22:22:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F16D1900002; Sun, 10 Oct 2021 22:22:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D45486B0072; Sun, 10 Oct 2021 22:22:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0126.hostedemail.com [216.40.44.126]) by kanga.kvack.org (Postfix) with ESMTP id A2DF2940007 for ; Sun, 10 Oct 2021 22:22:50 -0400 (EDT) Received: from smtpin32.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 5309B1802EC08 for ; Mon, 11 Oct 2021 02:22:50 +0000 (UTC) X-FDA: 78682558500.32.4D0FBFA Received: from out30-44.freemail.mail.aliyun.com (out30-44.freemail.mail.aliyun.com [115.124.30.44]) by imf03.hostedemail.com (Postfix) with ESMTP id E8CC83001BED for ; Mon, 11 Oct 2021 02:22:47 +0000 (UTC) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R881e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04426;MF=rongwei.wang@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0UrJKfFt_1633918961; Received: from localhost.localdomain(mailfrom:rongwei.wang@linux.alibaba.com fp:SMTPD_---0UrJKfFt_1633918961) by smtp.aliyun-inc.com(127.0.0.1); Mon, 11 Oct 2021 10:22:42 +0800 From: Rongwei Wang To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, willy@infradead.org, song@kernel.org, william.kucharski@oracle.com, hughd@google.com, shy828301@gmail.com Subject: [PATCH v4 0/2] mm, thp: fix file-backed THP race in collapse_file and truncate pagecache Date: Mon, 11 Oct 2021 10:22:39 +0800 Message-Id: <20211011022241.97072-1-rongwei.wang@linux.alibaba.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210906121200.57905-1-rongwei.wang@linux.alibaba.com> References: <20210906121200.57905-1-rongwei.wang@linux.alibaba.com> MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: E8CC83001BED X-Stat-Signature: woumyq5ffhcow4oq958uqkm4bjjopg3x Authentication-Results: imf03.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf03.hostedemail.com: domain of rongwei.wang@linux.alibaba.com designates 115.124.30.44 as permitted sender) smtp.mailfrom=rongwei.wang@linux.alibaba.com X-HE-Tag: 1633918967-395678 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: Hi We found two bugs related to file-backed THP in our cases, recently. The two bugs rough description as following: 1. in truncate_inode_pages_range, subpage(s) of file-backed THP can be revealed by find_get_entry. 2. 'collapse_file' miss the pages which in writeback but no private. This situation will be triggered in XFS when block size is set to PAGESIZE. These two patches mainly fix the above mentioned bugs, and have been tested in latest branch. Changelog: v3 -> v4: - Patch "mm, thp: lock filemap when truncating page cache" - Patch "mm, thp: bail out early in collapse_file for writeback page" remove the timestamps from the commit log. v2 -> v3: - Patch "mm, thp: lock filemap when truncating page cache" add filemap_invalidate_{un}lock before and after calling truncate_pagecache (Suggested by Song Liu and Matthew). v1 -> v2: - Patch "mm, thp: check page mapping when truncating page cache" move the check of page mapping to behind lock_page. - Patch "mm, thp: bail out early in collapse_file for writeback page" check the writeback flag before taking page lock (Suggested by Yang Shi). v1 link: https://patchwork.kernel.org/project/linux-mm/cover/20210906121200.57905-1-rongwei.wang@linux.alibaba.com/ v2 link: https://patchwork.kernel.org/project/linux-mm/patch/20210922070645.47345-2-rongwei.wang@linux.alibaba.com/ v3 link: https://patchwork.kernel.org/project/linux-mm/cover/20211006021837.59721-1-rongwei.wang@linux.alibaba.com/ Rongwei Wang (2): mm, thp: lock filemap when truncating page cache mm, thp: bail out early in collapse_file for writeback page fs/open.c | 5 ++++- mm/khugepaged.c | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-)