From patchwork Sat Feb 8 18:49:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: I Hsin Cheng X-Patchwork-Id: 13966475 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 00358C02198 for ; Sat, 8 Feb 2025 18:49:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7031B6B0082; Sat, 8 Feb 2025 13:49:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6B56F6B0083; Sat, 8 Feb 2025 13:49:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 57AE16B0088; Sat, 8 Feb 2025 13:49:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3A9976B0082 for ; Sat, 8 Feb 2025 13:49:39 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id AA72EB2F6B for ; Sat, 8 Feb 2025 18:49:38 +0000 (UTC) X-FDA: 83097666036.19.0B1B43F Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf07.hostedemail.com (Postfix) with ESMTP id F067C40002 for ; Sat, 8 Feb 2025 18:49:36 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OWLg56Cs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=richard120310@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739040577; a=rsa-sha256; cv=none; b=v9WaC55yosroHBzVBHvdTllhi0f1ADATFaun0GLTzPS2Mm/eBmsjqarNdGQ58HWhs7HOgN LK0IegnGE9cjWrXaGS5uu0LhrW7voMku1CTJvasBgsu5j9yG8tVIi8r6mjvs6VGs9nd6Bz gLViIkt2lliGP/ilRXYOFTv+9he4zaE= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OWLg56Cs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=richard120310@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739040577; 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:references:dkim-signature; bh=zSLmSYdyN5pqVTnBSE3QaZaJyR/je4z0lfhrwlYoiX4=; b=0RKdBvbIJ3zo4IXECGiCys+3reTqfK1OuFdqnBEtQGSC9wzNHd3ok1d1mTNptLNOPlWU53 xDuViwMs4hqCkuWv39lolDAXAw5b6iA6GWtoS94+78orkwh+7AgG9F5Mq0qkWrScDDcwAt egFZrD8dBdTDf1S0S0T1dP/P3y055OY= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-21f50895565so25571835ad.2 for ; Sat, 08 Feb 2025 10:49:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739040576; x=1739645376; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=zSLmSYdyN5pqVTnBSE3QaZaJyR/je4z0lfhrwlYoiX4=; b=OWLg56Cs3d5EEhCwQg5p84alar1EAH275oPoVkKrriHxhDjZ9iNarsnXYLSOqbjI9c OzHnskgjavUXGb3PbnRtpB7OUYpVUJfXfYWNy167Ld51KBiBK9CAdbNpMmKveTSLh3Fk 5A0IfUy3Hfq+sd4qLSIfgjNVCy35gQUPoPZKl2VMmNaifyJXN+SnTdFn+gawwS6HGHB0 yZp538jbsWnZbOpY/JA1N+msYlTZoD5dk3io3u/uy3CaiuWT5MOlBFB3L0RzRApqzhiv xGdBIaBl8be2f3cxIlm+fNbTsOPhsHXF7nbdyfOtzDmi/4QnOqjmWlYxS4jn4Dc67YvC LyCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739040576; x=1739645376; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zSLmSYdyN5pqVTnBSE3QaZaJyR/je4z0lfhrwlYoiX4=; b=eBh2E0ZDSOl0Z+j6fWPU2KrhJGNuxTCOsJQRj7jMqrXS/sEXR4kseCR5JKVjjoqr+3 cGL41n3G4ACyWafu604SztJawICvOeHw1EvqS7J1LfURPMJmLnfF6VmGl3ALS6nNerQp USbIZFE4etz3HMt1LhPrOOEIYrRVNteh2rJwvZTyobNkHYvS1K3DBtPsqLtJTjFU5MLm tltxXHbX/m5lhJFXXsHvnlnqk6lLCXxVcGy3V5YQddxAnP+80SlkI0cAbklfYNJ3bgC6 anrnIBTZJav1Tfy/ZEZudRGIHIkyNUvTexamIiLBJkKj6PXLZOQDyrLgJx29KNaN5cl/ dbxg== X-Gm-Message-State: AOJu0YxSXyzYq5NjscW42NBJPVwe1EhNuivWf8D1bmXxmGI7q1yaC0Qt abTw4mf5W6lUeCAZ7CtiraJU++iaQFTwypcUo9mPki7DDeJZnc1lNYl8Mg== X-Gm-Gg: ASbGnctX78PSneQrWxi0JAz4hNYgudYUbXbnVlqrJf234zOas3w4ITR20C+IQwgiL2g OLudUQV0bDvtlJ639fek1QBw0Jj+B0Flzu+LPw8F61T4SUf5R4Oz89+TiW7Z+s/v+szzp+lHvnD DqCuPtdX4XunPIDupdO56sFel/jaenWjfYVReZUY7hFPem7HZsSf0rzIG+ycnmBMztHoLjuUnyw lUu4RhPJ5pU/gpia7EU9jSjO03kVOthg5EFMiYaxGyS9qzQDhahteY4cfstv2u1Fdxbo4vuboDR iY9pwu3Oma/p6bOqvAej5obfV+0LFoYag1WFIwiyme69xw== X-Google-Smtp-Source: AGHT+IF3MJ6mgOQzZlCTQJfC7ZUaS7zqr5awqAUBdiEburDReXv2fXFkB22MR4PEJCbxeR95Vt3ydQ== X-Received: by 2002:a17:903:166c:b0:215:6cb2:7877 with SMTP id d9443c01a7336-21f4e1cbdaemr140068185ad.4.1739040575793; Sat, 08 Feb 2025 10:49:35 -0800 (PST) Received: from vaxr-ASUSPRO-D840MB-M840MB.. ([2001:288:7001:2703:25f5:ea47:61af:a637]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ad51aee5ca8sm4272828a12.43.2025.02.08.10.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 10:49:34 -0800 (PST) From: I Hsin Cheng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, I Hsin Cheng Subject: [PATCH] mm: pgtable: Ensure pml spinlock gets unlock Date: Sun, 9 Feb 2025 02:49:28 +0800 Message-ID: <20250208184928.219960-1-richard120310@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: F067C40002 X-Stat-Signature: 35ucsgubj7spq368hfnkazukg3iq4ezd X-Rspam-User: X-HE-Tag: 1739040576-708299 X-HE-Meta: U2FsdGVkX18KkiBs6PLPPQCU2cVRrVmp+gRZgi+lCDxLHwfPQqJRlW06bDcIBIvWIvKznSG+Qlojz5YFxp9zOm+JMwHFXd0LdiSApUbKhY9bpyP81Gcnjd3nvuKzaNFi8nOX0tNXQ1iErcmbwrEZcY0MaLzQARqAZgYkMQxzoTXBwEoKsacGIlZj/OnhLjYZMG7/IIbO/2tDvftX0Uaf+YLbcP3aPo9d0WapRGj7Z3qB3iuBE1gajMhGem/mSrfg+fBzNd3vF66Yz/m73vByeYuPYULpt4a2t4e0RokWBEkyMLRp7l4X2TYH9Oh8SpOGj95BLECvs7ny2t5FhvuURh7aOdG+1o4nwF/PDzAulL3ZnBYKWNmHNm0Tq9rCVA8uxqwdZN8qRKkeIrHBnB90yb2Z/zCd2qR11KmqR2o6mQxOlWsxqk3Z9MM1Ck+7EQOVDXfVG8+sd8oSdv3+JQTDmZr3x76PZaJ6ZnRZSNLnMpTbyvR5aIXlBRuz/iwcanp8FyAdi5rvp/cSE2DsJArwZOzulXE1CTxWY3ypjbp2495eyNe9w1LIEf/wA/nuadNaw7CfTadM0r9oRVkv3bWFEm3aEzvDsZcgS2E+5jHDlLDrH6EASQvPvMEWJFW+qtfZRGzSh09/LcHqYSXmNaI3hjjrUzslkgREIm+dl27iP9o54/O34M9EKSdg+xgtzwieTczghQjerw7EYlI0EudRWXLksACxl1QtmW35oxa2MszsXkRH0mtDYgMl4djsFVWCtOdEMzLUikutNYh28QWJk5013wKIUwWIvyAayxsvBjD9WsDuYOYALshefm7R62PWY1zzuIdrodwNxh2w1rfWX7NsiL1ha8i4US2pqZfSi/pLI8SN8UbGuG3Co/Lv8R0H7e2lcBMOuSHNDKNZS4OQ5L+NZw+MvQKMIvxyzXABgr1R6HzDKavQUSYbr4Ob/uN6nd3bETitbdBMY3jy3Hp 5wLuBaR2 3iUBHlFLkUiXFF9+9bzz5XbkD5/rt0Dv53FD/367eMjyRSfbx9HyO+mkAPe+ZXHF+Xw3F8YGmamn5IUeLtTO/MlIORE/1+C7FF4+YTdYl2MeJ8E+6ALjbOc2ug3cfRxdZH7i6eLwQhh1DtncFKvlIcHcMLNZIlxqJYLWcEOzYajcLpR1RMLQB2q+frZaQXjvOaUTLq7ZBQgIhW+WbhMc8q0eUbNI6T5YRS+SXwp59R0mstz9NzVKtREAlAuIezO3XUrHObOZvPVAr0vsFcY9yTME30z8Pt6IXc01oNPynLrujJMS2SiktiMtcto6ULrtmYAniAyv8wjUmWNxcMuDC0/YITdUCtg30Inm5QlC1cDJsksuCXGpZVGiob9MYV8W0lCKM X-Bogosity: Ham, tests=bogofilter, spamicity=0.116770, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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. 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); }