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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39939C001DE for ; Sun, 6 Aug 2023 03:55:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB3548D0002; Sat, 5 Aug 2023 23:55:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E63738D0001; Sat, 5 Aug 2023 23:55:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D2AC18D0002; Sat, 5 Aug 2023 23:55:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C13B78D0001 for ; Sat, 5 Aug 2023 23:55:41 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 66F0A140308 for ; Sun, 6 Aug 2023 03:55:41 +0000 (UTC) X-FDA: 81092315682.24.974F190 Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) by imf10.hostedemail.com (Postfix) with ESMTP id 923CDC0010 for ; Sun, 6 Aug 2023 03:55:39 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=nHQK9bAV; spf=pass (imf10.hostedemail.com: domain of hughd@google.com designates 209.85.128.180 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691294139; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=m2K+k0UoOXs6D5uLva9XkEFbd09ZRm9Z7/lr2pw8hZw=; b=4FncUBJ+mbnBqlX+81qKL/G+QNl5dKeq7lYGwoUoDd/tC11S5rJ6L202EUahu1FbjqYLS8 IZiL14Idm1SlK+4Do4IiSDNoK9Ud+u7wkZ+gv5RW7fXwqhZH9HXMjW7LAqbhKcVM9p+jKi 7QIX4A76Q+61un1WTHIn5/Goit9npaA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691294139; a=rsa-sha256; cv=none; b=U0kppiOQQZZ0x+wFuBDBKoPJ0LK645xtsnCh0jBoLondCWh3IMg0tuF4dfKVVTuw1/ue3v 41I3RoVoFvOCHGza1G42twFvgcmiZRQYVDM0YoixuSI225HiLD7cihNapS0P2cl2IGLfpp xHPilpthnol+e0NKObt39xwHSoMa4Bs= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=nHQK9bAV; spf=pass (imf10.hostedemail.com: domain of hughd@google.com designates 209.85.128.180 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-583f65806f8so37715177b3.0 for ; Sat, 05 Aug 2023 20:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691294138; x=1691898938; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=m2K+k0UoOXs6D5uLva9XkEFbd09ZRm9Z7/lr2pw8hZw=; b=nHQK9bAViVteBZuYzu1hSOzZou4B7CZHQRLaLY6OQhD1zUjj/ni/sFz980Hez3g6xP +XJdU9vnCkIdIo4sxbPl3r3sYiHSM+SwI9Q4fpiZIBM4Eof2E8FuwdvUmKXrdVFtQlcx ww+ZM5dOPHj7CUMoYM0F9VEscwNfVfykgHQSeFqLDRH8X8nndU7fw98QPxNlNPhr9jfi w3PvJYAodiPLKRnlfP8VbYcBqtQImekRiz1F15mmV39CZybLJVmANRH5/iuTvgm0WOhL SpUQkdBJ71frR6f2MxShl/q+q+TV2Ok4ynKVWq7SSJQkDn4kFZWzeTN8D/KeteoSw1o9 EKLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691294138; x=1691898938; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=m2K+k0UoOXs6D5uLva9XkEFbd09ZRm9Z7/lr2pw8hZw=; b=iNUveN24U3n7HJeihCiDcbb4QXovgXRaonmbbicKb5NiZEBVSRAwyLggQLvK9PB702 nOu4FYsu+SSQSHTrNbPsX4sxNeDOyx5XTTpzc5vEE/jqmfTeYN93bYXzKgBGeFx+EFmI Qq/0fza7mOdUoOaBQjncUmLMuci5YQ4cSWuMcmUicucqq+NjX3ZYgZXyn48jp6txdVYy zjI52vSc+cJIXKi+2t/hUjDbQk4kDkeKG/4oco0fHPvt6Zh1eZYmMj+Wrc0B+YOnotgt uG83McvqFYz4fa4RPFuCmMuHIM04RFp/4YxlCkRFB7kJTVDu4Qv6bJK+xaEpjzy6Gtep PNVA== X-Gm-Message-State: AOJu0YyGS/LjM6Et40MvikGcuRxnu6dGqL1wtdKSuCi+pgLZNvpxRwY9 NjLrWZW8qnGFd4TB7m+hC+fKmQ== X-Google-Smtp-Source: AGHT+IFiva5XFrTVBq0jEtYJXpVvro3rzuVZhewsSXihKRs8BSeQq4Tb3piHb2uK39Vd3DI+t0W0ew== X-Received: by 2002:a0d:d488:0:b0:56d:5272:d540 with SMTP id w130-20020a0dd488000000b0056d5272d540mr6237470ywd.46.1691294138477; Sat, 05 Aug 2023 20:55:38 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id a64-20020a0df143000000b00576e67820f3sm1861323ywf.66.2023.08.05.20.55.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Aug 2023 20:55:37 -0700 (PDT) Date: Sat, 5 Aug 2023 20:55:25 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Qi Zheng cc: Hugh Dickins , Andrew Morton , Pasha Tatashin , Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Yang Shi , Mel Gorman , Peter Xu , Peter Zijlstra , Will Deacon , Yu Zhao , Alistair Popple , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Lorenzo Stoakes , Huang Ying , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , Russell King , "David S. Miller" , Michael Ellerman , "Aneesh Kumar K.V" , Heiko Carstens , Christian Borntraeger , Claudio Imbrenda , Alexander Gordeev , Gerald Schaefer , Vasily Gorbik , Jann Horn , Vishal Moola , Vlastimil Babka , Zi Yan , linux-arm-kernel@lists.infradead.org, sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v3 10/13] mm/khugepaged: collapse_pte_mapped_thp() with mmap_read_lock() In-Reply-To: <0df84f9f-e9b0-80b1-4c9e-95abc1a73a96@bytedance.com> Message-ID: <884f20fe-d642-3a5f-522a-d756c3443bb4@google.com> References: <7cd843a9-aa80-14f-5eb2-33427363c20@google.com> <0df84f9f-e9b0-80b1-4c9e-95abc1a73a96@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 923CDC0010 X-Rspam-User: X-Stat-Signature: wzyy87r39ie7okoat6dbsz6nfmkpdt1g X-Rspamd-Server: rspam03 X-HE-Tag: 1691294139-185452 X-HE-Meta: U2FsdGVkX1+K0bcoisyy20E5WirWscGC/raBD8n9DNHDMsuQfKWERRA+Cu8CGX75J0FUHZz5rzy+Qw7GrHfO43kxhqi0Ooa8MKwNJK7EJHLGxKYhTg6MWDs6TRF32vj3fBeBEtaz1OfFmZ1HSphu1u/slcu0Nb6GC4hvikocXU89aZ5g6TRu73FnR+KHNgxN+JAv9j1wUaOuh9xqbpHg4UIjkEImJTHheVAwBhFPeNgFtTCnMWJBgs4QiOjIf6QHP5cRLpjevYShIVemJHOYlfpH6MMdL4RTvDVTOGqTforNptZtHe4Rq3cxKphmU6MO+kY3nAO565hFg2b1zKVx24QkzpmUzAMfizHRYcCk0HRhpTJb6FmZCPfpfpSoUQ+jnPKFfAKex2zAUC3T8x4i9ALpC0JzoqPM4AtO9Mu7+F9FqD+5o8wulvMdDBTt9CxbeVlrLVdQRlRX3BA2PRaFoLFqogGViPlLjJgtzyl0hBwRZD5WsRP9uPa8cpFXsFSPYfvUMuGeOzAJHhF6YQfdeos39wQKXBbgRq2fqo6Yl4pOJDEQoEVut+D1u5uyFiszBcCr9eLJ0gYlaqeiXi798TCVBeu9Vf371rtl/rdf4TFKWnZz8nVEC1oj3YVFzmTtIBXfEXI8oueVWSrJ602LTd5GwH3YTVBi9Ut1D7qLLWLcwTF3tmoeGNGU7DgK8wLUmj2EkBZ/c5tHKAv1KLJ788c9y2U5TBB6zPmJfJVub5mzPo7vykLryvk2VJYMHONC3HntUvMQxO6UZRGe6D5k9w43keUVohLU/55kp4Fz2pe4Xsmqf/cjp7Zx7Dlw/ega16ZqZK+wEaSmjSc//Jd0nOrKlV7s+C5NOZViHj4JUZyjHu0LGgtsAB/TuqPzp3W0HULvq22l2s8I8kjHE/Ef0oXiPB7oonqX2EHb/ARnWw+0v7M8VTti2YIJLb/S7rp0JRjmi0KSF9IusNcvsx9 DZQZQJ9J U0rPKiV5KyczbcUdo2nA9aZxT6sZ379clGkdsfx9aaMN0Y0TigsjWAYMWsLjzADAAz7rttdcSJammQ+TKR7a6wX3zOfWoIgAVyrnOCFrzCsYmE1536oxj0Nn+wxwJsWVwjZ3ksV0Vd3UII5QK1FFv0z2+QoYAg9YPBp9MZxHd58SfyOPFaqnn5oclynnyMVipdTGIW3DXFH39GEe0vGQaVAoDcrq7LsWAuQ6X+mIbuVC+XH6mbpAAMRXpGBtEFZinsuOMJgupI4MBJdjIqihya/v+FwYCtzWw5MiaBaaGae0s4UOvXRfTjI8Qr4PjqMnxV1CtFJYcM6DwrVjNzO1UndBDrqW6gUoKqFO3ufjPbCzn6q5D/ZirGSTVQhjBgVxJ/XaYi2cZsWiuDM/VN8eibVU9K1Uu8v4b8DccutSQiwrXuMoIHalS9Mlv6ikA6EY46I+a22XJhm9PRD4/K6Shjqj3i0EL7xbRmHHX 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: On Thu, 3 Aug 2023, Qi Zheng wrote: > On 2023/7/12 12:42, Hugh Dickins wrote: > > Bring collapse_and_free_pmd() back into collapse_pte_mapped_thp(). > > It does need mmap_read_lock(), but it does not need mmap_write_lock(), > > nor vma_start_write() nor i_mmap lock nor anon_vma lock. All racing > > paths are relying on pte_offset_map_lock() and pmd_lock(), so use those. ... > > @@ -1681,47 +1634,76 @@ int collapse_pte_mapped_thp(struct mm_struct *mm, > > unsigned long addr, > > > > if (pte_none(ptent)) > > continue; > > - page = vm_normal_page(vma, addr, ptent); > > - if (WARN_ON_ONCE(page && is_zone_device_page(page))) > > + /* > > + * We dropped ptl after the first scan, to do the > > mmu_notifier: > > + * page lock stops more PTEs of the hpage being faulted in, > > but > > + * does not stop write faults COWing anon copies from existing > > + * PTEs; and does not stop those being swapped out or > > migrated. > > + */ > > + if (!pte_present(ptent)) { > > + result = SCAN_PTE_NON_PRESENT; > > goto abort; > > + } > > + page = vm_normal_page(vma, addr, ptent); > > + if (hpage + i != page) > > + goto abort; > > + > > + /* > > + * Must clear entry, or a racing truncate may re-remove it. > > + * TLB flush can be left until pmdp_collapse_flush() does it. > > + * PTE dirty? Shmem page is already dirty; file is read-only. > > + */ > > + pte_clear(mm, addr, pte); > > This is not non-present PTE entry, so we should call ptep_clear() to let > page_table_check track the PTE clearing operation, right? Otherwise it > may lead to false positives? You are right: thanks a lot for catching that: fix patch follows. Hugh