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 426E0C3DA41 for ; Wed, 10 Jul 2024 16:07:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA6EC6B0088; Wed, 10 Jul 2024 12:07:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C56A26B008A; Wed, 10 Jul 2024 12:07:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B45BB6B008C; Wed, 10 Jul 2024 12:07:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 92CF26B0088 for ; Wed, 10 Jul 2024 12:07:03 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 27B4DA014D for ; Wed, 10 Jul 2024 16:07:03 +0000 (UTC) X-FDA: 82324321926.20.48D064E Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by imf27.hostedemail.com (Postfix) with ESMTP id 5BAC040028 for ; Wed, 10 Jul 2024 16:07:01 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DNsR1KPt; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720627596; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=Yn9Zi1KqPp5aaxLNBj+DM807b8H8qBITowNXvBGV8jI=; b=eCiIqsTnNDBxe79ys4jp7dpa7ENL3wJkfLgF/E6Mv2rEejjjRXNLh0po13bvTQcUZqyM67 bTozcMDZwZ/x2y59QSoYSUMFUHYJ4XQ4a4F8+QxvNeysOLffhd3SLtBsLMdn+ValGAbSWS y32XD1ZHrLSkDscfmJrogfZGcUHer/c= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DNsR1KPt; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720627596; a=rsa-sha256; cv=none; b=FzEJazT8GDhNqMYSYzhHYNRSusQ474mHz6bJf4UQQK3+dpPgntjusLtIyWXEkPJUG+pOw+ 6mgww1+F4guwTAzEcq6tGw5EuigN98XR7NrAiDIT/zDS4aggX24vmjuhcmWwuWJ5E8ZQh9 b96IwH2Fi1skoKxO9CRZEMiUexQ+02g= Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-70364e06dc6so1697752a34.0 for ; Wed, 10 Jul 2024 09:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1720627620; x=1721232420; darn=kvack.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Yn9Zi1KqPp5aaxLNBj+DM807b8H8qBITowNXvBGV8jI=; b=DNsR1KPt6FVjOTRhQ182CuU07rSt2EuB4glRKD7VdiSC5RXnH2Ksjjc7UJtBMVRnJ4 ipRpzeSR6pQDn4WqrLKuX5nVlNoMZuL749ioCf4YDRnim8IUlEJk3GzwteuXbuBH82aM tEY8OxVlL8E35q5+cxNQ0XxJ/mPjuFyifGbYer42NnA5XBDdYWoXAcZM/tiVcWkFRv7o ZQk28m7IYdOEfg6Dcei8hBGozw450Of+oAVJACAO33OaoT4/VQ9ViFMuuc5OiFzTrhd6 eaiABQ4L/hN3esNJDB3Lk1A2yejwu009O3uWz/tJVyFcgEZ+ITerpm8bIMoQlRFu16pz pv1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720627620; x=1721232420; h=content-transfer-encoding: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=Yn9Zi1KqPp5aaxLNBj+DM807b8H8qBITowNXvBGV8jI=; b=D5YAQjzetHfDzPhc7/yoIh6YvJamq1dl7dYJqtwDCN8yYGJVs57H+AdXnCF5U+ixza VorFITzrNDETGAqhTB98/cjxjk3kEq9A/Pjs2Q6ikoC0NwrX13m2cca1katkk6l8YD0N bNCqkIEsuPOmdY7vyxBVwLgi79D/U/gtQPYuCFg0g8KZUyiTEmIp06fnGIIdOR8OWQPQ vUyPZI19qVhU2maw9uezGaiVkPOdoFkVFrSG+PMayU4nwWE0EC/2wMFCVp2z2bfi8VeV iQs7aDa0BIW+yAWoXScU1y3Ny/OJpPWv4by/f1LU9gRS/N0v19ZhfAQbVpPlT9G/eu/s Nqaw== X-Forwarded-Encrypted: i=1; AJvYcCX49pCmDBqhEMyo2bZYfYeFz0nSAV+kyHJ9aOEyvCR+RfOJRPi5syhN8ldZEgEj6zTk3eve6Edgz8oyVjKuaptQTs0= X-Gm-Message-State: AOJu0YwHT+R2QlTSunoUBywyM0+AEaA7EvkdmpE+I48vjmWtsRu/xFMQ nextElVfmD5P6A+RnQ0rjMdPVrxoOTGkbxqZlhFA4XFFmSS45se0l8cfzqHTgiqo0dsS8qKT2Po 3khV4wF9LoZHgAlIn4Ks3BC7LosEEGBFzaTqR X-Google-Smtp-Source: AGHT+IFZMhd3IwcTT5MRRD5rKcqIqs3l1YV7f+9GXdgWrMHusgkuEPHllYjtToXd2RmT45movpPujJPp8yOAIEehbh8= X-Received: by 2002:a9d:6ac7:0:b0:701:ff2a:e50c with SMTP id 46e09a7af769-70375a07e4dmr6764092a34.13.1720627619855; Wed, 10 Jul 2024 09:06:59 -0700 (PDT) MIME-Version: 1.0 References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> <20240704182718.2653918-3-Liam.Howlett@oracle.com> In-Reply-To: From: Suren Baghdasaryan Date: Wed, 10 Jul 2024 09:06:48 -0700 Message-ID: Subject: Re: [PATCH v3 02/16] mm/mmap: Introduce abort_munmap_vmas() To: "Liam R. Howlett" , Lorenzo Stoakes , linux-mm@kvack.org, Andrew Morton , Suren Baghdasaryan , Vlastimil Babka , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: kd9kxjx3s9eeqbbu454so9xzs6ss1f1t X-Rspam-User: X-Rspamd-Queue-Id: 5BAC040028 X-Rspamd-Server: rspam02 X-HE-Tag: 1720627621-70735 X-HE-Meta: U2FsdGVkX19ayUawT8T2SuAhM5DmMcxWNkBK9nHkcwK8e/kgUGMEeA4G0cOaJchaCKsDHLYhyiBvJtoOfzjNnAjH/9AA7JuachB1lTjOymyMKTHpwM5BuM6LTsPk7ahKoLVvq/zw0ELWdBn8GBfuA2a67C0/4rrXyq9bBiReOyhXAfJgd6+zH5OzwdazcCAkkpZKg8Twtu/IFNIRk7CGx0/Uw6mb6JPALAKc/qLbWoaZcqFJiDuoaq6HmhtOm8DMRlAWDH6oaEo2BZ/27R2AHRJ7o/LegcW2rxEXMaLKP4NU6jkIuNEi6/z0XZktPavn+ZK1g8Q1tF2KgM2Hq+C5ikA2RarbgQ+XpAwvzJcvixdDSefu1ulL/2QpJjjXVpL5AikAWYjE+MKvfRorzE39Gb6Q/3BxDeI5B5pPnftF2vcx1huPBiKLmc1wx6/wcBP0XMcgLZTkVcJJKFJ4Y3ROcIwVGYrL7LDL7RryQ6UwD6AdkPAcyLN9JgJ+iVaBGBwq5P5RUzEGlTNo4OEQHeEKz04RCX1mCgPKnIGnjQkDgscwYU9WfJ1RXvqz/yONXjUjqq2i2xnKWHMXsjG45h429EjIlMd0oBBOGuxZvLJHAkV4MXYQqNkWjKTKTZNuEuxpT6uWiQtplqHqUPVFh18zjQhSOxJZTYLOtzFCONP40nrJxObX6YE+VdoCaiP90E+G+lTZflPnJJ7qNkWq1QifTkxKbYTa9GzOV1yaiEnMzwjKCfUQSNfIFbjSzf7MKGIJtY3oDWQvj/YMpPI6bD6WfLZgy50gAqtWMZveJbA4oHgGUPaPG1PZwQoSyitOaoanZ417p45yxkpzz5b+Rb7KIz+A2lK34eUuEcd4l5U5LlihpH1kZxWETMGuaJgzwHL4begOfUm8GF2LGFfdZiVFHAo4Fcx4RpYILPZtWMR9wsf0YkMZAoAUwXePVlkNgR7aAyiDZv07AfXuJujClPC sFhDK3FI cMghsvHr3OMUtI1/8hKCh2inOZHY5Z+TsWWTZGJiZBnOI6orztExVjQaOXxZJQlf0pqv7HUraZdPJZ+coRaeS/jhkzrmaI3J5LdQzCv+8AC3H9t1cz71e2Ey8K4D2gVbLHZDOSEheNvJUGiGfqOhI74HYZVEPEJWdyFCTS6CemB5UUtl8z4WBwLWRB0TZ3WSEmzys7q8B6nHpwPl89v9jHRimjlZ2UI6AlkKHHt/nPuor9cpCFEhJY5H9frUDoK0P+gwrG3QEtJN3ijw= 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, Jul 5, 2024 at 11:12=E2=80=AFAM Liam R. Howlett wrote: > > * Lorenzo Stoakes [240705 13:02]: > > On Thu, Jul 04, 2024 at 02:27:04PM GMT, Liam R. Howlett wrote: > > > Extract clean up of failed munmap() operations from > > > do_vmi_align_munmap(). This simplifies later patches in the series. > > > > > > Signed-off-by: Liam R. Howlett Reviewed-by: Suren Baghdasaryan > > > --- > > > mm/mmap.c | 25 ++++++++++++++++++++----- > > > 1 file changed, 20 insertions(+), 5 deletions(-) > > > > > > diff --git a/mm/mmap.c b/mm/mmap.c > > > index 28a46d9ddde0..d572e1ff8255 100644 > > > --- a/mm/mmap.c > > > +++ b/mm/mmap.c > > > @@ -2586,6 +2586,25 @@ struct vm_area_struct *vma_merge_extend(struct= vma_iterator *vmi, > > > vma->vm_userfaultfd_ctx, anon_vma_name(vma)); > > > } > > > > > > +/* > > > + * abort_munmap_vmas - Undo any munmap work and free resources > > > + * > > > + * Reattach detached vmas, free up maple tree used to track the vmas= . > > > + */ > > > +static inline void abort_munmap_vmas(struct ma_state *mas_detach) > > > +{ > > > + struct vm_area_struct *vma; > > > + int limit; > > > + > > > + limit =3D mas_detach->index; > > > > This feels like a change to existing behaviour actually, I mean a sensi= ble > > one - as you are not just walking the tree start-to-end but rather only > > walking up to the point that it has been populated (assuming I'm not > > missing anything, looks to me like mas_for_each is _inclusive_ on max). > > This is not the main tree, but the detached tree. It only contains the > vmas that are going to be freed (or, rather aborted from being freed). > > I see what you mean that the end in the abort code below would be one > beyond the tree walk. The new abort code uses the index (from the > previous write) as the limit. > > All that really matters is that we go to a number high enough to cover > all vmas that were detached. I used 'end' in the below code because I > knew it would cover all of the vmas added (we actually start at index > 0). > > The value of 'mas_detach->index' is used in the new code because I knew > that's as far as I had to go, and I could limit the arguments passed > to the function. > > I think that I'll actually change limit to ULONG_MAX in another revision > because I like that better than expecting the index to have not been > touched by others. > > > > > Maybe worth mentioning in commit msg? > > Yes, good idea. Thanks for catching this. > > > > > > + mas_set(mas_detach, 0); > > > + /* Re-attach any detached VMAs */ > > > + mas_for_each(mas_detach, vma, limit) > > > + vma_mark_detached(vma, false); > > > + > > > + __mt_destroy(mas_detach->tree); > > > +} > > > + > > > /* > > > * do_vmi_align_munmap() - munmap the aligned region from @start to = @end. > > > * @vmi: The vma iterator > > > @@ -2740,11 +2759,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, = struct vm_area_struct *vma, > > > userfaultfd_error: > > > munmap_gather_failed: > > > end_split_failed: > > > - mas_set(&mas_detach, 0); > > > - mas_for_each(&mas_detach, next, end) > > > - vma_mark_detached(next, false); > > > - > > > - __mt_destroy(&mt_detach); > > > + abort_munmap_vmas(&mas_detach); > > > start_split_failed: > > > map_count_exceeded: > > > validate_mm(mm); > > > -- > > > 2.43.0 > > > > > > > This looks fine though, feel free to add: > > > > Reviewed-by: Lorenzo Stoakes > > Thanks. >