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 86651C433EF for ; Mon, 30 May 2022 10:52:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D2C6A6B0071; Mon, 30 May 2022 06:52:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CDD766B0072; Mon, 30 May 2022 06:52:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B78176B0073; Mon, 30 May 2022 06:52:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id A4F9A6B0071 for ; Mon, 30 May 2022 06:52:53 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 7EF6D80EDC for ; Mon, 30 May 2022 10:52:53 +0000 (UTC) X-FDA: 79522096626.11.F1F038E Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf18.hostedemail.com (Postfix) with ESMTP id 08DBA1C0044 for ; Mon, 30 May 2022 10:52:33 +0000 (UTC) Received: by mail-pl1-f175.google.com with SMTP id f18so10041724plg.0 for ; Mon, 30 May 2022 03:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=w5gFWEUTN7CvTurw5Y71IzdCPoiI5JyLb8TnHFiO65M=; b=RB/I9ZJt9qT+WGHamOng75ciihaHBSnNkNWb9SsVr6ZsdVffqeX85J0RMI6w9eQ6Y7 Cno4yv3Xw36n7AzBvSY0qiomAX/Hq9Cn34xffsRhlI3pDEMU+jYuvQCN8wdmUU7bz0A1 iRZb9QBH2DMB2QZOng4W09ddthAtBQxSWVSlL1wR4ul6wOCBWifExdS7Jh8Jg/7Fv9tA d5WAktJPbO5FvLf7wa2voJnp5mOgEQ/a0Pl0yqBx6SsBFLqm1F8HhWfsgCwBx8AYKGbA aMfVoA74ZP7H5V0XU10kxrA9OHQCza6AtweAO1uNeOA34wGO9wXTwTo+6f5JNeWdzZf4 V9zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=w5gFWEUTN7CvTurw5Y71IzdCPoiI5JyLb8TnHFiO65M=; b=xe4tkTbNcnnvuSD+RSTwMDOM9JJ1X/EH4PBQh5DkYKKEY4h5bKAJZID3GlsbWEDjK5 gC05SwDuCQ+Kk0M8Dko1KJWOmWmSsmAzRtgQ9artXh3rz7Y/o9W7p4vrMHLktWYjkU0A F1lhBAPc/UgpHXJLZdcmgpRy7FKnUyEwlJLcccLKJOOJN3epBMX618C5d+pRSGo9iOyn uX0ENRbOYN3OHLgV5YROoKM2hjhAyMJz0NLJwLy5OB2bNHDIYjUFNyRGYmk5zPbagfFL O2gIYzILvXnT0ESGmELNGNETfKsX6atkheni7kKb7RxET9ilsOnK48arxZaxwFMqgaz4 Knig== X-Gm-Message-State: AOAM530Umme34M7So3hpLbcsN31GfYRemEb3Kq01+6uv99/98MNrWJ7/ teRB1o24sPSbQ346Sym7hNB/3iJUvBo6H6kBD+4= X-Google-Smtp-Source: ABdhPJwvimXOSym9fwJtWssibynEoIBVc9qaJYoOEUWn8MRWDS91hkQCQndiDo06egA95PE6mn+DTT3MkuXwFZr1MFg= X-Received: by 2002:a17:902:b581:b0:161:5f37:6688 with SMTP id a1-20020a170902b58100b001615f376688mr55489176pls.145.1653907971898; Mon, 30 May 2022 03:52:51 -0700 (PDT) MIME-Version: 1.0 References: <20220527104810.24736-1-matenajakub@gmail.com> <20220527104810.24736-3-matenajakub@gmail.com> <20220527234657.nsn6e7jjwttblzyi@box.shutemov.name> In-Reply-To: <20220527234657.nsn6e7jjwttblzyi@box.shutemov.name> From: =?UTF-8?Q?Jakub_Mat=C4=9Bna?= Date: Mon, 30 May 2022 12:53:08 +0200 Message-ID: Subject: Re: [PATCH 2/2] [PATCH 2/2] mm: add merging after mremap resize To: "Kirill A. Shutemov" Cc: akpm@linux-foundation.org, linux-mm@kvack.org, patches@lists.linux.dev, linux-kernel@vger.kernel.org, Vlastimil Babka , mhocko@kernel.org, mgorman@techsingularity.net, willy@infradead.org, Liam Howlett , Hugh Dickins , riel@surriel.com, rostedt@goodmis.org, peterz@infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 08DBA1C0044 X-Stat-Signature: gwhaeu3peihc4xoegzom3oeyns9som43 Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="RB/I9ZJt"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf18.hostedemail.com: domain of matenajakub@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=matenajakub@gmail.com X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1653907953-66923 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: On Sat, May 28, 2022 at 1:45 AM Kirill A. Shutemov w= rote: > > On Fri, May 27, 2022 at 12:48:10PM +0200, Jakub Mat=C4=9Bna wrote: > > When mremap call results in expansion, it might be possible to merge th= e > > VMA with the next VMA which might become adjacent. This patch adds > > vma_merge call after the expansion is done to try and merge. > > > > Signed-off-by: Jakub Mat=C4=9Bna > > --- > > mm/mremap.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/mm/mremap.c b/mm/mremap.c > > index 303d3290b938..c41237e62156 100644 > > --- a/mm/mremap.c > > +++ b/mm/mremap.c > > @@ -9,6 +9,7 @@ > > */ > > > > #include > > +#include > > #include > > #include > > #include > > @@ -1022,8 +1023,11 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, uns= igned long, old_len, > > } > > } > > > > - if (vma_adjust(vma, vma->vm_start, addr + new_len= , > > - vma->vm_pgoff, NULL)) { > > + vma =3D vma_merge(mm, vma, addr + old_len, addr += new_len, > > + vma->vm_flags, vma->anon_vma, vma= ->vm_file, > > + vma->vm_pgoff + (old_len >> PAGE_= SHIFT), vma_policy(vma), > > + vma->vm_userfaultfd_ctx, anon_vma= _name(vma)); > > The arguement list gets busy. Maybe some variables would help. > Calculation around vm_pgoff is not obvious and requires some explanation. Ok, I will add the following comment: "Function vma_merge() is called on the extension we are adding to the already existing vma, vma_merge() will merge this extension with the already existing vma (expand operation itself) and possibly also with the next vma if it becomes adjacent to the expanded vma and otherwise compatible." And I will also introduce three new variables to better explain some of the arguments: unsigned long extension_start =3D addr + old_len; unsigned long extension_end =3D addr + new_len; pgoff_t extension_pgoff =3D vma->vm_pgoff + (old_len >> PAGE_SHIFT); > > > + if (!vma) { > > vm_unacct_memory(pages); > > ret =3D -ENOMEM; > > goto out; > > -- > > 2.35.1 > > > > -- > Kirill A. Shutemov Jakub Mat=C4=9Bna