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 25783C4167B for ; Thu, 15 Dec 2022 01:01:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A4E68E0005; Wed, 14 Dec 2022 20:01:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 72BCC8E0002; Wed, 14 Dec 2022 20:01:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5A4FC8E0005; Wed, 14 Dec 2022 20:01:30 -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 4CB3B8E0002 for ; Wed, 14 Dec 2022 20:01:30 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 23B9F1606BB for ; Thu, 15 Dec 2022 01:01:30 +0000 (UTC) X-FDA: 80242737540.13.78836B8 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by imf27.hostedemail.com (Postfix) with ESMTP id DD7084001E for ; Thu, 15 Dec 2022 01:01:26 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Hj80HcFk; spf=pass (imf27.hostedemail.com: domain of hughd@google.com designates 209.85.167.169 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=1671066086; 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=+AXpgMmuL3NSvfn8iBTUkD9z8GYz9GV/xJMhFU7McSc=; b=r9oGE7Ow1zQ/z1R5Zpqq8YzoluD347LZy31xHrK0M/5xWctlkQuNLXPd0TNDL3wi36QgXe cQhPAoM3b/8YN89rttl4ibrCx7p/JexM8y0FYRAckFBO/9HFsOGRrIMYaXspvoDiL0bheQ y+4+4inr1NE95po5/nIOyaVOSomR24w= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Hj80HcFk; spf=pass (imf27.hostedemail.com: domain of hughd@google.com designates 209.85.167.169 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671066086; a=rsa-sha256; cv=none; b=wYCFJjF36A2ADyXtnLxWsl/WJD4VOG8IdA1dvSwdvcxAFdVZ5tBjR8Dbnx1tcdNXTFVUHz CB81Ry8nuIa9wifPsCzh8P4bQwbMQ2eaUWuGpCbOxRYk4GyBVJuLSqAAQ9ayk+dpNx1FMo jBoyCUCBLOAS48Lk5rq8VaKQTJBJhPA= Received: by mail-oi1-f169.google.com with SMTP id r11so4077636oie.13 for ; Wed, 14 Dec 2022 17:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=+AXpgMmuL3NSvfn8iBTUkD9z8GYz9GV/xJMhFU7McSc=; b=Hj80HcFk1+wGgWdM0qYtfoEP118g7pnbDZ1iaONKLRyq7ALD/XEV7vVSxyeyG5C332 DuC73/7jKGMCEB1dULH+KLHOKSeumpkwpUW+GG68qvMmQss4v6sir0gMkHngJ4x1PdNs 8vdv6ESeeyQvXXjiXz48kEds4m3Lm1jtvmFWcha7pPVkxpn+OyzTG9/53OGVegS45kva 5BafxskuHY7iVDaqjM/QPv26NHNdJ8WRDt4flC21tJbgAsNeqEiTNTWmog0Muzakrg+B VTXrP+16m5YsUQA7uxS09XE7vABC6lHuib020amhH4dBXy3QWuaWt/Jwty6r6MYSoUQT 6e1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=+AXpgMmuL3NSvfn8iBTUkD9z8GYz9GV/xJMhFU7McSc=; b=hEU5GADFvAfphBwGV21HNWWI7gGQaxtw7SZUL01ufuJyTDD4ejkUPc96GHirVIRyIu R4tMpxZd7gIPHtxrLq8VY9LibmUKx1MS0TKGjcgZ9zsWuWLzt7zOJo9k548UcRvevc2d 5jDGIoFyGykED3GIWZWnSJ89O2ShOBWzVi+5PS4cMvDfVuyGwOwd6qI6osef63JdhMsJ ADIjRw7VEAgU5Qz3ZY7W0n1tlMBYLNIkb/RsNY6p0I8ECa+IgVhd7bvr9rJOw0r+BwHN hOQk7abGMcCqVixWTzQz1/RuBiYvXHnXvf57nKVV5pKHLtBTTM8uVsOk73OQZGFrQph5 HQcQ== X-Gm-Message-State: ANoB5pkx8xEXSG6QWvGtBLTXpwSUSeCMGUsKYBOdjCxJ3tCa0Exr+tzR cFCpOwkOGPxmhL3EheykcWZHvg== X-Google-Smtp-Source: AA0mqf7KxsTUFtO5GJXQhQPOFp5+C1dzmEUY6YPXNbXSdYOeKDPdD1PHkb69Ov9jtK9L5BUY7Y7G2Q== X-Received: by 2002:a05:6808:2387:b0:35e:9bb3:b8fa with SMTP id bp7-20020a056808238700b0035e9bb3b8famr7121698oib.51.1671066085845; Wed, 14 Dec 2022 17:01:25 -0800 (PST) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id i8-20020a05620a404800b006feea093006sm11137891qko.124.2022.12.14.17.01.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Dec 2022 17:01:24 -0800 (PST) Date: Wed, 14 Dec 2022 17:01:13 -0800 (PST) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Michael Roth cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com, wanpengli@tencent.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, bp@alien8.de, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, marcorr@google.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, dgilbert@redhat.com, jarkko@kernel.org, ashish.kalra@amd.com, harald@profian.com, Hugh Dickins Subject: Re: [PATCH RFC v7 21/64] x86/fault: fix handle_split_page_fault() to work with memfd backed pages In-Reply-To: <20221214194056.161492-22-michael.roth@amd.com> Message-ID: <7f2228c4-1586-2934-7b92-1a9d23b6046@google.com> References: <20221214194056.161492-1-michael.roth@amd.com> <20221214194056.161492-22-michael.roth@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: DD7084001E X-Stat-Signature: 9za9ehwas1htxigwznwioy54gj845cj1 X-Rspam-User: X-HE-Tag: 1671066086-439658 X-HE-Meta: U2FsdGVkX19pJT3sl57BNcgoBZpAdItmoLJa/xiuhjKApSOatIyMurpFiaLiNXALJQrAikSdKxPnxue/c58w7u4Bzu4gC75CGRYQYJbDxPz2RSSd5KWSxqoAhLzOtfbs2V/Tv6AX/K37fyWjO0pyRgPdVRvfoDtwRbn91NYXFZhAogCGfiQnX4odH4ObGQUp1/BgcQLlUPWNpcIdYpj0A6hIOkZ6kMN/O/yoqYA82mdGfC5v2CF6Vf2nQ9dB82j119vcm+JtGez3AZ4OegYKTyZ2tnHLrfb9llJ0bGaVigpGluLr0WwnNzytD99Bt1MoEFQCP7eNzdp1qhbBgylme4wbxakMTENCQL0Ub2LTGGOYaPcjJyLEFiZWeDwM8tf/MhWWiq3g8sL2577r1b+tohIm2F0WOsuGepEM91iDFEWgSd8jVuwp4zzSmT97jHfzpn9SknVfjsQxx0I3wxFt107EgChV7IrnQDsu2hdRyot0OTSoYyOCE36Ud9pdKdjZcEa8xm++c0N6GvdJnDROjIBgICsEqSS8Q3pBIIavGdrsz39I2Krn5bDUQ8+r/bLMu6X5ouOWHoIjs7faGQ2PqBW4967zv5OQfcN7STYHlhQja4nDoA53AjRupVpXnaCRpJrTwHbmdHh4fgF6SP7KULQ1QxIULNUgPFD/vhWFpjfvHm19AK2AaB4zbAo0iAcLwUrLzAme+82Hugjc0kxfleSzqNKBTqH0niHpgMN9+tacvufAR7UF3lSwnIbJDrlfJ7oo4A3JO18tZWA/QHm8RoqasDjouABWKmFETZPBfvQifPGuLVPhMxpC0rOPCJkOwO8/11TenrEP6TwD4MQ0LXUG2R0oJ+IsX+qmOAKK53hZI+yWf9TBAGR+xGIAMsqAD9Z6uG4ISLjebNVZFIVqCDilIOgPFK997s1MmNk3NqCifv3QjkXKfapmN6wAjDNx//Hrsf6BZx8Zf9h924a FaFGUMmR RHrzzfgntkQ4ByBdRMQvIaS6HdX6MkHYtE7R8gWARu+s0/f4q6Kfg96Iln6iCEWiXPftjZ0aTfCCJ45lvKBPlXYyiQdfKvuH88aCeg5lI4HYLh0zBpmxXWgxq7SmW4n2ctsFzIpwnykAfE24= 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 Wed, 14 Dec 2022, Michael Roth wrote: > From: Hugh Dickins > > When the address is backed by a memfd, the code to split the page does > nothing more than remove the PMD from the page tables. So immediately > install a PTE to ensure that any other pages in that 2MB region are > brought back as in 4K pages. > > Signed-off-by: Hugh Dickins > Cc: Hugh Dickins > Signed-off-by: Ashish Kalra > Signed-off-by: Michael Roth Hah, it's good to see this again, but it was "Suggested-by" me, not "Signed-off-by" me. And was a neat pragmatic one-liner workaround for the immediate problem we had, but came with caveats. The problem is that we have one wind blowing in the split direction, and another wind (khugepaged) blowing in the collapse direction, and who wins for how long depends on factors I've not fully got to grips with (and is liable to differ between kernel releases). Good and bad timing to see it. I was just yesterday reviewing a patch to the collapsing wind, which reminded me of an improvement yet to be made there, thinking I'd like to try it sometime; but recallng that someone somewhere relies on the splitting wind, and doesn't want the collapsing wind to blow any harder - now you remind me who! Bad timing in that I don't have any quick answer on the right thing to do instead, and can't give it the thought it needs at the moment - perhaps others can chime in more usefully. Hugh p.s. I don't know where "handle_split_page_fault" comes in, but "x86/fault" in the subject looks wrong, since this appears to be in generic code; and "memfd" seems inappropriate too, but perhaps you have a situation where only memfds can reach handle_split_page_fault(). > --- > mm/memory.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/mm/memory.c b/mm/memory.c > index e68da7e403c6..33c9020ba1f8 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4999,6 +4999,11 @@ static vm_fault_t handle_pte_fault(struct vm_fault *vmf) > static int handle_split_page_fault(struct vm_fault *vmf) > { > __split_huge_pmd(vmf->vma, vmf->pmd, vmf->address, false, NULL); > + /* > + * Install a PTE immediately to ensure that any other pages in > + * this 2MB region are brought back in as 4K pages. > + */ > + __pte_alloc(vmf->vma->vm_mm, vmf->pmd); > return 0; > } > > -- > 2.25.1