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 97FADC87FD2 for ; Thu, 29 Aug 2024 20:01:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 271F86B0096; Thu, 29 Aug 2024 16:01:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 221666B0098; Thu, 29 Aug 2024 16:01:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C1EA6B0099; Thu, 29 Aug 2024 16:01:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id E34A96B0096 for ; Thu, 29 Aug 2024 16:01:23 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A2E874089B for ; Thu, 29 Aug 2024 20:01:23 +0000 (UTC) X-FDA: 82506352446.17.09130BB Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 806C5140007 for ; Thu, 29 Aug 2024 20:01:20 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dNJ5CPdc; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724961592; 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=a6YgJDRtCG6NqNHvxBGwLph56rsiY6btQEOiIVWjksU=; b=zq966NKf9Zl2CWgEfewLgJfFs7njrP274nfFPvP0IjtdLyVfouHFVSV4bO+xIWakdiuCQP vZOVTYNq+4y6dSYYkTd5JfXApBhe8ExIeRODiCnhUAyWYu+6Wl80m78r9ttB4gNdrbRMgl RTxZMULgq0pKCJfM4LDhAQZ5pcH/mdE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724961592; a=rsa-sha256; cv=none; b=omlFea/x/r59dtvtEXsNfz01z5FbmEBpjUNaaNnl3S3DuaX9BVdVM8+L1aRI7d+vPscb/7 CDRUkhAvSp+aDHORK2tQIDueDDzU9f+vs5SsljMcK0XFH5TTFywY3EHdreO/IQfaNUkjcI 79jnRiijZ1/jSryv/YColC/+Nks9WTk= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dNJ5CPdc; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724961679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=a6YgJDRtCG6NqNHvxBGwLph56rsiY6btQEOiIVWjksU=; b=dNJ5CPdc+6sUvDd4NHF+mL7Q6DMtjQ+UODMboqtOyvTxZqF4UakKnCtHcJ+LdXwUr9EgYT E2+OCi2C2NNZHD/odLYP2RwonbJYHbUd3Kaa76ZMb2SmyUiP7Rz1O24CJp7ZHUe/EY3mVe n5qNXFr3kTJdCn2QIZ/9C3r/fYgzeYU= Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-277-i0kZaZeuPY6yRBtdSlNSUw-1; Thu, 29 Aug 2024 16:01:18 -0400 X-MC-Unique: i0kZaZeuPY6yRBtdSlNSUw-1 Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-5df99c02ee1so1046065eaf.2 for ; Thu, 29 Aug 2024 13:01:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724961677; x=1725566477; 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=a6YgJDRtCG6NqNHvxBGwLph56rsiY6btQEOiIVWjksU=; b=n8VLgctD2UPtZCyQ2ZHrCJhDlsWqmzez5FRzGdrXijDsVKn/7gCPUeCKxmvBYURyQ/ 8iSOXdiF1s1ijYIgwhJH1sHWVhryqHzmttw9K+83SxPvYufrbx4/4jytLfLSMh+sytfT sb6s0tGZTfSIDBAG3ETqOoyvIREpHiWDtZFmA+DMsqy8J7NtCxGBvPcgsrMheX3EIcB7 xiUn4AOl3pOlZhGWFvGjp/kGqIXU3fTcJb3chYfKMqF4mlSDV4kR8jdb9ii20S9ImGUG z67owO1X9MEDcEhVE49XS49yDVJ+S4L4OGkIKXoNPzCjU3GBQR/O/xj+3/ircI6qsBoI V7JQ== X-Forwarded-Encrypted: i=1; AJvYcCW8YQvskVpiMwIEKw7f0upaU6ffR+pa0pvDH8YxkWomA4bNqT5UMD+AKpsuFK2IHjV7Sz4S0kQtxw==@kvack.org X-Gm-Message-State: AOJu0YyyT5cXwQWE/xIjAS+lr7WiEtygr3YEl6Urq3t5LO9mI8ebGzm6 L5ZIZzt20xmw5LZyuwEKvqnlCQJVYCz9WGUV6Y0UYT0eEcBcHhsd7Z839nyD1rwekk31oDfDK/8 xhYp+dRtnnsI7T+e6r7slh3j1WClGWUsXXJZTWNnq8dV2VSYI X-Received: by 2002:a05:6820:168d:b0:5df:81ed:2655 with SMTP id 006d021491bc7-5dfacd7a869mr90152eaf.1.1724961677306; Thu, 29 Aug 2024 13:01:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGK7ZWE97qlIasXgZMNuMbAVeGSN/jRz09m4SD8T+Wcq60efkSETyErTr9KSiO3wUuWWJ5s/g== X-Received: by 2002:a05:6820:168d:b0:5df:81ed:2655 with SMTP id 006d021491bc7-5dfacd7a869mr90109eaf.1.1724961676881; Thu, 29 Aug 2024 13:01:16 -0700 (PDT) Received: from x1n (pool-99-254-121-117.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-5dfa04e8aadsm341894eaf.28.2024.08.29.13.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Aug 2024 13:01:16 -0700 (PDT) Date: Thu, 29 Aug 2024 16:01:09 -0400 From: Peter Xu To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Gavin Shan , Catalin Marinas , x86@kernel.org, Ingo Molnar , Andrew Morton , Paolo Bonzini , Dave Hansen , Thomas Gleixner , Alistair Popple , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sean Christopherson , Oscar Salvador , Jason Gunthorpe , Borislav Petkov , Zi Yan , Axel Rasmussen , Yan Zhao , Will Deacon , Kefeng Wang , Alex Williamson Subject: Re: [PATCH v2 07/19] mm/fork: Accept huge pfnmap entries Message-ID: References: <20240826204353.2228736-1-peterx@redhat.com> <20240826204353.2228736-8-peterx@redhat.com> <78d77162-11df-4437-b70b-fa04f868a494@redhat.com> <32a451ee-6836-4d4d-814c-752c15415aae@redhat.com> MIME-Version: 1.0 In-Reply-To: <32a451ee-6836-4d4d-814c-752c15415aae@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 806C5140007 X-Stat-Signature: ud87sgpaks6ak4cp9ywj7w3adftoqfkc X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1724961680-582593 X-HE-Meta: U2FsdGVkX1/yfFiOpdV8rPnS84tl6C8rS202J6UN1qN/acgaf3CYX9Qq3PvbWb2cOsNLBfl4gHFZFZ0ADITn5cGKxceggHgOPJaUleDvC6X04chCfp0WstL3viAXCOYpRZTwI3c5vzdD6p862T2YE5LF2Oxjf5jwYPTI0tajdLukm8BvbCHSWa4jzBCiP4uI6cD3HAd30iy3dFGXvC4g6vlmpEWLXl6PWq3rNpa/ZX0lVaPKBNq/oq7yd3E8N4D7IqJQku59nr2OFewK7SX9R2b/0U9Afwn8eNWbuM0uvHdpwKjIPcwQlztRHZoxA3Ue/C+PYWNNgc+QQ1mdAecfXTpBpoU7kQAq490kDTDs4S1fh4JEqdIoUtWNewnASBYoR49IUNyjX1DEpKdqptgRwj0PrGn0ga3NuWv6CMw28WVNXvrZ0NRTGVqrpEz5pvEUeUNVjmyh8BaWzy8VCfr7qQZxof1kfz3//iok3pweDFBbgYUd22hHVN6x/eNY1u8K4lo1AWwHUnKpqLGhJDVS3GqC5jJrDI03cgJO+8lX1pr7A+ewJyO3LwOrXLCMZDIWn/DkcWVVfI1PGc+qEy7tqrLXlwSPbDIvYMyMXGzX9eu4NdMA0MIE97kl9UNdpHMs7HhLZpYJ7TdJ8BNX9BOvNED/fxLjAG4n9XoLj+QWT46tpolThxR3fdgEh9o7tR+uTy0wndi0hTOQ4duEyTzpnUHrdElXb6a1cfdoCxpJRGBMEDVJWfZSaa3YzDfO259EoCaXv8x5D19GOcDdHLebMiXoXNB7uKgT3kQHyIbK6x6vc8LiOtoOll4H5MUWF80wrzvy3Mezy7H6pEE4z8k7HSti5vH6ZY9dWvfPdsZriJ5w998igVfHoyM0o9JvpW5SkVAuXvuCqC/cLgB/aOAxnLsUrcScwGas+AieVFC0OE9M17AdQ6AtciQV7X7alrw/yNBKmBpN/89iOIwdH8b DNtHgjyR OqZIjrLLC0dFoVgLqKG40sauw7jgOqmv5hE9lXTWYR5i6NI71UV9/+wBTOaNRaaaMReSdDEuq82DhTI/SdyDIdapIE4IC+ejbJc//qkirz98S6LQQmhNaPdwElpJy/higUx1iPyfC61rYCo37RSmqGwqF4du1Rqi/UxV8INQjOHiB35xlqpkNk5VEMbNXgiQOOqzAIvWaEFnDcJqNd6w9BSOcSAYyhlKyZgW8BUmx8ZFfzJ807wCHZCFSAJAWVN4ABFTehKPmOz/gpY4lJXFk+7nfe82DapCDCzEHJ/l/Ew2iZqZ9blnu5Y9aKTKTRlPI9s/nHCDTBEpRG4M8rS0/aGEEI+Ry7+q64viJmFPiZbqXUxhPBGYwfYAcXqQwmfWNugsMzKdaSzwrm8zi1evdVOdy4XUN4mbuCbMu9GcBdyi771Zr5TX1u/khd7rjwCYGWuKKrUwIni3Y3ii4a+SCr+chk5YDG6wbI4WKwzJZGb9gCbk= 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 Thu, Aug 29, 2024 at 09:44:01PM +0200, David Hildenbrand wrote: > On 29.08.24 20:26, Peter Xu wrote: > > On Thu, Aug 29, 2024 at 05:10:42PM +0200, David Hildenbrand wrote: > > > On 26.08.24 22:43, Peter Xu wrote: > > > > Teach the fork code to properly copy pfnmaps for pmd/pud levels. Pud is > > > > much easier, the write bit needs to be persisted though for writable and > > > > shared pud mappings like PFNMAP ones, otherwise a follow up write in either > > > > parent or child process will trigger a write fault. > > > > > > > > Do the same for pmd level. > > > > > > > > Signed-off-by: Peter Xu > > > > --- > > > > mm/huge_memory.c | 29 ++++++++++++++++++++++++++--- > > > > 1 file changed, 26 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > > > index e2c314f631f3..15418ffdd377 100644 > > > > --- a/mm/huge_memory.c > > > > +++ b/mm/huge_memory.c > > > > @@ -1559,6 +1559,24 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, > > > > pgtable_t pgtable = NULL; > > > > int ret = -ENOMEM; > > > > + pmd = pmdp_get_lockless(src_pmd); > > > > + if (unlikely(pmd_special(pmd))) { > > > > > > I assume I have to clean up your mess here as well? > > > > Can you leave meaningful and explicit comment? I'll try to address. > > Sorry Peter, but I raised all that as reply to v1. For example, I stated > that vm_normal_page_pmd() already *exist* and why these pmd_special() checks > should be kept there. We discussed the usage of pmd_page() but I don't think this is clear you suggest it to be used there. IOW, copy_huge_pmd() doesn't use vm_normal_page_pmd() yet so far and I'm not sure whether it's always safe. E.g. at least one thing I spot is vm_normal_page_pmd() returns NULL for huge zeropage pmd but here in fork() we need to take a ref with mm_get_huge_zero_folio(). > > I hear you, you're not interested in cleaning that up. So at this point it's > easier for me to clean it up myself. It might be easier indeed you provide a patch that you think the best. Then I'll leave that to you, and I'll send the solo fixup patch to be squashed soon to the list. -- Peter Xu