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 1D7B8C0219B for ; Mon, 10 Feb 2025 08:20:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A698F6B0085; Mon, 10 Feb 2025 03:20:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A175F6B0088; Mon, 10 Feb 2025 03:20:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8DEE46B0089; Mon, 10 Feb 2025 03:20:45 -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 618686B0085 for ; Mon, 10 Feb 2025 03:20:45 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E5F27B0AD3 for ; Mon, 10 Feb 2025 08:20:44 +0000 (UTC) X-FDA: 83103338808.12.E74E82E Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf21.hostedemail.com (Postfix) with ESMTP id 10ACF1C000D for ; Mon, 10 Feb 2025 08:20:42 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=blN2jjE2; spf=pass (imf21.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=richard120310@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739175643; 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=HlXh4wu9iFzn8SVgmfPWzDAbPI5SiGvT8kTEw+L9Ggc=; b=P2UHXvdilBpcrrDutp9YMJSP0P+oGypxUpL+iWEWbCueaK6TzKJTaxqRjq7RWVAhBZnBD9 K8LrdqTuFNOZCmzWzsalQK2sHBCaR5x4ohON+6n+pDdk68/H5cbdlBEUmbIix2FjRlza7H dZxDeqdE/rqFhELkjO75n5+K84WO/2o= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=blN2jjE2; spf=pass (imf21.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=richard120310@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739175643; a=rsa-sha256; cv=none; b=ErgoRwHlQgkMJd0YVeLNpcrlicEfeAGkr9nY4J/aEJU6J3YYsDqMi9K8J5W0AZMQrSN9JR gj6S9wiXd/M860KeZvCDf/ROVRNMMBNuHqkTgCw0wgtY1fZC3yC1/l9FKJRc73E9/vpVrZ RHHv/kz/AHQdnpXTphSpVeCgMS698Fo= Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-21f2f386cbeso74396835ad.0 for ; Mon, 10 Feb 2025 00:20:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739175642; x=1739780442; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=HlXh4wu9iFzn8SVgmfPWzDAbPI5SiGvT8kTEw+L9Ggc=; b=blN2jjE28XgQQj4w84tXNZptZNAMDpAngqeBpn+FsXhfSzKVKX0xRtaXIhjpDF0ltJ LmuoFQ/8ICSnRVyXLHR5G2K2MHsrARdkJ66RI5VRrhSi3J0GbbeGMZm6PvhtyUmeWDSW QM57ux/v79CkotHAboRf4VdRlFn20mM24gJ2aKHjEY5P2P2n/K+7lvHbvfe2nFdf1+iT 1MfoF0OKyH16RIr1uT00ofMj9Jb0OP26o7dx2emM2CvlQu3jx1kiTzEAC/USCLSpwraH p4+5R0QjQb6yGyN40+ESyiWCEUUZ/s/MHNx8EeKxlQlvQtj5C/3B6dyLgKQ1/RBNnPPs w6mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739175642; x=1739780442; 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=HlXh4wu9iFzn8SVgmfPWzDAbPI5SiGvT8kTEw+L9Ggc=; b=IW9URxnd3hHWClu7JKx3w3TGEvI9hMt3ekLIHAUPm32lUlTGHhILFUwXWP/4qjFsqV nKPYrlwGM9e/NLdSHSsg6SCJUR32aqyljJ//yQt7RtxxzHeAQ+ZWjjhP44kdLdAvy1MJ SHy4GXDM2rvc2lyXX+ML6aGNDplsYzOlat2SKA17DWDoz5s08MlU34We8UnZIgWNKqZc UOa+cI2gstByFma9i28rEzwXEHzdMt1lZ+U+ai5IlG82zmM/PzuYcXhJHZsbEXUsT0Dv l3N6WIZ+avdBDKouCVWu+KwaQEvpNUKo/Mud+bNLcY5f3XXsuiYOQMt2v844OIany3RX cvPw== X-Forwarded-Encrypted: i=1; AJvYcCVch5WhGYp6oOdfUMXAa65TQVIOPSbJBnlKc0ShF/qxSDW47UMgUurBtzrJMrRWjXoIcWIFJhpqtQ==@kvack.org X-Gm-Message-State: AOJu0YzhgHEnf3mqiLbJk53fuL5ooIDW/umHGMlg2dm4H0ADd3LUm5ZT W2tBjUAgOfgy1SeX3lvwNkEFe+mRI4udidaruwRr9gKyVUg78JElDCf4xho2 X-Gm-Gg: ASbGncvTxMvwldvr19KOBwAeXHzxkOpYy6v9cpGkRVytor6bgJl4szkszfIrlG8gKio PWCW0/SmP58sJol6PIdKE2tP+2w3NNTpaUKn5FN6Apf7nwSZdaWVaPSoRRHThnM4f+w+oGS38NO neW6iOq8g5iaPgMogtLA/ahXcA25yaq2bCXdckCMNqjYNtxRkRczC4eTMZK/y9cTg2TVay5gmSC jLWJ0cMGXRMPK8tiTP9iGJN+xqNiXaUWHhkyN6ORp3uJ4GoBTbQb3QM+3nvFLojhtQln2wjaEJ3 ZB9NQ5LwIBwwp2FOjeIB/x70toXiiDcg X-Google-Smtp-Source: AGHT+IG7ENWZhUOWMiQkJKsUTRXJJbBxJsRsKLOyisj8+R4EtrbAchUJfLHYvefAeqd7WL7OaNcArQ== X-Received: by 2002:a17:902:ef49:b0:216:725c:a12c with SMTP id d9443c01a7336-21f4e6a0174mr193490635ad.9.1739175641887; Mon, 10 Feb 2025 00:20:41 -0800 (PST) Received: from vaxr-BM6660-BM6360 ([2001:288:7001:2703:83e6:5a50:60c5:d373]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3687edbesm72739965ad.177.2025.02.10.00.20.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 00:20:41 -0800 (PST) Date: Mon, 10 Feb 2025 16:20:37 +0800 From: I Hsin Cheng To: Qi Zheng Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: pgtable: Ensure pml spinlock gets unlock Message-ID: References: <20250208184928.219960-1-richard120310@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 10ACF1C000D X-Stat-Signature: mdhtuudr4deqku71khk1oa6t849jn7ff X-Rspam-User: X-HE-Tag: 1739175642-473488 X-HE-Meta: U2FsdGVkX197YNOh69BOPa4Z7U9Y+FUzpfSVzhHwW1iUv4c0K3mWx5YamvGeogQEXFpORGd2KB25nq6VljMzHuSQx64bDWBL6A3zul99PZJk/RUtmKpGwDeGr4+dZ2UpaFfECM2Evy2ZppiHcO1Akcv6dpiFRLAVosTlXrFYsqX3OW1ir/pHjDPCsjco8XmnoPNE6IO8bsW5wZ7L2Xu+SLke2whUEXhblLbW2bQ6l+giGDqKdBEn8V+Cv6/gLqimVqscQKNitkcztXqkdpfBs7JdJ3+SnA8dKE6QOdKX4+6Ny4YsnlOPdFhxOACJIZ1CSV2z3fk8MLzqDQzpp8cJFN0yNRQ3WetwJpX0oL9VDsVPQqTmZi532eWZR88t7IpQLUwTDoCbKDIXE2+wJAZuI0prdMiT4f7goIeGHWyufT5txKj+KPGKvKyO3XlHMLiYOcs/o1cHLaPhcHcbDmBVwRD6VZQtI6cW+Kl2fV694h2N0Rbvkh71h/cv03CC301lz0sQPcNnaDvufWh8pIffEoWX6l+FG6BD1pMiB6QDTEdWMVRbmRsILFLSFczBBuiIj//OyEr7egR9wJF71/ine61FNytd39ogYrEyxurDrurMDvGApbtZwqd/EegbL7bSHnZq5UhoKfzqCNZmBP01yjbFEgnAoiQZw7ufux+NhqxHPPli6Rs6FFwvrC9rkJDssOryZT1e0i7BpaLL1pa5X2USpQO5tUPtCUL6PnZdLuP5kFFMbwHmDYk0kGMYoD+ws5YM/KNN3Ue2n6OtGSB1EQEX+FYM5eEsUyBCXAplfBG65+xZ6qzd0e6rBGkDmqG6Vu67Q+1Ds06e2bcsdTeNebD8m+egzgzpJKDZkFrfL5MZM0SLLOkAfjrTSv04uYbQUJfOiwJerVzKOHstUwDa0vsslBy918ps2a95MaUR+KQM82uEflqe4l6ft6uxkQbX6/Mew5KrAlnuhFrM9Cz Zf6I8b+m S6unbfUGbPiJDB69pMme5K8LnBZOUSo3OmIw98SRDYiJhURlvYrBU1AjfLKhGgzfK+/jxEVlAIwfb47Bj/WX4G5ww1R1vVpWNQGyefdISD0McqcOlkcVdRwE0Svn5CnCKJSv61kf1bTlDgdeKiTCKDHfjHzIyGAPkNJOBxKs1Qo5V4YgY0kx/JFwzsXfWVyFK3w5KNCCsFcamMLBfeBBGFt7JXf4GdRf/Wu5KJKSBmgslT07UW+ALA2UEfIPB1JX15Kw5dDkMW+4ZI/cg9Tqql11/TqC8/JyfIoiQIB+v2+rCiMqe/3M8wOG18k6iesZRQtZXpnXJAUKSVQZ49hSZBK1JyJCFrGbnC5sybFaypZV9A2qeyOpsiW+Fn4HVYdduk07ysbvavxL+ripdFtBjoBxcSEIjKitd43q52oe6ZuNA+PJVqpyBnhg1qREZQbc6Z+UC6uae6WdwQajFvywn1CQZsA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.008597, 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 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? Best regards, I Hsin Cheng