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 B5757CF9C71 for ; Tue, 24 Sep 2024 06:11:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 37E326B009B; Tue, 24 Sep 2024 02:11:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 32DA96B009C; Tue, 24 Sep 2024 02:11:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CE666B009D; Tue, 24 Sep 2024 02:11:22 -0400 (EDT) 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 EC4956B009B for ; Tue, 24 Sep 2024 02:11:21 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A7B08816DB for ; Tue, 24 Sep 2024 06:11:21 +0000 (UTC) X-FDA: 82598609562.22.DEA8C5F Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf05.hostedemail.com (Postfix) with ESMTP id C6AC210000F for ; Tue, 24 Sep 2024 06:11:19 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Rz+GP4hH; spf=pass (imf05.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727158160; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=a5exoCzehntR4bd+ahks+h4WFwEAjFaMLu5nKDHss+4=; b=RpXp9QJozs7a1iaID/mKVn4S99HK7j0Q8Bhoffgy/9Ch4EXztubCYihx57Yvmesf4/qWaK rKHOxl30wUhx3nq9kn5loQiQFDKZ8aWt1nGbXLRgGogKQ3LiYs8ZMA+xrEyd94yDREJ0gp HlcAFUx9cQImIcs11xGMcK3TO/aSdRM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727158160; a=rsa-sha256; cv=none; b=6ARnjGiUkp8ciXONfMsyJ0wOPnkQYrd3eRM+dw8ne9Urxs0xXue+zuotqBVldQq6TXI9jx 2tUAQA2Qb36ucUKxxspwEPBEWBKHJee1m4d1TD9XtMs4UcsiEp7qb6FgkDtZS59uHcyFGq T9rn7XvziZeCuZd5CycyVipkJsNDlyM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Rz+GP4hH; spf=pass (imf05.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2054e22ce3fso50850475ad.2 for ; Mon, 23 Sep 2024 23:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1727158278; x=1727763078; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a5exoCzehntR4bd+ahks+h4WFwEAjFaMLu5nKDHss+4=; b=Rz+GP4hHN/mx/CJHP+0csw3UaUu9SMrfwfF8gdHuwbs0XNRR+Zx5jqbXLQ1gReiuG9 iEnJhDAIOKKMGvcmFbi3cqe398ar/Le6iEQOmgF8r/becy1TkWED/MmutpfLYzTyeArb SKKl0YM9p6kfjhuwV++hOAauwTZDp8/iQI1ewTHalNv42N8TaWjDJpqBV+++6ec17A9r BfepOyZvOc/MBLR1ZM5PItYt05Ciaa9aafz6WTuz9XPSE4AfcD518lyzzGDOCJVPpyIi vdsE9P5v/tOoWB0szw52iQ6DpzGfTe8U72AeNyrwlWB6yLxEVjXpTGvQsfPcnEtUcbIG BwFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727158278; x=1727763078; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a5exoCzehntR4bd+ahks+h4WFwEAjFaMLu5nKDHss+4=; b=qAW/ebsOkTB4BhNF66vwX/2kNqtpvWcHm7r1Wcso5uWOJKoL5caR1zjCOC+4K2SAa1 52cSWORyibi0bzetBS++A4tYFShofutKIpoUFCG3qeJo/EoGuUym4dUWL2cl6UbsVzKD DwjIGTtb2KvZBshnigBAlsoMcp82bV+fYO4cJBB/WQIRBSD/5L+LWSrluVHyboAkCa/p GFTLLXw7bDCvyw9jW4k1fEXRu26ih2ORjaQy2CpvjUUZd9J0YkEE5QJbRASZozTgB9Ce n46ILmA6g+qTqcGaaF1/Lb2ERG1Y8Rr2jezyTEJuRgqAltUkVgzkAhtWsqeYnonta9U/ lo1A== X-Forwarded-Encrypted: i=1; AJvYcCXUcZQNmAVrgxkbpfsja6ML1bSJGljZJkn9FtHvQ+EdFY2zF3Eq8irfpIuTMpU4e0b1+5ViVIcQFw==@kvack.org X-Gm-Message-State: AOJu0YyjQyXWqZGfm1QW+E6OKCaA9zlnOTgGVz6R1DzJjwEsrvGsfbCF EGy6Xc/i/e7ymt4GD5mmttMuzLRc64kkRN1mqCAiOcRxfworZfGeuA2ijZy9ZpM= X-Google-Smtp-Source: AGHT+IHw+OqtuQ5LCBY4YmqC9EJn7stUTlaTSc5oItaKMOqNO6mqJktvnwlzFLYt5xYGl9LymCl5gw== X-Received: by 2002:a17:902:d50f:b0:207:1709:380 with SMTP id d9443c01a7336-208d838ede3mr189786005ad.27.1727158278506; Mon, 23 Sep 2024 23:11:18 -0700 (PDT) Received: from C02DW0BEMD6R.bytedance.net ([63.216.146.178]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20af17229c9sm4344885ad.85.2024.09.23.23.11.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Sep 2024 23:11:17 -0700 (PDT) From: Qi Zheng To: david@redhat.com, hughd@google.com, willy@infradead.org, muchun.song@linux.dev, vbabka@kernel.org, akpm@linux-foundation.org, rppt@kernel.org, vishal.moola@gmail.com, peterx@redhat.com, ryan.roberts@arm.com, christophe.leroy2@cs-soprasteria.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, Qi Zheng Subject: [PATCH v4 08/13] mm: copy_pte_range() use pte_offset_map_rw_nolock() Date: Tue, 24 Sep 2024 14:10:00 +0800 Message-Id: X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: o9zasriwriaxzcp8ds1p98yzdq3gqxu9 X-Rspamd-Queue-Id: C6AC210000F X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1727158279-860445 X-HE-Meta: U2FsdGVkX19ENyhVYiXx3OggBALiYDZfLrzxgWyNLNqZKmh9tpJSPShikNXgHGW51NcXxPk2+N0wrzuDsNDqa2hkdDOHuaxtfGAbWfiGm8fFXNlAqDKEMlH4pRsmAMEllxj6VivqXPh2AsZUY+CHteSfHMYhmiF/ii6YEfvm5OESV5Bwj2zGx7gyh/MV0o/K4nJ41EQ+iVZzyHwTA45Qx8ZxWtYZELywHXx1UYsbrjxs1qSVMbdyZJ60DUiQYLkuBbLKdDtKGU8VatHCA6bPupKRoE+Sleu2sz5WL8328xUJO3910d7Yo1hlUxfOVnzUtufnOxRY+O8FWFdALOzeKoQuzbVKaKN6QUQgD8o9O9VnDRJBruAvldrY9odEhRlCYgAF3ZeweJWa2L4vlPrN1PK+fEf+Jzua200Du/I+RROXqia12ety1/KGVgIvEk3lPJGPl02nGOtdLL75SfhRa1o/rMC7SqyjmLu/RvYWDRHHBG+Z+x8dVSsXnPW7cO5MQrRrcaowpbBE9H08qvnr3iZaW3+f7hOp4g2EUzUafuYMtjoUqkaLGYeK/BKM/Z44mnVOtjYRcvw4mOR883zD5PR3CvHCbcpEKH1LVCXhtIeK6inQtoW25bMQWTpr0t7ZjG4teR26IJj9xMcWo7T+wjq45cAUg6xYcC94QS90qA12rAO9ijhyoIQhrLCwrRUNjrBmr8kfJYX9W6/GfinDlphB0IEpn7b+L0nDi1gs5wk6dCSaH0xcctS6LFUF0AkJH9Z/t2LuiAk1vAJ02DW/jFwB/5HidBDVSCBFnY0YGrEsD4LzIybgRNQMte8bfLPQP3afeXUnHGL4BsJumwcZDFU7x/UQbaeMZX2qoqv7g0co6CFRvIPNGEKw2mM5uAnMlbN2SgH2I0fDx3miNoamoFt5BsmyJ81MsekcUf+Z3ug5LORAH7wsyLazuQyeK831AeeWY91SL65+ViLsC7x M+Xsmi6U zVMFhHI639NLb6Z35wvdvZvr+HXSIuuemOOD+vwPczMtavZ+toKtGsJwVhGsUh2Hekdb0ww/HqnGLE75926kyW0LteNpFNAswpq+e+Ew1rnibOZ9tc6yaCkMcVN1NOSwsn86KR5Tju1KOpC3t3xigVHGVD8M/8PR8OctvJGhFKwDTibHDZhp5cQlBVdEyibgF7+zAb26Inuu4RjtVA3UHO6QfLDs4KDKHg8nuemXfe5wTZrdwMjicXs5mlcN5FiaaT6xp3Oe5qQFNKWNHWymwwelgwcmHH3O5QlJYO/B6EDQD6/9uVhNNTVQ21IffuAEN+9P8EBepRAtMMH4Nh8/YQ5z3YmZTIk15Czh8jRZyDqrRR90tbnK4pPdOWqEasAiKSxdA5GQBZwJPK3k0wd1Vw8Ilj4ZNL97rjhhmaKvBCVUag9vz55xZUq1q2w== 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: In copy_pte_range(), we may modify the src_pte entry after holding the src_ptl, so convert it to using pte_offset_map_rw_nolock(). Since we already hold the exclusive mmap_lock, and the copy_pte_range() and retract_page_tables() are using vma->anon_vma to be exclusive, so the PTE page is stable, there is no need to get pmdval and do pmd_same() check. Signed-off-by: Qi Zheng --- mm/memory.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index 6432b636d1ba7..c19cf14e1c565 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1086,6 +1086,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, struct mm_struct *src_mm = src_vma->vm_mm; pte_t *orig_src_pte, *orig_dst_pte; pte_t *src_pte, *dst_pte; + pmd_t dummy_pmdval; pte_t ptent; spinlock_t *src_ptl, *dst_ptl; int progress, max_nr, ret = 0; @@ -1111,7 +1112,15 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, ret = -ENOMEM; goto out; } - src_pte = pte_offset_map_nolock(src_mm, src_pmd, addr, &src_ptl); + + /* + * We already hold the exclusive mmap_lock, the copy_pte_range() and + * retract_page_tables() are using vma->anon_vma to be exclusive, so + * the PTE page is stable, and there is no need to get pmdval and do + * pmd_same() check. + */ + src_pte = pte_offset_map_rw_nolock(src_mm, src_pmd, addr, &dummy_pmdval, + &src_ptl); if (!src_pte) { pte_unmap_unlock(dst_pte, dst_ptl); /* ret == 0 */ -- 2.20.1