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 BDEF4C52D6F for ; Wed, 21 Aug 2024 16:24:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C3966B011D; Wed, 21 Aug 2024 12:24:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 34C706B0148; Wed, 21 Aug 2024 12:24:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C6966B0149; Wed, 21 Aug 2024 12:24:14 -0400 (EDT) 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 EFEB26B011D for ; Wed, 21 Aug 2024 12:24:13 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5E1C340ED3 for ; Wed, 21 Aug 2024 16:24:13 +0000 (UTC) X-FDA: 82476774786.06.12CDE60 Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com [209.85.217.46]) by imf10.hostedemail.com (Postfix) with ESMTP id 5D428C001A for ; Wed, 21 Aug 2024 16:24:11 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WbcS2boI; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.217.46 as permitted sender) smtp.mailfrom=pedro.falcato@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724257435; a=rsa-sha256; cv=none; b=X4u7Sc6b3QxkCznoWF52GMPslifxRVgt24A4j6vO1X4YV6/7du/WiP+i0T4LuD1ASv8Rl7 JtyZBfdPxIePRm9v96jCiqXloeu4zyziiEHKpaiX7I+2XCBRn+9dzydFMe51t+YjJfB3Oe Bcq8YqSKHTbd4quVnErtG4NKgIKzUN4= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WbcS2boI; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.217.46 as permitted sender) smtp.mailfrom=pedro.falcato@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724257435; 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=A4rw0kESlG57Y5Fdr7JdXFUPwDZdnWPiwRkEaByWok0=; b=7KCHhTMVZkIxE+JqsCFRGbclhKz7LiGJD5C9bqMHqpXra5CkfOKLCHTN4OAYz2JrpgM/BY dswX9OBfcdTVuNmY4iesGmwDJ+C/pugL2sBUcy430sQsGlCbH62o/wyVS9cylzNp/ryV0J v3U311D8OnlwdNAXaudztIWj9ij6KnA= Received: by mail-vs1-f46.google.com with SMTP id ada2fe7eead31-498d0268541so539611137.1 for ; Wed, 21 Aug 2024 09:24:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724257450; x=1724862250; 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=A4rw0kESlG57Y5Fdr7JdXFUPwDZdnWPiwRkEaByWok0=; b=WbcS2boIsLShgYJXMWPqDsV4ciQM9kJAyHp+M7LHjALZrD2XJW5tctL4I8OwgaS9vb DyDK2v1r5J+ybbrjyuP+U1iXWl8SvKGRgo4eoUf+yG2ar5i9ycTjzKRfl39JcfM5ZXvU uh32gZdPzqHarRN5I+z9TFJ8OXmgqNjNfI1IiZdPd1+CBxValwR2fQKkW8LsqyDlJ5AH SJsBGnI3FShaF0AJkwmx9+ieGktC7NRbzptzkQsSB31XwhYxMqbL7NLzDNNuYiw9hje1 sGD8rrUDJCxZq1tiAnl8/N9lsJVaqI5xxcOfJn2G9ny/w0KN/o9a4a8XRL6P49JcX37T Anjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724257450; x=1724862250; 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=A4rw0kESlG57Y5Fdr7JdXFUPwDZdnWPiwRkEaByWok0=; b=aEke/3AQwWWQXSOIeOENGBA6G28B4PQIBAEd/nmcTJDGO5wwJrAEw0R+YykEq9EAYt yuhn23Cji5OKqjRSRBGQgVyb0N2EASOUgM3KRfyXOyV7/f7mCdf3dxRvvSNUf5Mf9X6Z 6/ndvGGckxdIc7WUlxVGAkWVDn4y6CzHU+ZtndGt+EPlSxDhzKT6mujeThVabZO0HYvQ ujZuwXqGm7HjNIUpyfb5CpjZPtMvhq2qLR6QiExVBs0dbreNEEiEI2ZLK/0qI6tkWno2 FprSKw3nidLO/zfqzgfnt41lhTTKwp+zRdfwXO1gz/awa4kSD1blIo82Q/DFidvpf+ti MiMA== X-Forwarded-Encrypted: i=1; AJvYcCVCjtoe9MteFDkrmta1Zyq3eZjZaa9fwg5TmeV3F3ZXEEltrb8edcQBnlzQ9kUbDhbZbhljbre82Q==@kvack.org X-Gm-Message-State: AOJu0YyjmiKKahuCK2I2acDxb0AKOyqIFQcfFdm3pit0sM/cVEuSiP3z lyyrofa9nRNCpuXj8escbx1m70jg8LpxQ9qz+rw3h59TG0lmydO31cL6fwXKWThSa4bwpxMD0wK SS/21ysAin7JL6Gaf6iuxOhDlf/s= X-Google-Smtp-Source: AGHT+IEy45XbJAJubTJbbB0aZf//WXCj+R+q0+ltxOLZhaiEHiR0kKdfXVuxqBHWiBz4U+YtUqyXR2YPlBdE2+5JrZY= X-Received: by 2002:a05:6102:cce:b0:498:9c57:7442 with SMTP id ada2fe7eead31-498e2235acamr255336137.9.1724257450099; Wed, 21 Aug 2024 09:24:10 -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: Pedro Falcato Date: Wed, 21 Aug 2024 17:23:59 +0100 Message-ID: Subject: Re: [PATCH v3 2/7] mm/munmap: Replace can_modify_mm with can_modify_vma To: Jeff Xu 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-Rspam-User: X-Rspamd-Queue-Id: 5D428C001A X-Rspamd-Server: rspam01 X-Stat-Signature: roqx3rqadpuh81wg41835sh37y93jund X-HE-Tag: 1724257451-575184 X-HE-Meta: U2FsdGVkX1+4H6gz/CKM5hP3w9MJHqU70RVsPKJLmWNqkB7lqa6AcUiuesnLnR9gUj0v6uZgm1YeqDNYAxBxokPWaLaslo59mnlgN5J2JZbjoBMBYv2c/nUdGpWu251pf/KDF8YJ679KsiWJ8gcfocIhWrsuFGWBqP+iukBwNKVZZMn+ysr9uIqjoZMBfIg91Y+bQrajqLNAX98D8hPjIzy3OHUrvkEqaBRf8Ar5Xg8Zs5LoSRdqWC50NnUfi7d1j0BjjY0LOQwzAItKGPl8kWRmXKoK012Z80FDouQlJe/1XwbT7dCS/xEfbJik8S9lFstHaEaY0M6Zh6KVbftOBJ1EEtfgZajoLu2862Bv6l5LICukPCSXuZhvE/HIG8aplDYN3GSXkyTl0zypRFDnrVTFEET7FsmrdwsOVPTXGSt776Oqnt7f5cdo35BmpJCV7Y3Gw97MrPHlaq0oIgrAnHgHWxmQTDas0zsB2jgU5ylFb6Bpa4NIAIfoeVs/srJuGdYxA0rfmsc6fEbXL3rR5aQzP74vKoZa3k4T/lulBo9V3t2VCGPC1aMPrnzSQDSdkxbncNvJboO5a9eF3Ghl0X6v/Y06kqkCuNsQzn0VqkOv+WRUZUpJQDzlOtT+D2ga6+aQYMRRk2KlBKq+pLu2hGLl47vmvkRpNb95f4EaRLYp2oMedmYwzkqgiQY9SecBSGrOzkmHbxQ2hRsSAKHN6dyv8rFCQp/8CqtUTfaTOy205NR9s6ZQGupNt2r32TT+zBZYLVaKh25JMnqecuckv0CAEfdXZz3mvh/Dov9uWlLFMLoxJJ6nw2TnhwGzksZFXyqR5U3TnENO+yQDoxs0RHZj/EeQpzaFblQB/UXaud1wcNAC8cPBvSqBKEIJ7EkbwZVJskLFCR0sOkZE+LejT2Ux2/QbDz6nxjdXtnv5vcoxR2SMqo7MCf/k1yrAVAA6yV56xP/KyTMYx0uYhxd Nt/vFpbe VDvCw2asrZRoE+qY/K7g5wy/+T8QjXJDPafTUD9PAis68uwgvNdfhZ774X02sdxMa1/Pya+jBumnfubf2hQIRaYxbdFTpgVP0mMZSBX1wXCF+FSviVRVFKs2tJRh3v8OFCZUU3d+xtgTu3Ge1yHybpmF7EbPkJqcBltiFwESF8aV3tX5/6rT0MbSihxrdcDZ3VOKp9kIgFT7awt+wNJvKwSKcc8GNjftbATeLZMxCt5CrXu/JavVZCuVN1XV6LPkiEE1dhMbxnjnweblpk9E7bU4iWEFeKHAmj8qsNHWlV1TUQsYT+l0z4KFxFhN2Olme65r6AfUyIowC4hltw9uzVNrGTzyKAb9+nZa59pzNyImVQYduL8+NHRgOeYWs5PVcF9SEDvCo2ZgDwRJat4sQSnbAvQcHmStnM7GCIc9ztGI8J2P9MfBmK76DJy8tRz9NUfiQUa1bNiqY5f0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000805, 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 5:16=E2=80=AFPM Jeff Xu wrote= : > > 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 entire > > range is modifiable. This can be done when we iterate through the VMAs > > 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, stru= ct vm_area_struct *vma, > > unsigned long start, unsigned long end, struct list_hea= d *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. --=20 Pedro