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 AD713C02198 for ; Mon, 10 Feb 2025 04:05:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 239B06B0085; Sun, 9 Feb 2025 23:05:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E7DB6B0088; Sun, 9 Feb 2025 23:05:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0B01B6B0089; Sun, 9 Feb 2025 23:05:14 -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 E1F306B0085 for ; Sun, 9 Feb 2025 23:05:13 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 88310C2046 for ; Mon, 10 Feb 2025 04:05:13 +0000 (UTC) X-FDA: 83102694906.15.9D5C7EB Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf29.hostedemail.com (Postfix) with ESMTP id 7A24E120002 for ; Mon, 10 Feb 2025 04:05:11 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=FA6yHU5o; spf=pass (imf29.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.171 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=1739160311; 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=+QI2d1ZhDcLWDmDwgN20LSaHFGdwN7o3BKj3Rl8G8JY=; b=Votn26EiS+ZWKcH+QjMD1pdW3xbu9eot1AlWh2fyZfmbcJKGr+QvYuCTyBcyEn6AQ4YW7b Q9hIeeG63Pu6ulgamu7eiri9W7BOfsgc4h635aZGjjtfawMgWoU+U9DkgkIyEYLBeftMFQ pci8hOmQfD3ksUoU7xPSjoogQ586DUQ= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=FA6yHU5o; spf=pass (imf29.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.171 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=1739160311; a=rsa-sha256; cv=none; b=NZNCxVRNehU0f3syPyFLLXnDJK3OIvfdVZU1EamBMZsSS4WqTKbrl1EY97X2yM0k0tkzJA 7UJEvrk05PeEPYe9LFtkShFHPEjOl1KprmOSJRQlbrf8cl5XUDRlFV29qb/1csuvio0aNS 4oJLh+zdtQR1aIOJl2X0tldXgd2eNUM= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21f40deb941so77850035ad.2 for ; Sun, 09 Feb 2025 20:05:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1739160310; x=1739765110; 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=+QI2d1ZhDcLWDmDwgN20LSaHFGdwN7o3BKj3Rl8G8JY=; b=FA6yHU5om8K65rBMi4wZ/hOhZ1+Au7p8F5lX/u/R5fXbWHCEJqqXD8H+KbQs6+pIKt sPMNKON/4+4m26iuWGYALZsqFUn5b3mo/3zLGhVSel+km6RYTa7WGibw1Qx41pdr6iv0 Akm4T3ksv9IWmwnf4raAVGdP/TWStY4KbGkDMF/cAZfpFqHPUI4iALph8UwNhWJzNDVF KU5cUvWpGoPpc22Sv441mzsRbQPSGAsB0ftLjgvaRlGCH9DLe2L9W2n8JrlkWWzojXh8 a0DkiApK32KwWSFU/QFwSiOa07mMe0mdOIYCP04azj1BO1j56kvm1PHBqZrfiu2oaco3 L66A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739160310; x=1739765110; 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=+QI2d1ZhDcLWDmDwgN20LSaHFGdwN7o3BKj3Rl8G8JY=; b=GXgmV8cIVyx/asf80R/LCDn7SFDQG9Rxi2cFGTZPuNTj7LB6emKy9vNZ/YHybWeGTH OaB00sWhWZG6iNAvUylTN1P14C/bU4V2NTerURTb35Xtol/yfY+gH8HFrzKkkqbNNMx2 zBFRCy1l+0IYxYAnSTJzMfmoRYyh+bdkbTcTipIk+OqAO4uzus/urH/1HQ4/ShdDGJZ8 Yemk1w9Q5JbfPxrcrA6i+lGWT2CTmNzlA8xC+wkNddP9UT1Iihk7WdhCitKLwwLdnRnS PagDKncNh7mrfsg0VSP9ky+UI/zfBDUY3Cen4LCv8jgArAIPp3RyWFw38vKWBibbac8D xKEw== X-Forwarded-Encrypted: i=1; AJvYcCW003J6QFr2dzLrAt6IRvEL/bKCjJN6b+tgBwFyCdGgd2VoZ1YRy4q1+gt45ObCfvdDarQHHCivrg==@kvack.org X-Gm-Message-State: AOJu0Yx/6mlmptqPzZQVQBPAfadiNMbOyufdeyZJKfRk9yCBUdWmsK7/ 24XGWtsDCVveP6fKVN6MG3zAi48b5Fo4pbMh+/rVnpXgjjlXAfpUOqOvO5s9OpJH4jd8Ti5QXqk n X-Gm-Gg: ASbGnctwDdf300fxw7eZfMG9mzMNeu8D7aoQD85BAbfF9xF6TSIlnvHBe+E5HaiM5KS pbgW7SRXSZzx0RW8w9yWtN78NCQ36axQAQZI/u7NdGyjk5reE7v2Vfg26pTcDssIzKhOj0BmZPv iwRfDFQuSYdylv0VF2T78m7BS/QCxphzhfMDSzscHupSmNlBfsRB1nZic1BP3C9DOkXcfok1EW6 NhVLdKQVRkHjLLQMrx8O4/VWQgdAjruugqRECAvYpWeRIEw1B5/YZ29ySj/1ENB/8XFcqVoeuQK o3Tmm+N35fKmQhYTaP9q4vGMdqFUdhfrN1LTs8v6yQ== X-Google-Smtp-Source: AGHT+IFFrxY09D0WUvxEWnATaPx0lzJ6U889AvkZtWcFokxd4h5asyTt248mIDYlLOHnVE6iLtniHQ== X-Received: by 2002:a05:6a21:8cc2:b0:1e1:a9dd:5a58 with SMTP id adf61e73a8af0-1ee03b129eemr24343506637.30.1739160310332; Sun, 09 Feb 2025 20:05:10 -0800 (PST) Received: from [10.84.150.121] ([203.208.167.149]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-730733d401esm3220704b3a.105.2025.02.09.20.05.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 09 Feb 2025 20:05:09 -0800 (PST) Message-ID: Date: Mon, 10 Feb 2025 12:05:05 +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: <20250208184928.219960-1-richard120310@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: w9u7ri3xotjp1erqjres6pyefxmssfwq X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 7A24E120002 X-HE-Tag: 1739160311-258538 X-HE-Meta: U2FsdGVkX1/AGqK5lq9bjIS0p0fJi0SfC1FHnxpnwj4fXLLI2oHzQ4Ft0nOZR1Tm1XTs1VcHSIDj3srqQm97HZwq1z2kHquHM9NOyJQPNkjnLsyGaqXpkVbWHYoQVRgItdwd4Ss6SU9rK50pdkXOmDPB7bcR60i/YQtUaGvqHizJfHDR+7iowMavO2QOtaYT7Zi7ZyaqNe4B8uKWcJYz8xXQ7dmXXOeMjzzwOdE45S6cuBPR5LfmvVIO7jaEX64K7nK5BoFJE96Vz2dRlAjFtMTaWiaDsQSmNkNjYhha5RcwtY1oGTmPXobT12TrayiIZhyurRggb4yJ2xtu/3MG/MAQkVqaKLgK00X+pYtZBpQH/aSgFsGYg0p/IFPzPWwT7AACQZyCp+KuLcULrY5q8bb+UMPj9SKwKeekegCsOa2LFplNvr5Bqm3L1VqLvvimwA0bd6fRAnUbXYv+TI8MrGx/1iKwkckWyBlLg9AmcsxF4uxIp9OM17QVNRh+mFV8fadHy02lQAAEPaKZ4x76r/0/GHvHkHFmHki2kcopNIZTaPamQdbH4v+rFnetnM6A/rP5RhrrSfQyhHp6yp1MKdhE+gUkFvgl3sY9bkNH88s2IFHUoBdK8kPCk67NOgfqaw4BgOwymHYUpuugwZQapxnGSnSS9GruaZ4sevgHnh8FlXxOogQJ2KE66EPIz6kTf0Q+RfWk3vCEVnsYY/rqryQpZX6+E10lRdL4SMImas9Kc6n/aSqdwzQ2wO9PJhKzNKQX+FhtcTmExLQXi3q87NUQPs1s7E10WGLyBKPyhAb9lGCRRSdKJHwie0W4SsjmfgmMXBZbZ2MQ8O8qAq/bkVU54V9VXyUHXM0/Gq9taPxNFB9ZjN+2sPekWfD5Vgj6XYJuw5zNMXHT3GZy+Gs1FFsQDRffmE9e46QXkGK07WXeXbgxbnD3m2055NGWMH7uS6YjVhtns9kbT5+6BMY nR1hsSpu yPpxhWrnaMn6boht/VZmfoi1xXpLxm/QOwEvpe0fSapGvQNwiy89alieUUWz13AapXULF86ZrxMv3I+AABZ+HQ1BQZlCRVxKk0O7Vl79sIj9SJdqvlTnLJCy5fOWH4GiCKoYPx6E4Arn9XkdTm1QcrL0II4uVwJs8QyHFRhkPSr4vtznziFT9z6OdaYSakEXAUjUWgSYR50l8hK11sE9ktwcAQGrkE5pnILVQPDUd96Vhzyvbhc7g5SAauSofzFMYr+Ek5sLCAsdWoGPrss4So7Wdp3YvdsEcgcwZud/WrY/NkHK/kDpomqcWQX4xztckDDmQoaoYCQvfOFqHASTXbv5fV7o6Ql4FFiTxPx4T0xKpDsU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.391623, 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/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); > }