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 10B1BC27C53 for ; Fri, 7 Jun 2024 09:00:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CC566B00AD; Fri, 7 Jun 2024 05:00:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 92DDE6B00B4; Fri, 7 Jun 2024 05:00:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7CD8B6B00B5; Fri, 7 Jun 2024 05:00:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5B8906B00AD for ; Fri, 7 Jun 2024 05:00:55 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DD709A0309 for ; Fri, 7 Jun 2024 09:00:54 +0000 (UTC) X-FDA: 82203497628.11.CF8F553 Received: from mail-vk1-f173.google.com (mail-vk1-f173.google.com [209.85.221.173]) by imf23.hostedemail.com (Postfix) with ESMTP id 1E14114002D for ; Fri, 7 Jun 2024 09:00:51 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YuLIJbjy; spf=pass (imf23.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=21cnbao@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=1717750852; 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=DBcoLUrX2L9eb2fV5NkylUMV+gvpxQM/JqT0hm0OtKQ=; b=45QVmR2dCqGcafaotcEFrgfEJFUXA8dwfpdykxyqWwsU8wRzqjV7QpNy7t0C9ytuerjyeK L8iWMgP4XCIP3bDIBPnuxS+5r7eLv0eCIHgBxUEESVyv/eH3gN1xXW400ALuUjkczochu4 DHIz6Ey3q2z2wxxgaHiU0YRMiUP3M+0= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YuLIJbjy; spf=pass (imf23.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717750852; a=rsa-sha256; cv=none; b=v4KWP+A4iWWP2+5vHYDYj6M5nqWYSCOwEpzef3hYWN5EH4E4g2isxVbF9lOXa6MWprZmXK nQugDomGCnRHECMnjXnQIMordrHyYsrvM9AftXm/hxf4IskemG6XxpZ3LKj6BVv/59XCft REX8qxejr9mq66vFXBxUomBbVrdFbE8= Received: by mail-vk1-f173.google.com with SMTP id 71dfb90a1353d-4eb02c0c851so685968e0c.0 for ; Fri, 07 Jun 2024 02:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717750851; x=1718355651; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DBcoLUrX2L9eb2fV5NkylUMV+gvpxQM/JqT0hm0OtKQ=; b=YuLIJbjyHeNo3LiY0hsp+tCxinRX4bY7wWFJw1Hasy7noO/Yr4jQyXftnJFAJoV8wH QmlPtAYFkDd34csfr6VOsj/xdIwMLbBxXEG4hesiuO6OzYlBBTp50mi6/+xFqwBTkjPl udJ7kaVT7odqtbU4BpbW23x2DP0TQm3KQqkI8R18pqfQKnfBi6uHsmbyhw2SqimeBHE+ 7HqnVuHZx2hxH5y+FPMSBEzr+K1LXIPCLvv9KY/YQs6X4nvuEgsFmzzRHgKEWb8AIM4E i/XTLKUvCQYrDFiz1aVrHKFQYyU8rY1g5XcH1+Sl+uvBaBP/s1/9Ou/M8MVZa6FlBbX8 jpfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717750851; x=1718355651; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DBcoLUrX2L9eb2fV5NkylUMV+gvpxQM/JqT0hm0OtKQ=; b=r8gtH3uG+un4ntl7RY5VMWzZo2Oz+6+o8wDs0MJKp49iko1yY23jdC9pQe/5AjxRzN DdK+uxmJ2L6AWX2IcF5kthlV+KIDlJXGV+BF+k6HXSU85fEiAqkGQYGiyRNEBO7IeEv1 gG0bMJLPZf7cNvv0xjA8711T4amvmF04WAKkMHaLjSTWTvFwlZJbSTUR/Hgb1evrmyj9 MMi3zbAAUEboQSNBh1Zxs6zH0VwpoDKblyL+mdK3//5BBBCVwfi144QuJpT4bhShMBcr xcSj3X8yVswp8jJkzEYR/1zKExAMyxHBMrSbjeH0EENc2Wmb6YSHOi17cDtKhlYPKPFm qKMA== X-Forwarded-Encrypted: i=1; AJvYcCV4GIS7zqNjUfc7a4JB3H+5xA71JdvN3uEPfDiNAjOiY2TGWY/lsGJwU+TAVrlNdBTBKZrCpHecdr9nAMI0ZyGwNXs= X-Gm-Message-State: AOJu0YznRCYZqz5eZjFlikhOEcYyNwGO5J2ZwSQAaxNjJa28tNsw46CB 6yZLW37C1ZcFz9f+zu2RO+FVvc+z5GIpLy1PDzojFC7KDvxY9OO9YY9P3am5D5z3tatL1bd5Rjm cPyY7mUBp1cwG5X+eqr7heDgqm84= X-Google-Smtp-Source: AGHT+IGLUmk2eI7NKtebudys+AdNxQPrEw0y6t74Brmd9i82lSeOm4DST94C+ok3UcTEGRrcETFb4Cjpiqg67slKY/4= X-Received: by 2002:ac5:ccad:0:b0:4e4:eb50:fd57 with SMTP id 71dfb90a1353d-4eb562543bdmr2166514e0c.9.1717750850115; Fri, 07 Jun 2024 02:00:50 -0700 (PDT) MIME-Version: 1.0 References: <20240606034016.82559-1-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Fri, 7 Jun 2024 21:00:38 +1200 Message-ID: Subject: Re: [PATCH] mm: introduce pmd|pte_need_soft_dirty_wp helpers for softdirty write-protect To: David Hildenbrand Cc: akpm@linux-foundation.org, linux-mm@kvack.org, chrisl@kernel.org, kasong@tencent.com, linux-kernel@vger.kernel.org, minchan@kernel.org, ryan.roberts@arm.com, surenb@google.com, v-songbaohua@oppo.com, willy@infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 1E14114002D X-Stat-Signature: y177ass1mdaa5rqedss1auhaph1wduop X-Rspam-User: X-HE-Tag: 1717750851-557595 X-HE-Meta: U2FsdGVkX183Yu4YAW66YHu1jrpfmRmgsTFn10BFtqk0uuwTPlxjp5MyHw47sYgwdxu9AfOaMj/EaTp412eJEVOSPQ5A3QJDyFzfyvNw35roLv+rxNW0RPW/XsfmrkSiw6tIF9YMbmi30bQRm8kqzmXehJ4YZnW/hykEHxVAqEKuBYeiuZQxrLY6d+PxTh5IchzuxrrWzx1vqo+6XJh0h9vZn7NhCT6xnXoDAj/bWTHmlFJ4k9aNrRXrbIoHXmF5Nz1JojJ3PcapfbRzhdrgALDpDU21z2lRbDIqelkOSVFlo55zMvGeL8/XHbcsf6MlwOTQrM4HWru1BE+k/Nopb/Z4EY43KhGXxpUhALIvcN/T612+x26U41QVRh+k8Zm5efRAaybdQac6/u2PCiglvKFgc19KrdAdznMP39a1cOdWBzQfyqs656aiIacEV4eFANyGo2zfENzJ40hLlCn2meZFeFlAPKZHurZ4qgl2wFTEDIdJ0P5eRIMejOOmyk4ULmo5hbXPt8o/ivl3ezUidlMolXosR+k7iENiWeeJ8lCx2knvopGqgxWFPKmYGu6gPUJNeDwTQEPwm+XPs+wQEPcetvA8mj184rTRxndYdCIg6IbYUgsPmnfSi0xHcUf73fKhny1VLkzrCA10hXlNDmxp+IX/gxSQBoHcJ0fNzfgqQ06QJyevPUWE46esxXWVp9En2u+fTUsEfEbt6POsaqTwv2Buy4qT2dXEK/Pxhcy7dX2rJ6pBGE50ANdyIlMDHvEC4u3p8jYiLwjcI/rQRAmqyyuWs3M3yq22aHa1w3RQGTZSEIgiw+61SIYjjm07BXHMyX66G+KyYQRYzcJrQ/w8gDElWorYoVF61alZOlIU6Wy3Tk4uPAWnwKk3beBIkwA2NmYIVShstSfFg2xo8lN8MSCEKIeu9brz21zakUHOA9j2xcyWMDPMlcylagjtuHfeKMkMLlnOEH0yJih 6MYPGtS/ kR3RFn7RZOD/9PP24L7CVoJM4MnAo9EgFHhKtWHEHufVlUc2sNfnzatSQ/yluRdhFO9W1l1XC6kvo0StLoDXmSKTCqa0qEt3E/CBYZX7oKzw/hjge8XB/J0/YAhaQ741dCjcgU+pU7SHzG4AHqSOdcvke3TE9Qdw0tXkOrDue6IaCfy4cAfEobj38YBRVO7JHIl87R38LdkGhk6kuJnz27vmiYYlL4O0Fh9djyGnjqaXW8SillyHxzUYtI4OeY5jwZTmUkjkGbCoy4QGQSXUJByDawDFIfZW15cl3fUUMdbhbpu6/7ExmgtXhpyWmb6ytBRvhfzbmNQRisV6NPkmZn1a+uT3eHkVvrdEEIl3hWVGLbr0CbmL0v3uZj7S7PO7t7/vWDYzxt4PJVsvcSm1AdX2NIdhPGf8gYra0MwUku8TR25h8tk1ULewWoqGEknW/zskSsQSXJy1/VW5PgLyCEEZmdC991OBeLnAtPh3jMKOu0ZQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, 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 Fri, Jun 7, 2024 at 8:46=E2=80=AFPM David Hildenbrand = wrote: > > On 06.06.24 05:40, Barry Song wrote: > > From: Barry Song > > > > This patch introduces the pte_need_soft_dirty_wp and > > pmd_need_soft_dirty_wp helpers to determine if write protection is > > required for softdirty tracking. This can enhance code readability > > and improve its overall appearance. > > > > These new helpers are utilized in gup, huge_memory, and protect, > > and are particularly applied in do_swap_page() to optimize a > > softdirty scenario where mkwrite can still be performed. > > [...] > > > +static inline bool pmd_need_soft_dirty_wp(struct vm_area_struct *vma, = pmd_t pmd) > > +{ > > + return vma_soft_dirty_enabled(vma) && !pmd_soft_dirty(pmd); > > +} > > + > > +static inline bool pte_need_soft_dirty_wp(struct vm_area_struct *vma, = pte_t pte) > > +{ > > + return vma_soft_dirty_enabled(vma) && !pte_soft_dirty(pte); > > +} > > + > > Should these be "needs" ? I tend to like these names/semantics. yes. "needs" is better. Glad to know you have the common liking for these names. > > > > static inline void vma_iter_config(struct vma_iterator *vmi, > > unsigned long index, unsigned long last) > > { > > diff --git a/mm/memory.c b/mm/memory.c > > index db9130488231..6307c43796aa 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -4322,7 +4322,7 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > if (!folio_test_ksm(folio) && > > (exclusive || folio_ref_count(folio) =3D=3D 1)) { > > if ((vma->vm_flags & VM_WRITE) && !userfaultfd_pte_wp(vma= , pte) && > > - !vma_soft_dirty_enabled(vma)) { > > + !pte_need_soft_dirty_wp(vma, pte)) { > > pte =3D pte_mkwrite(pte, vma); > > I would move that into a separate patch, as it's not a simple conversion. > cool. will separate it in v2. > -- > Cheers, > > David / dhildenb > Thanks Barry