Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1427339pxb; Wed, 2 Feb 2022 04:56:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJxS3N0WzxAI5RHgrLmHHtu05qXF1IyvZdk+j3ctEPtSPvo3KYrWbyuVa2X02Mxl+fEgRGEy X-Received: by 2002:a62:6385:: with SMTP id x127mr28935195pfb.10.1643806569211; Wed, 02 Feb 2022 04:56:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643806569; cv=none; d=google.com; s=arc-20160816; b=PPQ9xQ7sa2uBqfyQrjWukw326fThzx6iTTGcwcPiRgQBLQ1xnWPeHztyALppOIrX89 IH+zMsmRfasnkR+wYVDCcY5NILaQLqolt5BGhQursXDLd4CzpQCfo4IH7eQFKGegEVpu /b2xsI1jLQiExkwstoKAViOaB32pO2s378PZOpT8nLAtUUCrvAU6NwEAYMVgMMraG5fg 9aPVIazjVfa9m8e7VHhpDyHoG2gwRfMYH/YEXedBO3h4j7kIih/e0Gz2L8ITD69WAawB TDDJXI80+ocx4GIptlsSV+dUG8rPd4GStcZqI4lSDT9RmI1gleOzvWrMzv35q+s6m60Q riYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=S9lNa69aK/8vUL9n02wvSyCGjVDmqQna9TX/zBr/ys0=; b=rSFCOBUfqdVhlA4FI5yvz5rDWMorgwEt3CK2iIa6jIxVJyPS6Q5hJG1S5QRx1nAh/k ldVu/YPbjOWp23nonlWbaloiXQLeqbo+DZBJqo+lzGgoYSJN3QNJuIUpbcJdyUmJGVU4 yDKq9ErQTE40EPL0qLGAQZQ+2JKS7doJi+22dEHa4p5doIUUxseVcNJaUzwXkUuQhqRQ 8mkqQ4CHoUgYMOtejUbEUxGy4zQlqiuZ4kkSw2PiZN9Jbl4FtLP4JdEFpfznf9c4Z5ds 718FiYoJcXceLlCZAa3yOMgrGE6WPg1hQpyss8eYkgGkks5icraXSuiZnLn6qC72HzE3 PiIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=QrhqksDy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u11si800580plm.292.2022.02.02.04.55.57; Wed, 02 Feb 2022 04:56:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=QrhqksDy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231818AbiBAVba (ORCPT + 99 others); Tue, 1 Feb 2022 16:31:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229785AbiBAVb2 (ORCPT ); Tue, 1 Feb 2022 16:31:28 -0500 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91C9CC061714 for ; Tue, 1 Feb 2022 13:31:28 -0800 (PST) Received: by mail-ed1-x534.google.com with SMTP id u24so36925429eds.11 for ; Tue, 01 Feb 2022 13:31:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S9lNa69aK/8vUL9n02wvSyCGjVDmqQna9TX/zBr/ys0=; b=QrhqksDyHOFRKPb0vfkDGlm+V5uj4BnwW/A7kb1iVUX/M37YdFaGQ2X6pK9W/v1o+a Q/jcsrfL9MvI18gSRnUraSNq2NoKdMdcP2sW/yvHe1FupDH5l3p2908nvKja3iO16Z2B B8d4bimRbcq9Y+9uJboDNiF2vFKJwHTE3v5Kc6WIP3sKUMSfk4JITDWvrmsY6QCrzquo pjc4lBxuTFDZKwdH8TdpK9y362hy6H05dOh6y3kYPigmtbXnRUBkaVxOk686AxMtiTL1 AQiV7INkC7e6VFb2EvBU/M/A7gVLA3IqvGactZTe7jUUBc9tNXWRiUzJGJb9lAdlG1Hd ABfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S9lNa69aK/8vUL9n02wvSyCGjVDmqQna9TX/zBr/ys0=; b=Txs8zIKI3vzgTPqJXWpnpjRJAEaT2PUant1+41StOgDnmK1JtvImOpwetJ99qpxGgA FV16wDfqtiJEDalMPQNLcCGO/27ZYmiAwHE9d3SiDqld2bS9nxDGutifZ72muMYlD7x9 qZEZAKFL5ijFwbEG4L2djTKU9UxcFQ9pA1PDMFr3+HR8gVR/pn5SZ7s1SRVww+D8gMKa VP4VFZ6ApgYSwlOQc0Nz93NUbaEUwaEaXTT7pMp/iC4JczwcDpxVkrLVdfpxSuoqgxkM fMreQv7aid63C7PAX6hB4SalaBNs0m2FpaGXOxvMxyO7+qLOSREegNzZwlNLNhrzW3xy nwvQ== X-Gm-Message-State: AOAM530MW7LGRQ74V5jqHEB/jsoYNDp98VRSPtKbgizzozGq2lv2nDSk xRHoXaj7YcsP06/EdZ8n2g3FTT/oeZJcmvFVRgE= X-Received: by 2002:a50:fd91:: with SMTP id o17mr27530607edt.127.1643751086964; Tue, 01 Feb 2022 13:31:26 -0800 (PST) MIME-Version: 1.0 References: <20220131162940.210846-1-david@redhat.com> <20220131162940.210846-7-david@redhat.com> In-Reply-To: <20220131162940.210846-7-david@redhat.com> From: Yang Shi Date: Tue, 1 Feb 2022 13:31:14 -0800 Message-ID: Subject: Re: [PATCH v3 6/9] mm/khugepaged: remove reuse_swap_page() usage To: David Hildenbrand Cc: Linux Kernel Mailing List , Andrew Morton , Hugh Dickins , Linus Torvalds , David Rientjes , Shakeel Butt , John Hubbard , Jason Gunthorpe , Mike Kravetz , Mike Rapoport , "Kirill A . Shutemov" , Matthew Wilcox , Vlastimil Babka , Jann Horn , Michal Hocko , Nadav Amit , Rik van Riel , Roman Gushchin , Andrea Arcangeli , Peter Xu , Donald Dutile , Christoph Hellwig , Oleg Nesterov , Jan Kara , Liang Zhang , Linux MM Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 31, 2022 at 8:33 AM David Hildenbrand wrote: > > reuse_swap_page() currently indicates if we can write to an anon page > without COW. A COW is required if the page is shared by multiple > processes (either already mapped or via swap entries) or if there is > concurrent writeback that cannot tolerate concurrent page modifications. > > However, in the context of khugepaged we're not actually going to write > to a read-only mapped page, we'll copy the page content to our newly > allocated THP and map that THP writable. All we have to make sure > is that the read-only mapped page we're about to copy won't get reused > by another process sharing the page, otherwise, page content would > get modified. But that is already guaranteed via multiple mechanisms > (e.g., holding a reference, holding the page lock, removing the rmap after > copying the page). > > The swapcache handling was introduced in commit 10359213d05a ("mm: > incorporate read-only pages into transparent huge pages") and it sounds > like it merely wanted to mimic what do_swap_page() would do when trying > to map a page obtained via the swapcache writable. > > As that logic is unnecessary, let's just remove it, removing the last > user of reuse_swap_page(). Thanks for cleaning this up. I didn't spot anything wrong. You could add Reviewed-by: Yang Shi > > Signed-off-by: David Hildenbrand > --- > include/trace/events/huge_memory.h | 1 - > mm/khugepaged.c | 11 ----------- > 2 files changed, 12 deletions(-) > > diff --git a/include/trace/events/huge_memory.h b/include/trace/events/huge_memory.h > index 4fdb14a81108..d651f3437367 100644 > --- a/include/trace/events/huge_memory.h > +++ b/include/trace/events/huge_memory.h > @@ -29,7 +29,6 @@ > EM( SCAN_VMA_NULL, "vma_null") \ > EM( SCAN_VMA_CHECK, "vma_check_failed") \ > EM( SCAN_ADDRESS_RANGE, "not_suitable_address_range") \ > - EM( SCAN_SWAP_CACHE_PAGE, "page_swap_cache") \ > EM( SCAN_DEL_PAGE_LRU, "could_not_delete_page_from_lru")\ > EM( SCAN_ALLOC_HUGE_PAGE_FAIL, "alloc_huge_page_failed") \ > EM( SCAN_CGROUP_CHARGE_FAIL, "ccgroup_charge_failed") \ > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index 35f14d0a00a6..9da9325ab4d4 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -45,7 +45,6 @@ enum scan_result { > SCAN_VMA_NULL, > SCAN_VMA_CHECK, > SCAN_ADDRESS_RANGE, > - SCAN_SWAP_CACHE_PAGE, > SCAN_DEL_PAGE_LRU, > SCAN_ALLOC_HUGE_PAGE_FAIL, > SCAN_CGROUP_CHARGE_FAIL, > @@ -682,16 +681,6 @@ static int __collapse_huge_page_isolate(struct vm_area_struct *vma, > result = SCAN_PAGE_COUNT; > goto out; > } > - if (!pte_write(pteval) && PageSwapCache(page) && > - !reuse_swap_page(page)) { > - /* > - * Page is in the swap cache and cannot be re-used. > - * It cannot be collapsed into a THP. > - */ > - unlock_page(page); > - result = SCAN_SWAP_CACHE_PAGE; > - goto out; > - } > > /* > * Isolate the page to avoid collapsing an hugepage > -- > 2.34.1 >