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 228E7C3DA41 for ; Wed, 10 Jul 2024 16:07:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A84D06B0095; Wed, 10 Jul 2024 12:07:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A34BC6B0098; Wed, 10 Jul 2024 12:07:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D5BE6B0099; Wed, 10 Jul 2024 12:07:38 -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 7026E6B0095 for ; Wed, 10 Jul 2024 12:07:38 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 269E112015F for ; Wed, 10 Jul 2024 16:07:38 +0000 (UTC) X-FDA: 82324323396.28.F9F0B27 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by imf22.hostedemail.com (Postfix) with ESMTP id 2F9BBC000B for ; Wed, 10 Jul 2024 16:07:35 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=AhytmIxL; spf=pass (imf22.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 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=1720627624; 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=5hOi+CbH+LQ53IgFxOEWuC6/Y+tbAitu1myzto5D+qI=; b=yez6eIxOV642K3yujherusfeJR3L8IfMmoxx6sCcvV9/ZANMDItsbEW61zHHleDv63eNh5 0SscedqVoBjxD7knHV6m83bTElk4dapiJ/cOQVRuggI7ncaQOZZoqOoKBw1b9EyuV/FW6u vVTKXbmn39XifsonOAyaUnYZw0wJDvQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720627624; a=rsa-sha256; cv=none; b=WoZs6clsucMNGi0v93zeUvIlzjs1kh9vhycR3iZBm4QsGsPltt2OSdtvULrsvd2hij/DYS UGdRYKI9JgTPu0HYUVQ1j317XjS6sxzF5RrgEQwQF/IVctnBTaS+4rgIWCOpLFMDRnQDdh 8ye8bYnEtcRRFj+GuNuEiPVFHo4Zk0o= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=AhytmIxL; spf=pass (imf22.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-6512866fa87so59680567b3.2 for ; Wed, 10 Jul 2024 09:07:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1720627655; x=1721232455; 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=5hOi+CbH+LQ53IgFxOEWuC6/Y+tbAitu1myzto5D+qI=; b=AhytmIxLUpXyc3ET93wPYZaLs4lLvZfT9qdfL8vt44UkA0bFOFlrpIANdP9ckYHRzg W4FQh5Envzq+pTbeL/9b3KJUGFvswG+5wD/U2Jf1s+y45Qdm4mpSO1VNMcMDQjpyM/cp +8xPWbUOYRuBvmYw8In192gT3orQCqrhtFouOUntDAprr4xoFzy+P1hEQeFoTLaky16m AGF+LjO6WNvWqThsY8pSTsn0eFrMisp+2fLhHQ0hQ2vClG1FqO+Pho4YynZYkRVm2ogj 3sFGKzyNle2oV8u5eGmgCzWOUuLvntDvAaMApcCW7Wj7kjgWY7jM88ihUbXZVjQ5VbW2 yAaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720627655; x=1721232455; 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=5hOi+CbH+LQ53IgFxOEWuC6/Y+tbAitu1myzto5D+qI=; b=NR0Uzc5QYSe8MGtdgJLG0ktJlFatBRwEHxJlv6VugQ+EiyKsSjzdPhtSKausWmqmEe qzZ+GdgvRi9G0/rF/MttrdDtHbe2wvw8surmXHtySQ8AFDxnhw+YVF4ZxQ75te3HTLrR 11HPyh682fus8jYjTXcjW5MErBK4jQtiw6nPmlo4QhVxvs6dEkn0F9DWkPB/aI1Dnbn0 +//26wFtaHv7oUCVLlvZiJi3UkVox48oxkHMs2BjTlo5YO+/fxDCws+KvM9SS8A3+AT8 Q1t0lyf4pF6EBa0/wKHXjSqu9bY9LoJ7r9EuhPSu+uxkaFZFpUZrVhkiVoMh6vw40l9e 4ZFA== X-Forwarded-Encrypted: i=1; AJvYcCXdADf/f/EXTE9CGBWrzsvy6QK2V7UN13QApbkpqHt6Hy1citkOKet8x9EVe9DckUSPqt5Cn8vkxNbNLsTtiU0KsrI= X-Gm-Message-State: AOJu0YwVuviERaXGTHzXVQu9ajm2dQgMTnubDerjI3/PTDQPe0SFJ7zd KG4QlZyh97oK78OjW625Hbq/A7jT7OPu45d2iCFZUPd5yeqSFQ1v7jwjF3t9s4gGNDXTRIKyD2+ L9Xkvwn871ZNiNEW1OxnIna/IAzaRpNdcRdwd X-Google-Smtp-Source: AGHT+IFM/MM4d9wyqLSExKu598+a2Z0e1WDGShpZknWBuRov1q90hJ4xSnWPGct7PhaG0u0h7tLK8i94ggVSXRilV0U= X-Received: by 2002:a05:690c:f09:b0:63b:ca6d:7bb8 with SMTP id 00721157ae682-658ee7911c8mr78026367b3.11.1720627654703; Wed, 10 Jul 2024 09:07:34 -0700 (PDT) MIME-Version: 1.0 References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> <20240704182718.2653918-6-Liam.Howlett@oracle.com> In-Reply-To: From: Suren Baghdasaryan Date: Wed, 10 Jul 2024 09:07:23 -0700 Message-ID: Subject: Re: [PATCH v3 05/16] mm/mmap: Introduce vma_munmap_struct for use in munmap operations To: "Liam R. Howlett" , Lorenzo Stoakes , linux-mm@kvack.org, Andrew Morton , Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , 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-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 2F9BBC000B X-Stat-Signature: ffnkws6guwwpoy395attw949xfs5d4xa X-HE-Tag: 1720627655-213755 X-HE-Meta: U2FsdGVkX19+cC8Is3AoOT88ld0dHiX0uf1w4ivKVqzJQ2uSNGoFOUfesphGlR4NJD+vlmqGPIs6MGG3+CIVwXg4XUttRk/hD67KUTAmvKhzWhk6WFeoAiIf0gENd1cugRXuIHodIgYb06O/rDP9wqrkOj41o7c4jSfKhaPoaLGLc9PTs+HGXfBg9c6Pwddb+cB7txcJ8nwlnh5jXP3FS7ZOyeYUK7RVG0LhRciZqdYNnR7EJJXDLgKQXlcGoUw8NczLuIiVZG+VjDA298pK7YkvMQiYF/hXMCaRiYPWM1BwNkTE5mxv3hghZ+1H4XWN8f/Anhjk9umbi2FClM+kw5VBAHwocAwGRLVL0uT3op0QcDBKUe5P7sk6LkZ4W6GvTCovF1xErsojRjhpt1bNLnk8h8Sg7MugbkYaXSF/T0V3HlGq2T1QxLvyRnModDaMvwT0LZkCpmzDHiY65dEGTYyeaQB1E1RI2pFcGJF8nUaJlKO8WmkOgg2G0082FPlbxarKXrvQOTbdFrcD9FgYPHsYEFMlX0YBWgKkO+06EBMsH4bKNNH0uQbEd82UgSrwjkfrNpAxw6ridYW14+LsbglnHu2+hoazggRGQqOAQb67S/lvg1pK47jdoKAVn2B63PGTsoeLzXudoimjTUbbJxM24YUngOQqjAfnRGDhl1gNqKGQgB1H+99uCIlOxyjN3lsuaoyHsgwBbZS3vaMchUKLtng02yVGaLNWAcZtgjhHYrqwfTn49LmfaCMNxffpP+9LyDFX67QDA8JuDAmxD+r6G5aLeT2uut+6t4B69sfYG2RNU6/+IJzaW4Csnb7/83spoMh5/d7RYdX3gL7QVSILC08fp513KX5Vmj+nwvsxQOR9Tax011K2ZnWHtA21PmyP+oaweKgU58SlIBpb2/c7AeK24ubxre7a8dOQEd5M70FhwxJxj/2VI01UdLGvAs1qLJOhMjs10gDvMPe g3EZkY7z B38VwAnRTJWWTLRZUuiVJ1yu1uvnmvF4fu+RCJ8RPB84hGjhTPs+xYKtSXZPaksRsh+EW13VFPMKBArKjrETDl3I4MEabS2M8vsMLJyM1b+eVgeC6wH9ruR2AH7NpI7f4p1ZsX57t0Tc0/iKn7izWz+qoex0f1d9l6C0vR18Y3dqmOUsdMbAzARt4b5t+p4IghuxX5JaFwA4eJhzaVONg7T28YWws4MDH3S03Q3SiQEqr3YM312Uur27O3bPc1XyMzg0u0ir9Tywq16w= 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 12:09=E2=80=AFPM Liam R. Howlett wrote: > > * Lorenzo Stoakes [240705 14:39]: > > On Thu, Jul 04, 2024 at 02:27:07PM GMT, Liam R. Howlett wrote: > > > Use a structure to pass along all the necessary information and count= ers > > > involved in removing vmas from the mm_struct. > > > > > > Update vmi_ function names to vms_ to indicate the first argument > > > type change. > > > > > > Signed-off-by: Liam R. Howlett > > > Reviewed-by: Suren Baghdasaryan > > > --- > > > mm/internal.h | 16 ++++++ > > > mm/mmap.c | 137 ++++++++++++++++++++++++++----------------------= -- > > > 2 files changed, 88 insertions(+), 65 deletions(-) > > > > > > diff --git a/mm/internal.h b/mm/internal.h > > > index 2ea9a88dcb95..f1e6dea2efcf 100644 > > > --- a/mm/internal.h > > > +++ b/mm/internal.h > > > @@ -1481,6 +1481,22 @@ struct vma_prepare { > > > struct vm_area_struct *remove2; > > > }; > > > > > > +/* > > > + * vma munmap operation > > > + */ > > > +struct vma_munmap_struct { > > > + struct vma_iterator *vmi; > > > + struct mm_struct *mm; > > > + struct vm_area_struct *vma; /* The first vma to munmap */ > > > + struct list_head *uf; /* Userfaultfd list_head */ > > > + unsigned long start; /* Aligned start addr */ > > > + unsigned long end; /* Aligned end addr */ > > > + int vma_count; /* Number of vmas that will be re= moved */ > > > + unsigned long nr_pages; /* Number of pages being removed = */ > > > + unsigned long locked_vm; /* Number of locked pages */ > > > + bool unlock; /* Unlock after the munmap */ > > > +}; > > > > > > I'm a big fan of breaking out and threading state like this through som= e of > > these more... verbose VMA functions. > > > > I have a similar idea as part of my long dreamed of 'delete vma_merge()= ' > > patch set. Coming soon :) > > > > > + > > > void __meminit __init_single_page(struct page *page, unsigned long p= fn, > > > unsigned long zone, int nid); > > > > > > diff --git a/mm/mmap.c b/mm/mmap.c > > > index 8dc8ffbf9d8d..76e93146ee9d 100644 > > > --- a/mm/mmap.c > > > +++ b/mm/mmap.c > > > @@ -500,6 +500,31 @@ static inline void init_vma_prep(struct vma_prep= are *vp, > > > init_multi_vma_prep(vp, vma, NULL, NULL, NULL); > > > } > > > > > > +/* > > > + * init_vma_munmap() - Initializer wrapper for vma_munmap_struct > > > + * @vms: The vma munmap struct > > > + * @vmi: The vma iterator > > > + * @vma: The first vm_area_struct to munmap > > > + * @start: The aligned start address to munmap > > > + * @end: The aligned end address to munmap > > > > Maybe worth mentioning if inclusive/exclusive. > > The "address to munmap" isn't specific enough that we are using the same > logic as the munmap call? That is, the vma inclusive and exclusive for > start and end, respectively. > > Not a big change, either way. +1. Every time I look into these functions with start/end I have to go back and check these inclusive/exclusive rules, so mentioning it would be helpful. > > ... > > > > > Reviewed-by: Lorenzo Stoakes > > Thanks >