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 2D661C0219D for ; Mon, 10 Feb 2025 08:32:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B347A280002; Mon, 10 Feb 2025 03:32:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AE323280001; Mon, 10 Feb 2025 03:32:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9AACE280002; Mon, 10 Feb 2025 03:32:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7DD5C280001 for ; Mon, 10 Feb 2025 03:32:10 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 148B0806BD for ; Mon, 10 Feb 2025 08:32:10 +0000 (UTC) X-FDA: 83103367620.07.4126E20 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf08.hostedemail.com (Postfix) with ESMTP id 5EF8B160002 for ; Mon, 10 Feb 2025 08:32:06 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=RG8UItTs; spf=pass (imf08.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=1739176328; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OUcYToRhpuhHDr2Q17cbnKHMqCKY55p2oZxgfc3xS98=; b=ZtBDSg6ZGm9ouu+a2mrY/HVpbR2lOtyApyn4YooBGo2cYYUG4pRfb7Xl3HFkkDAz2ju/5T aYBr6NWpq1UxT2+IVuyDTzqWdMCTUFxJBTK6pQQ/AVOW1WX2zpf80COirFTf1puQXNKuGp C0EpifKlkwEL+Oicn9VhfFtwHg+NIrU= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=RG8UItTs; spf=pass (imf08.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739176328; a=rsa-sha256; cv=none; b=DPefGYdtBhMcGYYw0fWIpwBjNd8YGl8AfhcXdZMr4E3iIgfIMHw1dqfOsbdojZQC7w4P+q S7CsqPObItbQ4JkzKfB94zWCSmWzbWGoQNwJasNkhCCelyb0868kE1sQOl8+EKqn3FrX4e Prw/3E0js83D9xIEB1dQlzwabRetPLg= Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-21f2339dcfdso63585455ad.1 for ; Mon, 10 Feb 2025 00:32:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1739176325; x=1739781125; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=OUcYToRhpuhHDr2Q17cbnKHMqCKY55p2oZxgfc3xS98=; b=RG8UItTscP/2opSEdjdVw8fyhF8x1H3HDb3nrzrIjVmzRZb5qmV0HjHkRcsv9cQAS6 XUwr+jdQE/ppUc9STV3toBdk9LUoTIEuqsUH27wNvt9ATfeMjm7O0iePMOfRdUIaKFns MxX2gL3LtfFESHxwDx8gXOfuY3v8IlNBs8Tg0G11GjumI5GtrGklVBESXnwu8PcZ+mrj q0butbKs9+Ly2ESi6RBQNnFd6zHDF80NmQZvZXu1UYPx4Xy8GXm5Apci/9FIecYkvQ5R ZkuYUHrpbew5honrOvvJ6eOURgZgN89uO4VcNWyDTpNb8h2klmglDUxODe8jHt5lN7De UqPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739176325; x=1739781125; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OUcYToRhpuhHDr2Q17cbnKHMqCKY55p2oZxgfc3xS98=; b=xNe6cH2bDb1Kbh2xCJ6UajrK3QR1gUVfQKe92rfhU0wh7yjQpb8QWbkcnrXV9CfDyL yvH8ffXiVlMb4TtJNd0aYKXWEfZ+uSZGMKmdEQvRIkbKNZZ6AjTwdSXlTiawTlS4FnrR jngxR1eWjyW53purP8QNqQAUKsHNhbQkxSdHA2XEMSGkQC82KlNhESDKeqknDFq7n125 z3QpC1sJ4jXnf7BUae1WIA1HDpsRn5gAN4EGzmIGd0DxfRCLMqvWeuTiY9cDgE9/lR7L Tpuws5pHssrYxweXTfMW9hsWk6vrDsP+BeSJTp8kKk73Oujlp8SgZRVYyJQ9NVXOXdXl J1oA== X-Forwarded-Encrypted: i=1; AJvYcCV8abfimqn56XdYpQkdbRXLnDLX5XOpTFS1LF9+4ClFt2OL5zOfF2ZD4p2ZDR23U9j/fU71I+w/Sw==@kvack.org X-Gm-Message-State: AOJu0Yxg8rpYKacZQHlIsgf/+6F4cc4A8oZnO7lVr0lCI9ZGXUBQOwdW TlHtKAl0CfBvzQdBgmCO3kIoC+2S99KRONb2bj0kKWqwQZ3vOOdE++tVWYhvXFQ= X-Gm-Gg: ASbGnctFPC+JHYWS3Fe7aIt46JqNmD4Gx0Q1chbXqZgREI1sY7XFOSXkU2J7YBF1tLF R62eTFFXTJeXaq1Wn6M3l23jFGq3WqO7K9CFnn0Iebi1IA8iOfLtLfPUbu1/hPYq+O87LnjiEfE PRHtw5ygQIdFOwhxSFbv/INj0Xg+qeHknWu6psdp0k2bcIIzp2owoEHeeCUf84l6xyXeg63Zii0 8z6oS64N0ZPDoBc0EbJlaneAPMEzeOntSAER9jCpe0d0XKNIdKM55BJ80evaz6g/37hnvCt20sy 8Z65tM58ses4hJVrjEvk+V/VfxZ82/dIOklWtd7eJw== X-Google-Smtp-Source: AGHT+IF6fZPOzbILUuM2rhW3U3R4xSndVBqQEShpK9A8O0NyscJ2fDBGKMKmXYk+t1ivHGlVzFHL4A== X-Received: by 2002:a17:903:1a0c:b0:215:a303:24e9 with SMTP id d9443c01a7336-21f4f0efcb1mr206775945ad.3.1739176325072; Mon, 10 Feb 2025 00:32:05 -0800 (PST) Received: from [10.84.150.121] ([203.208.167.149]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3687c68asm73373745ad.172.2025.02.10.00.32.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Feb 2025 00:32:04 -0800 (PST) Message-ID: Date: Mon, 10 Feb 2025 16:31:59 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: pgtable: Ensure pml spinlock gets unlock Content-Language: en-US To: I Hsin Cheng Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20250208184928.219960-1-richard120310@gmail.com> From: Qi Zheng In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 5EF8B160002 X-Stat-Signature: ibsupag7dtyo388n1d5z9ijpmdu33crj X-HE-Tag: 1739176326-766753 X-HE-Meta: U2FsdGVkX18PbSFmUt3yHZKn0MEpoYmMI2aXF5zgrV1Cf73LRfme1zbI3Fjd+NpmLCGo+Ggicit26bYqQ12sP0Si97MMPuSvVnTm7JB/xxYYdifw8pWM5Be89Xt3dQz+o8C4M6KMQJh7u0Q0nC3uSvX422SNtamAi7FWwXJhft5JDV4uMuBG11iv+GlA3cpve/hRouGG5cYEnmmRY7sZFlokb8D6V6o7VtDEIi6Cyjege78yXJPth0mjvTjG7irWdcOT7+YcbhALUf3FaZMUMttke3HRgQkSEi0N/Aff9590OZDSpa/bO7uwhnNz9fCy3Tby3iLrsh98VnGdNsl3hKjc/wrtaLeNNss5PX2f4LAdJ3MQZQi6Bdb2yC+XIS4fRBRcBrWoZtcluE14HvtgdoP0wT4iQJit8keAIxGRuHfr9/s4nduwewtLezX04rXvYz/I2iFF9RedbMfHcya/uPuktWC7zTVWibNuZfF87a6bH/FGnerVOfyPfvlmGQq89w6h7VRzjtx80TU+2EpRfLWpN48NP44nO9+phNd4kc1+uOiijAFBYFoKNP7h7Z+jquvkunlGhEwxMlqEKNxblgGpH1ZeSbkXe08R+HeixDSrgRqd24F8/ixTx9ZEMY6Itlag+SMG1U1R64EV2F9VFq6/QchTkwzPSSWS4PHugNDEzxmv1+J+DJ5gRT8F+J7YPc/oMPIti2AdSKUj3No3uMPcJVMxysqalWP5zF+r8OHwXPlyaAobWA+hI/pp52JjXzLXaYC0pNVQEmpLQCF+TnBJgWEtiRLcVEDY3yMFFZmAFsgyNyR+E4Vr4t2Z7kvv8AeLHo53N6prG2I5Bq/BWJ8CyKClorYjc+VfMoZaYc/dU3cADKzAej9ozdWWyjNRAFR4gDOXrkpz0DWbpi4SsxvemrYLE4gA/C9gv33/yu7382q/4W/9OpxoA1XpVbZKweozCTxY2vaOvcVBiSj Wxjsq4zc ViB2QZwv2ARPYKaBJlJuqbY6Kjfye2UZ7re0qnhutk+exjmnCRyI30Gdlo2yqA8TTDKXq40v91J2bQqFi97LVUsqLbEuqL/cyZSzLi1JyNWts+mp83qXG5u+uA0yEaeGN0Lt1/IHK+bMNDX/JiyeZt5yDBsK/PkENDgAXQyzwcfgWIQ6Ncq2587+FzDprJwEoZEANYqzJJgDqWYwLH2FJQceGgwuV+GKgWqewKgqHVUp1KUWZLnzqMNBRsuHi3aJ+PZsw9Cywoc/+FL/FPi06YvWANzroxpszVh0yXJmdllXZWHjITGRRLbF4QUFuVBPaMnina3yUJXQDARiNoBR8MKUj7Ydun7WV23z0wSyUcaV0Mco= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001176, 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 2025/2/10 16:20, I Hsin Cheng wrote: > On Mon, Feb 10, 2025 at 12:05:05PM +0800, Qi Zheng wrote: >> >> >> On 2025/2/9 02:49, I Hsin Cheng wrote: >>> When !start_pte is true, the "pml" spinlock is still being holded and >>> the branch "out_pte" is taken. If "ptl" is equal to "pml", the lock >>> "pml" will still be locked when the function returns. >> >> No. When start_pte is NULL, the ptl must also be NULL, so the ptl and >> pml will not be equal. >> >>> >>> It'll be better to set a new branch "out_pte" and jump to it when >>> !start_pte is true at the first place, therefore no additional check for >>> "start_pte" or "ptl != pml" is needed, simply unlock "pml" and return. >>> >>> Signed-off-by: I Hsin Cheng >>> --- >>> mm/pt_reclaim.c | 6 +++++- >>> 1 file changed, 5 insertions(+), 1 deletion(-) >>> >>> diff --git a/mm/pt_reclaim.c b/mm/pt_reclaim.c >>> index 7e9455a18aae..163e38f1728d 100644 >>> --- a/mm/pt_reclaim.c >>> +++ b/mm/pt_reclaim.c >>> @@ -43,7 +43,7 @@ void try_to_free_pte(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, >>> pml = pmd_lock(mm, pmd); >>> start_pte = pte_offset_map_rw_nolock(mm, pmd, addr, &pmdval, &ptl); >>> if (!start_pte) >>> - goto out_ptl; >>> + goto out_pte; >>> if (ptl != pml) >>> spin_lock_nested(ptl, SINGLE_DEPTH_NESTING); >>> @@ -68,4 +68,8 @@ void try_to_free_pte(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, >>> pte_unmap_unlock(start_pte, ptl); >>> if (ptl != pml) >>> spin_unlock(pml); >>> + return; >>> + >>> +out_pte: >>> + spin_unlock(pml); >>> } > > Hi Qi, > > Thanks for your kindly review! > >> No. When start_pte is NULL, the ptl must also be NULL, so the ptl and >> pml will not be equal. > > Since this is the case, we don't have to do any addtional check for > "start_pte" and "ptl != pml", we can be sure that only the second check > will be true so we can unlock "pml" without the redundant check, that's > my understanding, what do you think? Adding a label vs Redundant check in rare cases Not sure if this is worth it. ;) > > Best regards, > I Hsin Cheng > >