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 E5177EB64D9 for ; Fri, 7 Jul 2023 09:42:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F7C28D0002; Fri, 7 Jul 2023 05:42:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A6668D0001; Fri, 7 Jul 2023 05:42:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 095F38D0002; Fri, 7 Jul 2023 05:42:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id EE5698D0001 for ; Fri, 7 Jul 2023 05:42:33 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id AF74780D27 for ; Fri, 7 Jul 2023 09:42:33 +0000 (UTC) X-FDA: 80984325786.19.C9F7124 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf29.hostedemail.com (Postfix) with ESMTP id 7FEDC120019 for ; Fri, 7 Jul 2023 09:42:31 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688722951; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AZ5bU5GiW3kg/ABD0nqpxZ08us0hSDh1we1AXT0vMxM=; b=MfZTBu6XeYnydEOgvr8VgHKvO0jgcP2pWHVD+sjntcwBPrOHr4kQrVyR3CyKEn7ZUO/Jb3 9kCR8HwKLPjfXja+ugPdJvUobMiTGhIZ9HhvO0LhdCg4jw6efp2crIjSnlAncXTeDakllr IilmlPh7BOYp5SnTS2/NUF8ddfpf9rw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688722951; a=rsa-sha256; cv=none; b=NDc/tCFrWtVNLM0AeSkG2N1XtzSr4knT3oaPZCpSbkO0CNc/eNjbQ3uskEXo+0SKhhYaaC 9g1hBbnwEJATkmNH77/1kRT/vWOx6ne9F140DSScC+Bsj+XxJI9jYhKYgR3AUHy6voOrNZ rWLbMfr1jMuC0g6wyK6WUBv13PmG0hA= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 330EFD75; Fri, 7 Jul 2023 02:43:12 -0700 (PDT) Received: from [10.57.77.63] (unknown [10.57.77.63]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 04D283F73F; Fri, 7 Jul 2023 02:42:27 -0700 (PDT) Message-ID: <6379dd13-551e-3c73-422a-56ce40b27deb@arm.com> Date: Fri, 7 Jul 2023 10:42:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v2 2/5] mm: Allow deferred splitting of arbitrary large anon folios To: "Huang, Ying" Cc: Andrew Morton , Matthew Wilcox , "Kirill A. Shutemov" , Yin Fengwei , David Hildenbrand , Yu Zhao , Catalin Marinas , Will Deacon , Anshuman Khandual , Yang Shi , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20230703135330.1865927-1-ryan.roberts@arm.com> <20230703135330.1865927-3-ryan.roberts@arm.com> <877crcgmj1.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Ryan Roberts In-Reply-To: <877crcgmj1.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 7FEDC120019 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: cwdoi6z9kbo8cyfb8zzbr9n3hy1gy66n X-HE-Tag: 1688722951-348272 X-HE-Meta: U2FsdGVkX1+tesAfkxde28XCqvXLZWZQaldnCdiR4gNFbt4A0jyCnfADr861IYP/+kdznHYGaaa3PuDFuWlvf1ZfiO6c1gHyHMDe9pW9hy1NGKuunRvByOSxYmZChkvp1uj9gINuoGQ8uLlHE2wRf16vnVtMRYF1wPiAk8Cv9JM0an2PCB1siRSKzO4mODFT68d3YS8dRZ0XNi/LrvbiEFIHpgnNiWE19+aAIKiSf06ukcfOb+IqqlVkEh18lQR+FN5QpbACfdhHH2WoqYkrxKFhIKCA1YDEIaUboc5lCd43mJDT7xXrzfFko6kbr7fnA1fZYlsckV3JcowS9pauM3Sx/6ozOxzG2dhMrL/BOwrq2lLw0jr4P0w+gM+R4rzuVCr/6vxSwT5wwCnEOp6/XU5u4F51YB8tpvSdIBGLXwe5NKRddW44e7qJBi1tmVQODLnK5G6e8XRrDDJItsXtU6z2Q19wsJzGmJP2zYQk2CtnBnlgbz3KW9pHRF7kG9tVKUKV6ewKLDSrniCelvPKT1dnNNdo/ez/BPu+hf9f/Qyn0oiNgJd5MSUc58CHMAas0H/BLE99561hbyUMzH779Bs+nUc3S6Z86eyMavMNqnazByXybY09a4NFtgY54lGHZdydOrOgLckrwNuGXSURQGLsn77g1oAQYr41earWN592Ar4ANCvtvcWJeRJ0/YvJpAqor4IabkLr5+6uYew5YxN1MdgzMn4Jf89/URMpQGWdqO4vhDAbSDSGPEAJ3Q5hHM1AYnfOAl8kLJUsXmUVf7Cf1BHZh8PnKA/qNaVK+KMwkLry+UO2qi0OUYSoX9KA/Xdfs6uEAyBLOcz8B8+gAxAZ2KBqZzTC2ALIqlu5Hu0Q2JsbIZSSAftGoLO4xMUPzMf16Ru9TLWGe5wfmxQtswteCqjxTUU6OCl+f/A+DVsGUyBb6RosbLFcg2WMchK9pThIPO52tt9hkSG1s3k 8OSlJBnZ l+m4RfIWNYYh4v1uzSx6q8Yf+ObsR9H4PKk5VaOAxJenDK1eHCAJYc0SHXe8mbCNJiFvWOHeHx9d0MeXkL3Iql+Jj9G9ia1pYeOG3urGaU17vb7PSXpQjeegjhWxD1cllQ+12ZSVNi/UM75fCCdZZxL2vEbBOORVU7l+mmzN7PE+0ERt4AODa2A1kLGAmqhSpP0rPtGl/gJNBFIk5oLLp6go5TC8SDY/Nci9tddK45SHRG/wFmTXEWTcX8YMSBfX3EoY1HwphvcovGencO2ertDy9eIVT1sAvsfuXbH7ukw4puNffjIHWcID/f33LbdCsZlGnNU4RnLY0pjE= 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: Somehow I managed to reply only to the linux-arm-kernel list on first attempt so resending: On 07/07/2023 09:21, Huang, Ying wrote: > Ryan Roberts writes: > >> With the introduction of large folios for anonymous memory, we would >> like to be able to split them when they have unmapped subpages, in order >> to free those unused pages under memory pressure. So remove the >> artificial requirement that the large folio needed to be at least >> PMD-sized. >> >> Signed-off-by: Ryan Roberts >> Reviewed-by: Yu Zhao >> Reviewed-by: Yin Fengwei >> --- >> mm/rmap.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mm/rmap.c b/mm/rmap.c >> index 82ef5ba363d1..bbcb2308a1c5 100644 >> --- a/mm/rmap.c >> +++ b/mm/rmap.c >> @@ -1474,7 +1474,7 @@ void page_remove_rmap(struct page *page, struct vm_area_struct *vma, >> * page of the folio is unmapped and at least one page >> * is still mapped. >> */ >> - if (folio_test_pmd_mappable(folio) && folio_test_anon(folio)) >> + if (folio_test_large(folio) && folio_test_anon(folio)) >> if (!compound || nr < nr_pmdmapped) >> deferred_split_folio(folio); >> } > > One possible issue is that even for large folios mapped only in one > process, in zap_pte_range(), we will always call deferred_split_folio() > unnecessarily before freeing a large folio. Hi Huang, thanks for reviewing! I have a patch that solves this problem by determining a range of ptes covered by a single folio and doing a "batch zap". This prevents the need to add the folio to the deferred split queue, only to remove it again shortly afterwards. This reduces lock contention and I can measure a performance improvement for the kernel compilation benchmark. See [1]. However, I decided to remove it from this patch set on Yu Zhao's advice. We are aiming for the minimal patch set to start with and wanted to focus people on that. I intend to submit it separately later on. [1] https://lore.kernel.org/linux-mm/20230626171430.3167004-8-ryan.roberts@arm.com/ Thanks, Ryan > > Best Regards, > Huang, Ying > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel