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 97461E7717D for ; Tue, 10 Dec 2024 03:27:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2DC3D6B010D; Mon, 9 Dec 2024 22:27:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 28CC96B010E; Mon, 9 Dec 2024 22:27:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 154A66B010F; Mon, 9 Dec 2024 22:27:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id EDDDE6B010D for ; Mon, 9 Dec 2024 22:27:19 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9E4C2120300 for ; Tue, 10 Dec 2024 03:27:19 +0000 (UTC) X-FDA: 82877613210.12.4DBAF33 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf05.hostedemail.com (Postfix) with ESMTP id 0035B100003 for ; Tue, 10 Dec 2024 03:26:36 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WocHe5nJ; spf=pass (imf05.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733801221; 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=Zw8KjUeVLCoeUttHvlAE11LYFS9kka7RYPFB87xdCOo=; b=dARGAMMMXtzOcvVJD76E+U87vkUZVSQfdEz7ou4PEcdEjU/cmHn0se/i+9DvWCf9H5XZAy hsZS5lNcjWnk21EDOaUwjCgHzxR5Ef2AdNrCsBT3Hbvl3GKbNu7KJV8UhIxC/olOeqkFgu IsC4MZ3AIjX8Nh+hi6/rJaQm5MDE170= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WocHe5nJ; spf=pass (imf05.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733801221; a=rsa-sha256; cv=none; b=xYh77+b0jN8tTZUArAaVzbtnShf/UKRe5NJuqFXiBgEpo51gohRL18+etokaEwxS54dZeE Wa1XSPKp2s7XI0rORu4CvFgxbYomszaEsbo/FU07P9qoy36DE90qugP/gr3QEZSDVnctnP OcnFM96HvSSFgwMskS+YArsEGVAYDNU= Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5d0f6fa6f8bso7279861a12.0 for ; Mon, 09 Dec 2024 19:27:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733801236; x=1734406036; 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=Zw8KjUeVLCoeUttHvlAE11LYFS9kka7RYPFB87xdCOo=; b=WocHe5nJcO98WuEAKqE44A/XnQm8niikNHLyktZdWMLSu7rvoUeqwe21ZIcd51wNGG rJRJyB3ZvorXOw+9cEoj0ZnwLMcjBgBl6ngdW6Agzh9UFCWH2MT65/5PUZumYgDD9L2C 3T2J+K+PQHMmVoYy2PzDgz8gbXu51WwDavQjQeQ94ZVr1unwCV9v/9Np+x1CWE6FJRBy q2s628IzgteE8MIKHWb4oHH0eqHZUFqjK5P3YirtYY/zse2cge0tXJa6brlWfsCvFKQs Fc+CH6N++x7KAIhA2959fzLGrjfy+GKwkyiaFMTQrphtdBdkrm5UBkFvFmRfJg5sO16h 0QUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733801236; x=1734406036; 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=Zw8KjUeVLCoeUttHvlAE11LYFS9kka7RYPFB87xdCOo=; b=L4iZR77fuP3dOGSwIN+KzFUtjIgHigaqndA8dODN9Fz4LVEc96rO1rZmUVCNuq0XcK 8TfsEfbxY55zHBNVfXVqzCblm5zW+Zfi2U+w05rSl3YJQE8JRoiri1WRuGO3aqWFlXV5 aGP0qK4Ri+FI1CJTyaDnw42Pgtv+V3Lyu5BoYnG2OWIgcTpfx/ZRV1w+tg5K36uJ1mfM HFCAWnyLTZVOVKCn7JVAMhO8FU64PN+dTPakMToay69pdDCnt3nqvllizmHQqlKHajCT KxS8N+csk0T2h32stQsMru9Z800VHcRy2t/5nMZO8z3asStXsbp9TekcKsDyVpS94GbW xI3g== X-Forwarded-Encrypted: i=1; AJvYcCWWwu1Ryi1vkR+deiC3Jy9tbEc4jTCqlZfAHpPOU5jw9zwf4k3VPGEagulyW+DVb9JxT0LKNOw5iQ==@kvack.org X-Gm-Message-State: AOJu0Yw/Q9QhPE0xq3stv4HfAeXmO7sF4pbrMlu5LCrX+ozeRc150490 OK08FNwsqqeYrFfH1BbMakN2DBtPl9hxciTikYsOs/YZMo98K0FEEa90CDmYTnDm0r/ucoWDIzK kt2/nrTAoMRV5Be356LK6k8DC0sA= X-Gm-Gg: ASbGncsSIuzj5bsBzMvlz5XsDjikaEG6lSOxBwJNZJqgDN/81VhuthhCPAyrl4UFWDa QARErzLw5QUFdHNTXAELQ9StzbMeOr2paIDGcMw== X-Google-Smtp-Source: AGHT+IHf2Fi/42HQsEiQo6WzNdGmDcvEV4I1TbpQP4oAJiq1u3pQn+R3NnSbM/I4gmKvXuY9eOlF5eGp3h/ZPgrcEvo= X-Received: by 2002:a05:6402:278f:b0:5d0:fc80:c4d1 with SMTP id 4fb4d7f45d1cf-5d41852f140mr3377986a12.14.1733801235781; Mon, 09 Dec 2024 19:27:15 -0800 (PST) MIME-Version: 1.0 References: <20241210024119.2488608-1-kaleshsingh@google.com> <20241210024119.2488608-2-kaleshsingh@google.com> In-Reply-To: <20241210024119.2488608-2-kaleshsingh@google.com> From: Yang Shi Date: Mon, 9 Dec 2024 19:27:04 -0800 Message-ID: Subject: Re: [PATCH mm-unstable 01/17] mm: Introduce generic_mmap_hint() To: Kalesh Singh Cc: akpm@linux-foundation.org, vbabka@suse.cz, yang@os.amperecomputing.com, riel@surriel.com, david@redhat.com, linux@armlinux.org.uk, tsbogend@alpha.franken.de, James.Bottomley@hansenpartnership.com, ysato@users.sourceforge.jp, dalias@libc.org, glaubitz@physik.fu-berlin.de, davem@davemloft.net, andreas@gaisler.com, tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, chris@zankel.net, jcmvbkbc@gmail.com, bhelgaas@google.com, jason.andryuk@amd.com, leitao@debian.org, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, kernel-team@android.com, android-mm@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 0035B100003 X-Rspamd-Server: rspam12 X-Stat-Signature: ad6cg43m83rnz97urg8euqcqfwjrgufr X-Rspam-User: X-HE-Tag: 1733801196-617236 X-HE-Meta: U2FsdGVkX1+OCFiKTY6qKtxY/f6yFRBhD2TuZohIufxMCCeL1Y6B+NyCsj6hBhlpA0buEG43xqxpaQ7Fuy8pBgNlhmHwKA8kalfTfPNhL+gI9v9sy0WUAncT/N/6vO8r7n90pSI0DzYB+kU7tZxJ9rin78Rwng5iDiUYQwMIXgTc1JnuCjz7xzCVAZnPEOufDOoGN/AHmQ+NYqXeMxo505FtZCtcLvnXv3YIzB5dqrg4OP416C5OxAUftp7f1sRM05aTGI0VAIAH77ZiqmZqPQ1U37um0OlhrnYo48qisjiia5wf8BrOncauU4GpRq3dS8HoqIvDbjRFTkGUpX0tjdzoJVhbMUjIynqkVBAJKply1rhwn4UssZ14AxsJUAIrrYNCCy8Q8sPHX3/7wzSjDqc5mptnOOK64EZBPxtZnfa8BBW3xDuiqz35l8SHgnO6qyMXv+7ToeeKWwo7setYThppv7zERNSchVrgiKcIE6K5dbLMEProleGqGdh7KaPmec8uYA0S0SQG24lKWUfAxiSajDScCZ1F3wZvxvN/w1msPRNy/lENr3uPFIQ9KDA1AIEALXlfpg/LjcbH3ZpHhYhLtRkzadde6wGJ2ypDkpDimphbCbMWHov9tFmt6s2lpx98sUmbu1C6Q4xztBEZHXd3f6Z/Dzsa7QuYVlJ4U1p+n2JnP4jIu1MUOHBYtJ4WJLocGsa/wyGZ9Ex27YQA6Fck0Unvj69/hEGd1mh1TaWvTb8LjJXjBbie7PH9yCZMvsyAJd0+9hAjOPtPB3VQsYuwLuKkxseJnb+q57HEtzmMdxQbRzq0e0kAzczoz95+EL/Q025omFyUnEb7rlvWW+TwiN/4/Hgd7nKlE5QgvLffnPahqp3fBxAg+zPxAB4ydXIqXtHuKmjQhXXo4h9XimhblYRMPZ7hclbluZAjpzxQyQMltv6thicC5dwALAQqTPiZ9CSpqkCWajiCjtS rnN8DD2q Qy0fRMulq539vJlk6GvN/tvb8FReiN+pOUUONL7b1l1CKIAwSknljdrC811wtv/hmhiY6Z2++B8vNRAsiAPlHPl+HvdTgAslYxYWh3bt/Ofw/mf0obu8uYpeKFUkaFZ4CD5hAz2TGwVQrLqvU9b9HvMjVs5r6ignI2gDQ2z3NNlfqGb3iyHjjT7DJm8i/CebCWf88mbALyLOgWLzeAXgVYRSnPUF3BxdGns/yHrFpKmh9C4gq65KVlYpuFfHvXeHKgkjSEu7l8XNEZf8gY158xbUPxRJ8ibg4FJV0grYMHJQt8yD+TKF93OASTZ0e4xgWyPda7ErCei8VK6V90fdvY2AsbogdGuTNaHCdFssCmU1xyxgW13R0YotofQtGldoTUEo14+1O4e+x+Bi/8yvwG841tju+6XFMYhgnLSu+XJAtGLg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.405273, 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 Mon, Dec 9, 2024 at 6:41=E2=80=AFPM Kalesh Singh wrote: > > Consolidate the hint searches from both direcitons (topdown and > bottomup) into generic_mmap_hint(). > > No functional change is introduced. > > Signed-off-by: Kalesh Singh > --- > include/linux/sched/mm.h | 4 ++++ > mm/mmap.c | 45 ++++++++++++++++++++++++---------------- > 2 files changed, 31 insertions(+), 18 deletions(-) > > diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h > index 928a626725e6..edeec19d1708 100644 > --- a/include/linux/sched/mm.h > +++ b/include/linux/sched/mm.h > @@ -201,6 +201,10 @@ unsigned long mm_get_unmapped_area_vmflags(struct mm= _struct *mm, > unsigned long flags, > vm_flags_t vm_flags); > > +unsigned long generic_mmap_hint(struct file *filp, unsigned long addr, > + unsigned long len, unsigned long pgoff, > + unsigned long flags); > + > unsigned long > generic_get_unmapped_area(struct file *filp, unsigned long addr, > unsigned long len, unsigned long pgoff, > diff --git a/mm/mmap.c b/mm/mmap.c > index df9154b15ef9..e97eb8bf4889 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -620,6 +620,27 @@ unsigned long vm_unmapped_area(struct vm_unmapped_ar= ea_info *info) > return addr; > } > > +unsigned long generic_mmap_hint(struct file *filp, unsigned long addr, > + unsigned long len, unsigned long pgoff, > + unsigned long flags) > +{ > + struct mm_struct *mm =3D current->mm; > + struct vm_area_struct *vma, *prev; > + const unsigned long mmap_end =3D arch_get_mmap_end(addr, len, fla= gs); > + > + if (!addr) > + return 0; > + > + addr =3D PAGE_ALIGN(addr); > + vma =3D find_vma_prev(mm, addr, &prev); > + if (mmap_end - len >=3D addr && addr >=3D mmap_min_addr && > + (!vma || addr + len <=3D vm_start_gap(vma)) && > + (!prev || addr >=3D vm_end_gap(prev))) > + return addr; > + > + return 0; > +} > + > /* Get an address range which is currently unmapped. > * For shmat() with addr=3D0. > * > @@ -637,7 +658,6 @@ generic_get_unmapped_area(struct file *filp, unsigned= long addr, > unsigned long flags, vm_flags_t vm_flags) > { > struct mm_struct *mm =3D current->mm; > - struct vm_area_struct *vma, *prev; > struct vm_unmapped_area_info info =3D {}; > const unsigned long mmap_end =3D arch_get_mmap_end(addr, len, fla= gs); > > @@ -647,14 +667,9 @@ generic_get_unmapped_area(struct file *filp, unsigne= d long addr, > if (flags & MAP_FIXED) > return addr; It seems you also can move the MAP_FIXED case into generic_mmap_hint(), rig= ht? > > - if (addr) { > - addr =3D PAGE_ALIGN(addr); > - vma =3D find_vma_prev(mm, addr, &prev); > - if (mmap_end - len >=3D addr && addr >=3D mmap_min_addr &= & > - (!vma || addr + len <=3D vm_start_gap(vma)) && > - (!prev || addr >=3D vm_end_gap(prev))) > - return addr; > - } > + addr =3D generic_mmap_hint(filp, addr, len, pgoff, flags); > + if (addr) > + return addr; > > info.length =3D len; > info.low_limit =3D mm->mmap_base; > @@ -685,7 +700,6 @@ generic_get_unmapped_area_topdown(struct file *filp, = unsigned long addr, > unsigned long len, unsigned long pgoff, > unsigned long flags, vm_flags_t vm_flag= s) > { > - struct vm_area_struct *vma, *prev; > struct mm_struct *mm =3D current->mm; > struct vm_unmapped_area_info info =3D {}; > const unsigned long mmap_end =3D arch_get_mmap_end(addr, len, fla= gs); > @@ -698,14 +712,9 @@ generic_get_unmapped_area_topdown(struct file *filp,= unsigned long addr, > return addr; > > /* requesting a specific address */ > - if (addr) { > - addr =3D PAGE_ALIGN(addr); > - vma =3D find_vma_prev(mm, addr, &prev); > - if (mmap_end - len >=3D addr && addr >=3D mmap_min_addr &= & > - (!vma || addr + len <=3D vm_start_gap(vma= )) && > - (!prev || addr >=3D vm_end_gap(prev))) > - return addr; > - } > + addr =3D generic_mmap_hint(filp, addr, len, pgoff, flags); > + if (addr) > + return addr; > > info.flags =3D VM_UNMAPPED_AREA_TOPDOWN; > info.length =3D len; > -- > 2.47.0.338.g60cca15819-goog > >