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 E679EC52D7C for ; Wed, 21 Aug 2024 16:33:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 663A06B014B; Wed, 21 Aug 2024 12:33:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 613816B014C; Wed, 21 Aug 2024 12:33:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4DAC76B014D; Wed, 21 Aug 2024 12:33:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 2F9736B014B for ; Wed, 21 Aug 2024 12:33:25 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D3408140EF5 for ; Wed, 21 Aug 2024 16:33:21 +0000 (UTC) X-FDA: 82476797802.27.B1AF24F Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com [209.85.160.54]) by imf15.hostedemail.com (Postfix) with ESMTP id 7BEC4A001D for ; Wed, 21 Aug 2024 16:33:19 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=fxhKUXSx; spf=pass (imf15.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.54 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724257936; 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=btFwl/YBlJLOoac7syXq/zvfozN6hWtuf8J1II+3jGw=; b=gchk6ctikf0eufad2Rv4snaZ0Xf/EWIRItGk3KRkY+Y1BnAB1NkJVliRrUVSlEzzR6CWJe gNeFLf/5xpfh8+hrFwAJPJagUZBebHogocsIngypFer2U6uRpo3I1cGAsQN9lfLz4z+dlP sTLJM3UzJfTlUyuRvDP5pQ6ps5TGWJo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=fxhKUXSx; spf=pass (imf15.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.54 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724257936; a=rsa-sha256; cv=none; b=kpwH45n1c/JGWr8X2UOVorE42HJNCBnPr1KS/qtzwp+MYe3FNrKv4WhGUVTO+1Y1d+KR6H pY1D+IFjrT98jBarb1yl/kHySG2NfRtu0Y99lAoHwFXC8BnwRtKYDpkm+xz4IYDAz07AP2 umjbGWYgfQBE8COEmn7UbRLAKDFtejc= Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-2610c095ea1so182189fac.3 for ; Wed, 21 Aug 2024 09:33:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1724257998; x=1724862798; 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=btFwl/YBlJLOoac7syXq/zvfozN6hWtuf8J1II+3jGw=; b=fxhKUXSxVx6HKBKdL5dGencVJckUu+NYoYsX93CBFUHhHx7Deg7CkKy/DKoFPH22/g lLSK8GO8fxmgOHSmaJy5xS89tGE7cTYdIE21OQlYAmk2tRUwgBTx7+RUDnW+B86Id6aq kNv17n9+8bYzgMFF6cAadcXqrppCEDnkxQOOM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724257998; x=1724862798; 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=btFwl/YBlJLOoac7syXq/zvfozN6hWtuf8J1II+3jGw=; b=WWm8F2Er43U/cYNpsWsMszDJ1NvJNJ6z+vsFtixLRpWNd9G4QRYzu30H42FdYz7RSP PXE+2fiM0WJL/zcI4z7VwSCW6EmBUUh1tFW5MBfIam3AQhakXKG7zkMWhbHDFUlGMA4w qIQb8GIVELsd045q4ZGRvZMHgFnxcyAbZ4K4VLvagXWHeKLrOtWwL2TNRXEuIsXNVO/P OAHSKgK7DRrQYia59VP0EBZihKPOlEOaEbtaPiLtHWbWGkVXu/HBxoM+EuNaRE2VXdtB cPHENIIXzfsnPIO91X2Vv58q++OVBFxKYp0oo6D+3brhMBl6WkOQVNx+fqgKRbYpwb7g ugfg== X-Forwarded-Encrypted: i=1; AJvYcCUGXfhvFCXE7pqxHpDljxy5rWStCwNUQHSGzV8fP7b1hKlNwnq3rq/oo+ZKD2dYGMNwH7R0bDFfAA==@kvack.org X-Gm-Message-State: AOJu0YwdC5Ivzw051N6fsweaEjRzWQgnTlUJhv+CGEGdG8wAXQg1zGEx zs+annNLLBJjWYNYqWXMDYUmPCg1zCHn4sa8EutiyQ+1udpVBcDn8uMvwjJQdTnSdbOMIeWdSYP KDtj5DrqzeQv8ZVqjhyBP49uIKo4HZwtHCLCu X-Google-Smtp-Source: AGHT+IFVyWJzyxVOM2uIsew0fQaxaT0UUl9jGhWhC9s1rR4wF0WG1EQ8cgDA0SZ1YiRUdYc6Dx8TjbX69jb91BGeF2E= X-Received: by 2002:a05:6870:d8c7:b0:260:ccfd:b26f with SMTP id 586e51a60fabf-2738be39fe5mr1743941fac.6.1724257998413; Wed, 21 Aug 2024 09:33:18 -0700 (PDT) MIME-Version: 1.0 References: <20240817-mseal-depessimize-v3-0-d8d2e037df30@gmail.com> <20240817-mseal-depessimize-v3-2-d8d2e037df30@gmail.com> In-Reply-To: From: Jeff Xu Date: Wed, 21 Aug 2024 09:33:06 -0700 Message-ID: Subject: Re: [PATCH v3 2/7] mm/munmap: Replace can_modify_mm with can_modify_vma To: Pedro Falcato , rientjes@google.com Cc: Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Lorenzo Stoakes , Shuah Khan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, oliver.sang@intel.com, torvalds@linux-foundation.org, Michael Ellerman , Kees Cook Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: mzig9ofntikozwy3bn971ogf16q1bfu4 X-Rspam-User: X-Rspamd-Queue-Id: 7BEC4A001D X-Rspamd-Server: rspam02 X-HE-Tag: 1724257999-858251 X-HE-Meta: U2FsdGVkX1/qtL4M6ViHIAk1WhWNYIioa1v8AHAf3XUtnGrThCKtuk3njuny1VijMZVGFt2YBZAO3UB+Bw+KqAnZkOUqqonLJw1LBjN2Ql9ue58TbSEygFiEM2UU185ifpmmepVegCCyzlM0ZT1ga4ub6FB3I+ZWT3Ty/vYOmF/DHZ9T0kCACC9iZvMw6FtFNtDdCfg50zp7lhqYkVgUKEoPPsqvFaCWOvc9etOtG76AuADCW0HUR2hINy07ljiCgVvKyHytV+T2qU12dZs9MiKkrmcri6SwqPLa400eRjdP3tONxaz4dL/S20rXX82sTKYhO1NwKq6H4Pc3gWzH9fGRpkeSSw37FlPi6Lv+lifhkMmOFPoJlzkZWfBfhMXE4xd38ofxYAq8+YvNoQci6SnXJjdaAlZPra1DKO7lbOyzwSEnBuWqmXBeUX5OPtO39DV4NBwzUFsvpMf0CEDGGzCVHXSTyYYDKLDlhECqsfNTYMx9ITWu/aOJRliaMgyqxZo+iN2UB43V9B/bgU0Q/GjcI3JA12HwwcAlgnMCr25PvUhz3VRJRbPiDmnqHciT6FHIhrp8Ao1Z/klULfLkLrom1/ij0ekYyfuMjwG7OxZjMqmiWpQTHUvb3HCGKe5RoqTo0wyh7Q6goKSFq6Ly0GvwcGwytNhPW5jKHmBsQokuNsZjHWCIY7xZ2yw4mmAKLriejN0d4PHypC3JA4DD4aUiVXl2G3hnpfkSCOlRRpa251I3X6+1/VkzVhUDSxfRicKJrDUymHGgUiaun2I2v+PaQahyCK1fywdI8wwFwKPTteLu9k2CB84/BKRh1J9dfbHqnMcpRmrfLnAaN+uTuAX4A4EN5QxNeqP2BhQDDpBcYhNN9s/rWYOji4g2ulqxYWnYRRtNXwgFxmsakKC1OGueBwgjMJG0j4EzzhDUDXjSd+pJ9Tr83119rTftfqzwMngFlj+NoSVf8LmP0hc 8J/cNBEX sifmU40DWNVGi72zwG39/vQDKpOVyFjbdTfJ1D3Bn3XAvYKHUSRcPFHAoMcbIgLgPWbz7FDY/vYPObWwxBrkdup5O+IZ0qQNI+ndNqZiO3dh3mFE/UmtjMdgySZazJ5/M6cgBk3p00+oLTUPWsUPHbtQQuOXxEp2cicp8NCGAbw8ss9sF+ei53GpG9rR26PqzHleXOLezpl7L5GcFs8GQsw/SldVB4DaqbkHg91IYxOoCUIiFfQX813wfAGWaTZlt2iBX9jWcwfx5hYnDwPeAuCRH8ULV7t7lk/nAOB85D0CnTlX/iDJlToue65c50tXJ90s5s2OXwGFUm8Zw7oZjnRpOFpXZnhAWdVDZ0bfKC4ok5tAowZM4Oh6HGg== 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 Wed, Aug 21, 2024 at 9:24=E2=80=AFAM Pedro Falcato wrote: > > On Wed, Aug 21, 2024 at 5:16=E2=80=AFPM Jeff Xu wro= te: > > > > On Fri, Aug 16, 2024 at 5:18=E2=80=AFPM Pedro Falcato wrote: > > > > > > We were doing an extra mmap tree traversal just to check if the entir= e > > > range is modifiable. This can be done when we iterate through the VMA= s > > > instead. > > > > > > Signed-off-by: Pedro Falcato > > > --- > > > mm/mmap.c | 11 +---------- > > > mm/vma.c | 19 ++++++++++++------- > > > 2 files changed, 13 insertions(+), 17 deletions(-) > > > > > > diff --git a/mm/mmap.c b/mm/mmap.c > > > index 3af256bacef3..30ae4cb5cec9 100644 > > > --- a/mm/mmap.c > > > +++ b/mm/mmap.c > > > @@ -1740,16 +1740,7 @@ int do_vma_munmap(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, > > > unsigned long start, unsigned long end, struct list_h= ead *uf, > > > bool unlock) > > > { > > > - struct mm_struct *mm =3D vma->vm_mm; > > > - > > > - /* > > > - * Check if memory is sealed, prevent unmapping a sealed VMA. > > > - * can_modify_mm assumes we have acquired the lock on MM. > > > - */ > > > - if (unlikely(!can_modify_mm(mm, start, end))) > > > - return -EPERM; > > Another approach to improve perf is to clone the vmi (since it > > already point to the first vma), and pass the cloned vmi/vma into > > can_modify_mm check, that will remove the cost of re-finding the first > > VMA. > > > > The can_modify_mm then continues from cloned VMI/vma till the end of > > address range, there will be some perf cost there. However, most > > address ranges in the real world are within a single VMA, in > > practice, the perf cost is the same as checking the single VMA, 99.9% > > case. > > > > This will help preserve the nice sealing feature (if one of the vma is > > sealed, the entire address range is not modified) > > Please drop it. No one wants to preserve this. Everyone is in sync > when it comes to the solution except you. Still, this is another option that will very likely address the perf issue. -Jeff > > -- > Pedro