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 5FEE3C48BC3 for ; Wed, 21 Feb 2024 03:46:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB6286B0074; Tue, 20 Feb 2024 22:46:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D65226B007B; Tue, 20 Feb 2024 22:46:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2CBE6B0080; Tue, 20 Feb 2024 22:46:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AEFE26B0074 for ; Tue, 20 Feb 2024 22:46:08 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7DB038087C for ; Wed, 21 Feb 2024 03:46:08 +0000 (UTC) X-FDA: 81814422816.07.1855EDC Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf30.hostedemail.com (Postfix) with ESMTP id 1571D80010 for ; Wed, 21 Feb 2024 03:46:05 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=oeNRFWc2; dmarc=none; spf=none (imf30.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708487166; 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=7jcKjsukADh5+keVVSLqyfpNdnse8y8447nXXm1V7B0=; b=ULm3tj9gPuQjcoj7xoESQJPdg2PgBx39h6tpelowSD/MiOELRw8aSovkUGjvKVQX7Qi77l 8J4pnvfwDY9sEmzkPAZT8itRm0QvGNNGbAV9qmVI/JoRAMzJ3DgdUUgYjPAyfR6I81QG0w XpbKhjzZ71XIPgmPUm+jNj+r2DWqNrw= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=oeNRFWc2; dmarc=none; spf=none (imf30.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708487166; a=rsa-sha256; cv=none; b=oit5kVDVA6AE3NHd1mBoV1ZzjcJMD6wCzRpq9B3EkXmfGWdQmPxryv24IUhoDgOT5uvtvI iPHgQine2CM0KujMwLJCYdqDKmtjnZbY+BMJTVuzO9ErFEuDupqKxsefJzlW6Jtwp1mDSi j+lUwWvmei/ekZXcCd11gNLtAyAUUGI= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=7jcKjsukADh5+keVVSLqyfpNdnse8y8447nXXm1V7B0=; b=oeNRFWc25tfV3lK+WrlEDzfeWI cjeGrM54UrUqSndPcwUvnNw7aa0FMp3k1x7EPVok05Y52pOMZtZ+0ZxqO5p54mm8MFz/qb11rqEUr TeLy4UgbXeax4nRTHFJNIkIKijENSDa4vsLLocw6jCm2DgkLeY4B1ui0RRoMrxB2o1z93N8LARlTf Vzux8RNvIREo9A924k4/G+e5luqWkbscASt85vVw1Io5mOzUgFoi7Q6tH+iZLm4IMgkj6vpojPZmy KbjLg5y884jpnbXFX+4uYQiN1kEIszohPs4aWKj9HHfYUNc/89uKTiiNIc86qAMTEIhspqpQJhXiZ jmd8LOJw==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rcdYa-0000000HJio-13FB; Wed, 21 Feb 2024 03:46:04 +0000 Date: Wed, 21 Feb 2024 03:46:04 +0000 From: Matthew Wilcox To: "Vishal Moola (Oracle)" Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, muchun.song@linux.dev Subject: Re: [PATCH 2/3] hugetlb: Use vmf_anon_prepare() instead of anon_vma_prepare() Message-ID: References: <20240220231424.126600-1-vishal.moola@gmail.com> <20240220231424.126600-3-vishal.moola@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240220231424.126600-3-vishal.moola@gmail.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1571D80010 X-Stat-Signature: 154estrckaj9pdahygu4j56zcj7hr5dg X-HE-Tag: 1708487165-727111 X-HE-Meta: U2FsdGVkX19WjzoyITCgo3+tLMWb17OjYWGzOqOI+z1/PUSN3fIEZFDkygOsrhp7p+BeDdwpjgB4QlVZKRxsmiKO1ug91Dn26+rpBWFCD8rnW5olXlHuvJKAYBCIapCK55EwzmWyiiPQEeb3Gbp0+L8KU2+UNYVNpiG8M/c3ZFM4XRavYzam6hntVSJzACYXCO4Ts8LhsET+VHAamZAtgJ7RilWPO53HYgiQRrjKeB9T0NR8RimKt7WFXSEOX0gVaEfdDlaJylc/blRknYknCWKee7bu9jnEHQBzYfNx3I1BRZ1VNo6DKpVH7DP+mNPP1x/xu9OzO3p3T8A1MfNp1diwPyxfm9GDKEO/Wifb1fBKC4X1/3JPkJcO60LENSpYbHPdOccqwElXkZiAM4hfdW3qxuH6HWG7TD40h0Hs9lvbYb9NHfUHvbPmMAe16eq0CcBwMwrROzp5BfRehrSwkQhmW5FQW169jYlMe4jYlfgbir72OAf5ZSkFjIculPSJgFmS1ErewekAueVHbXUK64zPFUoaNZ6oINX2QoLaOtw6dZFp1rxr83mfDY0vwp7/4pKl25GMmYv6HUQrzzZQbqSJiFqFnjDZREpElwbMwIYqMVOTdjMx0iH1JxczIo6tGKwjJfmFI6+rMrTG9WqRvoklf0D6OvqNSs7QfTPvJyNzQdygHMyzinAguFf5HaYokvb6CIi3ZejOw+U4ho4aNowK3N4hOx0jaGZOmiFBx3nzV7jrDDPzhvdJ49JwRVFMJSXpy06pH5M1T7Z9lMNXj8bEYXGlNslMHlTKJ/2jJ36wj08+Bx5jHr3zw8o2zk1zeF3kMZJ377sXIoZ7PNwQbECn+X6Zknz9KUh7fHwJ9wHx2AxdlflLorr91NmzL/3DQeTkf3r3e1jlXFUZnkrqjztdqMDlYfTw1eu2nTd55pNr9kHb0QDWBb6xL0ByJGRiB893adnc5Fc= 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 Tue, Feb 20, 2024 at 03:14:23PM -0800, Vishal Moola (Oracle) wrote: > +++ b/mm/hugetlb.c > @@ -5834,9 +5834,15 @@ static vm_fault_t hugetlb_wp(struct mm_struct *mm, struct vm_area_struct *vma, > struct folio *old_folio; > struct folio *new_folio; > int outside_reserve = 0; > - vm_fault_t ret = 0; > + vm_fault_t ret = 0, anon_ret = 0; Do we need a second variable here? Seems to me like we could unconditionally assign to ret: > - if (unlikely(anon_vma_prepare(vma))) { > - ret = VM_FAULT_OOM; > + anon_ret = vmf_anon_prepare(&vmf); > + if (unlikely(anon_ret)) { > + ret = anon_ret; > unsigned long haddr = address & huge_page_mask(h); > struct mmu_notifier_range range; > + struct vm_fault vmf = { > + .vma = vma, > + .address = haddr, > + .real_address = address, > + .flags = flags, > + }; We don't usually indent quite so far. One extra tab would be enough. Also, I thought we talked about creating the vmf in hugetlb_fault(), then passing it to hugetlb_wp() hugetlb_no_page() and handle_userfault()? Was there a reason to abandon that idea?