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 74A1BC021A1 for ; Tue, 11 Feb 2025 06:49:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB18B6B0093; Tue, 11 Feb 2025 01:49:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E61E66B0095; Tue, 11 Feb 2025 01:49:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D02506B0096; Tue, 11 Feb 2025 01:49:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B1C656B0093 for ; Tue, 11 Feb 2025 01:49:57 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6BED81A10EB for ; Tue, 11 Feb 2025 06:49:57 +0000 (UTC) X-FDA: 83106738834.21.15F1F34 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf22.hostedemail.com (Postfix) with ESMTP id 922C3C0007 for ; Tue, 11 Feb 2025 06:49:55 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=T8BrT0oT; spf=pass (imf22.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.176 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=1739256595; 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=jQOokKLxPPJM6wkKIyHNLd9+Pp9b+5LPfnGgoWXuDn0=; b=AoM7Go3jdwNnFzmjogcyaHA6yOi2agC67vQ1eSfe3P1CV97DFQX8TAhuuSmww+a5km5AUE vPzKFcwp+1SncdwGSZwEECkCX2JGUTGmRq/dkaJhn+jjLaBIA1wOrZxComSiXGI0LfnSIc ZxjqILsKf5jH76+jCnjxczoDyMO5ZRs= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=T8BrT0oT; spf=pass (imf22.hostedemail.com: domain of richard120310@gmail.com designates 209.85.214.176 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=1739256595; a=rsa-sha256; cv=none; b=7R0ITFqv0507VEQw05g3zjxLYbSWkU0sVPHphErczbxKcDgVjlz/lJ7n/hgVNxwSFk7LGl H3z3rBGqIb2A7VJjjia2wtJAYtf0U9c8cmNa+m6heT/VUw3hmBeaFOKw6/kQ4pg6ePKCyi ZeefveiXueT/JgySxF48QlMYCz8PZeI= Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-21f3e2b4eceso97872465ad.2 for ; Mon, 10 Feb 2025 22:49:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739256594; x=1739861394; 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=jQOokKLxPPJM6wkKIyHNLd9+Pp9b+5LPfnGgoWXuDn0=; b=T8BrT0oTIhu14NKMArUrzwUQjr308U3fQoC8Uu/st1ZHrVzsBZK1gw6mKckvQwUcYS IbWc356+SfXRu7oXcOWtNoddgzPZSY1OWj1td39dtDBuHVNOyf237yS4IemjDCZCNd3C 3+xllFA0DPBFLcjRSLOARwgP493eje/0PkPdWiymk21PzYt6FYTEl8IZ/LnrqGOuUe3O YFi8Q7ScVc2KJSAtNP0fTQbJvwcU3EQuAssr8ND9TSwv8GnfdE4DKLYFSHAYhmkvjzrQ kej8gvS+yXmeW6hshqA0Hy73WHFdornyGKiHgjN+7vgw9PBYwKpHZ52VuYMIF0JqbA2t 4l5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739256594; x=1739861394; 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=jQOokKLxPPJM6wkKIyHNLd9+Pp9b+5LPfnGgoWXuDn0=; b=jIP4puGORVzsoy8F+ZtwvXPACn2JxbGBcd010WWkvFPck8lQxKbTGyeeskKLsxFWNY bgOkjNiWuGTmVa09Byho6/N6pbYieweh458cH4OYRMopsVQ66c8wQ5CDaGYDWKDlkuFc 20GStrgyPsoYHsAFITwJDIGHQ4qlm1KwgDTKxFXZB7LvYaGPorLVcrA27meESfm9SL/Z PyC7B+huqSyeK3JgoYoQXFc3G0ua8v0IWHl2zuAmWsnJtK1D7u8HIo6pBSJawFGfqpJx CFFDI8R7Eb0kFgjEym8gHh1CYwtj7JJAw6ESM0CUBBmYFh7VMhQVkYoo7erKKxhOIb3m Nizg== X-Forwarded-Encrypted: i=1; AJvYcCXGgAsHhViAyNeb4oC4zYGvKIl6rIHqhPxqdNtE4BHh+Tdbiour6iIk4P5HJuj5e0tSIEWXHichFA==@kvack.org X-Gm-Message-State: AOJu0YxvD7p2ZiKfUSQX1L8jRjvVfS7VMCHN1tZDE+a5McDT/GuigAzZ HuwXiXrQ4Rzu2JAtOdlf+QM/pR9KXu+iRGDp6w5CqJoZFkY4A2af X-Gm-Gg: ASbGncu2PRIxppVCaPTmIPKbLwGGsUiF/TrwIuwEXgy7H0/pgTPDnqy/mBGTKBqCReb oo8ANz9At1bedtd3msmBoP6qR+NLthnfk4YYtOGelZVIzGInqOkW99cTDL45YI/8VI7ov+elTnC VJP1rtCrjsm8uXZQHc3UvHtzM2LCFk2dkGUK/kWedJ1RE+C/6u17e55En0FV3Zu19ov7to8q3Y5 rxls2hTOcligBJvQ4ai1LErv9MteHeLnE9abDk1TWDDBFOJT92sWoykVmI5dyq71gQORTnouFuR Yq8DqLsVZOSSkV0+QYmXKPl5EjBHltcK X-Google-Smtp-Source: AGHT+IELNtolGFaYMulFUWYPjjW//WyLogewZKFix2NRrSze94DwcLWMxwaZlSsSi+L9DGHnQVbi/Q== X-Received: by 2002:a05:6a00:91a5:b0:730:7771:39c6 with SMTP id d2e1a72fcca58-73077713aecmr17656232b3a.8.1739256594295; Mon, 10 Feb 2025 22:49:54 -0800 (PST) Received: from vaxr-BM6660-BM6360 ([2001:288:7001:2703:fb40:c00e:5259:b412]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7308a05f754sm3552633b3a.153.2025.02.10.22.49.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 22:49:52 -0800 (PST) Date: Tue, 11 Feb 2025 14:49:47 +0800 From: I Hsin Cheng To: Andrew Morton Cc: zhengqi.arch@bytedance.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, jserv@ccns.ncku.edu.tw Subject: Re: [PATCH] mm: pgtable: Unlock pml without branches when !start_pte Message-ID: References: <20250210100948.312130-1-richard120310@gmail.com> <20250210163736.ed1c93a44a47e39820fb8d85@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250210163736.ed1c93a44a47e39820fb8d85@linux-foundation.org> X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 922C3C0007 X-Stat-Signature: 8rz8ep4auix3q6be3p8ih397z1x5qxx8 X-HE-Tag: 1739256595-778152 X-HE-Meta: U2FsdGVkX19AheSQkxmr2hVcYmtPG0rXuNI067mHfhakO0h8YDhQhSOLixAv+ws7O0EVZXyKOyAWpHAiHFS14Pu8jWedT9PnguGFBtxRRwM9hoE4bpHvJZluIiB57lUo0/mnbK8MxdM9PIvOaY/rniFSdII7a243tlO0tfXBuCXYw1mKE1qXRDnnV0AckseWAxP4Zf6vuRJKkTzOZl5b6xrhJ8CNiXpUATP+Up6/U5MP4c4YyfvIGLQXqs2t3GwqXQumpqReet5exi9cisfr7lqw7cc050TebgWbyqQLXFlUs6R9Z2pP98uR7Yioo4TvZwipXtMB9AV20mlwXm7RqTi+vZvWtPohZiLIH2bgzqVikanapiXbARimlVn1Dr9NxHh4oExyjgSLVl2nuMA27wIF1hn1ERa/YCbQtDNwyxkbdExym7vX6QpMF/CbqYHM0d4pIR6zUcTVLeXfs0Q7tURP3dp9le268Fqf6rNFw/8MmKX685LyYei4ipNHt5+FibmoDmek2jX+fNsmV7QbE6g8hnGBI3CDrLq7cQzix02rxIBRHuYB3z97BgqwsszEBDYYb1B0pUXFalu65ESIB4ucErlc2K/bZUujq/PselGMkkvqZklIs+PMMOoS56wPCTnpJQYEnqg2/xoSd8XGD1PhyDtL2DnIMn3+zSYs0688yYZTDFtnBKhnL803Kail9dUE5jAPbTmk0iBZsFFcvS+NvVV0nldFvo7n0yHbM4pLQgoiyEsBLzj82yxjs8K6uJj68Vsl+JYb9QOv8oLhl5lz2WrzpB1VdB7TY6jKsFRL4EvZhy1Lw7TpYw3bxAPHgcQpiYpvChU8pAYyELrJzAtUasyjSdd3SSBxuNeGj8fmE13qr7Yu+J+uE639RZ1iPNz9RT5q9YBvyCljAv//OwxHk/eiiLR1l/KWlTeyJc2FOniH4Lojwy0KvyHR42MqqPZpm5lXW+8QqetLAeu AXMgBEYi UaxlIs9m0f3sa//8ukX+uUz22s3Cn/nHK7qz6IC8h+JbIv1xwmVqoo+5h/UlnlpBtpc69OSrXh3Q+BRqXJ4hkGbo6QCWgGqJlfbNMfP/vzyYT9/YAS8iNLnwkqQCZfep54+vKXQE0m1qH4LEy5O7Tzq2BQWXZNfU9HLBcWYPOcfv99IMEgvCrsrGPpsCT++cAttBhs+ct+R66c4D9Pcr1mXhaeyOHiVhm287QJ0HLGchZVk/jTHlHZk2MwzCXIVddcxZOgxJb1yIDIkHQYRUJpR0Dq8JtLA54JTSelQBLFtRnp7VC03kxEhxo3UfPUksl46GU+qSIf6eUlNDuP8cjTH3M0iNDvo1myfcCU2Z5L9QcE72dvTVBGj9QW/CHG8QF7CR2fuWgCZjbjZwgVM/Ld1YVObJ9hb3DUE6QAUPLrSC2uLgi1E+VkMsLTrayxKFmCRmvsUgCoG6LYnV4cPZ2hUOgochHDwjrvRBsVBQ0VoQ+kg3mEYP4pbcuX76EZHop8dm1mrHvWA3M1Qa15W1YUP6gJZ7B1+QIP9PH35HIsL0Vmfw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.007318, 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 04:37:36PM -0800, Andrew Morton wrote: > On Mon, 10 Feb 2025 18:09:48 +0800 I Hsin Cheng wrote: > > > When !start_pte is true, the branch for "start_pte" in "out_ptl" label > > section is surely false, and "ptl != pml" must be true since "ptl" is > > NULL in this case. > > > > It means both branches in "out_ptl" are redundant, only one thing to be > > done is to unlock "pml", make it directly unlock "pml" and return in > > this case. > > Hopefully the compiler will skip the `if (start_pte)' test. > > Generally, we try to avoid multiple function return points. We could do > > --- a/mm/pt_reclaim.c~mm-pgtable-unlock-pml-without-branches-when-start_pte > +++ a/mm/pt_reclaim.c > @@ -43,7 +43,7 @@ void try_to_free_pte(struct mm_struct *m > 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_unlock; > if (ptl != pml) > spin_lock_nested(ptl, SINGLE_DEPTH_NESTING); > > @@ -67,5 +67,6 @@ out_ptl: > if (start_pte) > pte_unmap_unlock(start_pte, ptl); > if (ptl != pml) > +out_unlock: > spin_unlock(pml); > } > _ > > but that's really ugly. Hi Andrew, Thanks for your review! > if (ptl != pml) > +out_unlock: > spin_unlock(pml); > } > _ > > but that's really ugly. I agree. Would you be so nice to suggest some test method for me so I can try to test how much benefit we can get from this? If the case happens frequently enough I think it might be worth it? Best regards, I Hsin Cheng