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 362F3C4332F for ; Mon, 13 Nov 2023 19:51:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B40E16B029B; Mon, 13 Nov 2023 14:51:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AF0336B029D; Mon, 13 Nov 2023 14:51:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 991516B029F; Mon, 13 Nov 2023 14:51:28 -0500 (EST) 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 86D436B029B for ; Mon, 13 Nov 2023 14:51:28 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5AE811209A3 for ; Mon, 13 Nov 2023 19:51:28 +0000 (UTC) X-FDA: 81453975456.27.ECC7BED Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by imf22.hostedemail.com (Postfix) with ESMTP id 7C40DC000D for ; Mon, 13 Nov 2023 19:51:26 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jpdJDVSH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699905086; 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=N2lstRegQrjo3/tFDGD0ypKnw40CbFMYKLzrPxFGG+0=; b=76gUPMGb1+sTXarg8d5w6+fI4bKDHBITrCP/cZUBA3G54cks4erqWZoKH1STyz9cBkFjye ufqGEopEYXAK+wb/FZhtDaKrhZpsTJ9ciCZV1+q6/OAS7Fl3m9M9w62e28et6pKIALgxp2 Nmu12K/M648yWPQwyi4okOpxm9+z8Ug= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jpdJDVSH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699905086; a=rsa-sha256; cv=none; b=zCpRgQNMQwGn9re7PF7SYX9vrdQGFszEbgaLjGrscPOn4om21+I2W58JVOs3E8WpxDVoas bZAxo4bG6eAByOZ29u+ZmSyCSzZX3b0PGc79OW9ILcqFXiCDAWuXHKJQgOLJ+7jx9Ma0FE MWhH/ZKGJbp8xL0qPwy4UJ1+HklkLqE= Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-5a86b6391e9so58075077b3.0 for ; Mon, 13 Nov 2023 11:51:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699905085; x=1700509885; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=N2lstRegQrjo3/tFDGD0ypKnw40CbFMYKLzrPxFGG+0=; b=jpdJDVSHMqM96kX3QCYrlPsE/efuRMIFCjXZj8MC7fGw9GVRuaGmJt7MtW2jrc87CR 6j27/wFMFNV91vvDffGwyI3GVGDgKBv2QMyKJVliaInEWT6KmLmBwdHi4PQW3i8lB0yZ pJjp+41yoFpv7spszE3E0GYTRpeSCj8UCBSwvH+VGFXBUWlUv0o6SqgXsJaQKduCPyjQ UUJRTSuPh6/d6Y3aBZaF+MB//Ityh7zViUUnHMvOaW4hrPnLvpvcVHfgfG7lxcsqvO6E RfnF0SRhoLVHqlq9OWnZXOhEW7/Tpq3DZzKEgj0/02EgbmemduhDKXvrwICiL88CfJgh 0hFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699905085; x=1700509885; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=N2lstRegQrjo3/tFDGD0ypKnw40CbFMYKLzrPxFGG+0=; b=TYKoEYhGiNyq36UbSsxLvF1g7j5W0GuWiRgMMwqeL0DF3OpfCURj8xt7clgGyMdpxM 2LFI+Fa0tkZ5FF3wX+3g1Wno/j3pE+B1aCS+x+6dHC8SAJPsdSVgMho2OVN9+rWPvSDw rzXNY3wcpxCCTD5vvX8011M5dYMrHAoGBcW552MKqWRebFBOdhnayjolwVci/1KmTAuR 1q/EyfGM/43h9IBRcekcfcqafanGCQdsXtjlmIv+IOsIicxiGatksoGmmcu7CV2+9vv4 +2Qz/031JH9wQtoq3j0hEeKi0OzFKClJi+ZDpO3XLVJS9hOajHlwnTnWrJ9UmAF/f6kp evrg== X-Gm-Message-State: AOJu0YzkyClHirMC9l681fSs6aOp1FEq5dPbJWghMWtw/hh09ozf+4Pn yY59NcKtD5Lwjx3D7VanIyo= X-Google-Smtp-Source: AGHT+IHu9QXLrm505wbLh4b5vFFepaQ9/4r1ubLWoF6jdnj9a/8AROq8qcHKy5Z8Og7zA3rTAs+wYw== X-Received: by 2002:a0d:d74d:0:b0:5a7:d86c:988 with SMTP id z74-20020a0dd74d000000b005a7d86c0988mr7930048ywd.28.1699905085379; Mon, 13 Nov 2023 11:51:25 -0800 (PST) Received: from fedora ([2600:1700:2f7d:1800::46]) by smtp.gmail.com with ESMTPSA id h73-20020a816c4c000000b00582fae92aa7sm1957340ywc.93.2023.11.13.11.51.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Nov 2023 11:51:24 -0800 (PST) Date: Mon, 13 Nov 2023 11:51:22 -0800 From: Vishal Moola To: Kefeng Wang Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Matthew Wilcox , David Hildenbrand , Sidhartha Kumar Subject: Re: [PATCH v2 4/6] mm: memory: use a folio in do_cow_page() Message-ID: References: <20231113152222.3495908-1-wangkefeng.wang@huawei.com> <20231113152222.3495908-5-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231113152222.3495908-5-wangkefeng.wang@huawei.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7C40DC000D X-Stat-Signature: 7ibgmkrzk1ta7d474o8pjrqydnoo1813 X-HE-Tag: 1699905086-583212 X-HE-Meta: U2FsdGVkX18Nq9S1QoqKdJIEQ91teOInFV6QrO0NhsLwzBa41Bs51zB7Opd/jq2m6wLmRjfQWxBMrSxD1DBxRVvacA0f8TRp5lUgiV6IzqQkym9FoDV2fSdRCDYKPYdZ7s6EnhI57dzgrS/EEv3yrNkMjUkxoUVcE6FNGD/VT6JOWf8HnyV+fdQsrQeav5SwRP9eRIzqgi9CFAjqXApDHZ7f0Hmcd7ORnWFi8r/8aqhytjW68EYM7J41Rhhxpgn7Crg+VXslp4p5+qFAYzZSvaBqIVZA8wf8/afhAGnZRgFyxnuQyGfitJs0ID7leBYG3+6XK7UlfLRjYLwmrXzgYdPl/AMAbNxL0xScmEAQws6Lzrvxkis94oxriz1jdgiliNgq3N4ztpbRfZy/LhrZbCoP188eivLP5dOQZoHEll/t+72zySMKbmG9V0xBQAThxoHZZ1Q0MHv8dTjQqFoScImrBSpF/7cVQW34uvDXVnIT6Ff2nVXm4VO1XEzauhOoKJCLAH0NKXWVplt4+FyPLn+E2H0eJltcsgPFVdHGw4Od1w3BHPJpIAV8Gj9VQ7H+rnXEptnGH/ZHQjw1eMxXIfPHrGdCvek6Ncaf6zIO1CNG1dhdBchCC0SlQ+zOPEzXQKi+KJzyd6AxCccPRMmFrfVxmYY1/Y7pYRBXdIzBVCHSCLKFhzykdFOLIISWErNSduVJLX8bouOcbNommRqXABCXCTcGRYfKhYAiWgQfIC4PJS6+sEGtvFtixJzwsVgqV+bxp3JPbDYiVd3j4bJXzgWWbsc5Mx+e1USMF+UFCbXeUDzzIWsCz8LF2F82UpRSq05RMh6qiz5U47qqNkC5MMsLZiydL1e4/U3pYuJQOzOZ1WhMfA30QahyhA50E6F9/svEUDHwNHcHVmb86D8mtxzs0lWQE0RoSqORQDAjxUbKJ1+gWxW4uQfXIgjhCf638dII3abVYuh35+uddi1 /LB/VMW7 yzCWMvc0NaI0FMAie6EO2658Pj7ziV8ARDnWTUw9J0qI9819RAPXzck2/S8PkdSVGS7aTPBSwhRSD0P3ugVyPp2QJZSRyUL0s1kbaQg4pj9eseGC6RXx8+ESwcRNkLhWkm7ogvor0ePr+EsoptZf6RA09tTngPHzGOSnFt0uXQIrppjKtlu18WTy1n3dRAz06rXuLvfQzhVB6+8TkoWtmjTcp8eVJC7CKnTLi6qdquWJAIj9aay+zw4xo3VTDb+PRcdLlzFLVS23yzDomLNMpS3BxEfDpSFv74wQXQ5Ix9mMAwb9/ZINjNKubUYcVUuy85CJ+E90XQT/Xz2fGHmZNXsLm/AZDE70o1Y8mUZlkHFqpx0FMF7dVRjngvVALtTMprrx+404A6MfMskFfB5mDKObAb4p9d9Tdhu8RXF3B55XI7jK6+IBBFinA2Hzyo1RGDOLeKaGeaG/x1DG1StbETH1qIpyQ/sD/i3efIoj0N3nvCsf0HE20efv1uzlNbp+TrCgrypaahiSJ80YbOv8hzZ/3vouYNZv8LpuU 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: List-Subscribe: List-Unsubscribe: On Mon, Nov 13, 2023 at 11:22:20PM +0800, Kefeng Wang wrote: > Use folio_prealloc() helper and convert to use a folio in > do_cow_page(), which save five compound_head() calls. s/do_cow_page()/do_cow_fault()/ Aside from that, Reviewed-by: Vishal Moola (Oracle) > Signed-off-by: Kefeng Wang > --- > mm/memory.c | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index d85df1c59f52..f350ab2a324f 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4653,6 +4653,7 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) > static vm_fault_t do_cow_fault(struct vm_fault *vmf) > { > struct vm_area_struct *vma = vmf->vma; > + struct folio *folio; > vm_fault_t ret; > > ret = vmf_can_call_fault(vmf); > @@ -4661,16 +4662,11 @@ static vm_fault_t do_cow_fault(struct vm_fault *vmf) > if (ret) > return ret; > > - vmf->cow_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vmf->address); > - if (!vmf->cow_page) > + folio = folio_prealloc(vma->vm_mm, vma, vmf->address, false); > + if (!folio) > return VM_FAULT_OOM; > > - if (mem_cgroup_charge(page_folio(vmf->cow_page), vma->vm_mm, > - GFP_KERNEL)) { > - put_page(vmf->cow_page); > - return VM_FAULT_OOM; > - } > - folio_throttle_swaprate(page_folio(vmf->cow_page), GFP_KERNEL); > + vmf->cow_page = &folio->page; > > ret = __do_fault(vmf); > if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))) > @@ -4679,7 +4675,7 @@ static vm_fault_t do_cow_fault(struct vm_fault *vmf) > return ret; > > copy_user_highpage(vmf->cow_page, vmf->page, vmf->address, vma); > - __SetPageUptodate(vmf->cow_page); > + __folio_mark_uptodate(folio); > > ret |= finish_fault(vmf); > unlock_page(vmf->page); > @@ -4688,7 +4684,7 @@ static vm_fault_t do_cow_fault(struct vm_fault *vmf) > goto uncharge_out; > return ret; > uncharge_out: > - put_page(vmf->cow_page); > + folio_put(folio); > return ret; > } > > -- > 2.27.0