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 C3E33E77182 for ; Tue, 10 Dec 2024 17:55:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D1EC6B0281; Tue, 10 Dec 2024 12:55:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 475C46B0284; Tue, 10 Dec 2024 12:55:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 315E36B0285; Tue, 10 Dec 2024 12:55:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 10EFC6B0281 for ; Tue, 10 Dec 2024 12:55:43 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8CC0CAEAE8 for ; Tue, 10 Dec 2024 17:55:42 +0000 (UTC) X-FDA: 82879801662.18.AB151BD Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf01.hostedemail.com (Postfix) with ESMTP id D4E9E4000F for ; Tue, 10 Dec 2024 17:55:23 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="G0G/B5lA"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of kaleshsingh@google.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=kaleshsingh@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733853330; 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=R0WaAW3kh+VqyYkynbg5Bnnaq2ujjkmV+I+q8jKp9mU=; b=6Jbjg3VjEWTXTMyB/bkvX/MUlnBhVSD14IX4L0iz2Dki5G2MGC5A+lrHz9d814wxGSSiH/ DAWyzh9kkGkSeXRrdH3mCj4mSrZWUra1Q1WmJRuwRgBDkF9sQJPhl4zOHrQbnZeBB3seF9 yy4AYalBNG5/69q0lMjYeMDQp0OYs34= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733853330; a=rsa-sha256; cv=none; b=TgJqQA+VyimfuWDN/RlPN3ubKJbbEilmfqWhA98c0Q6oedsstmC7T9prt+17SqEJ6fdlJG FNwiH/effchnShjUPyc/MV0d2f15Ne9C0njcEbx6r3+LIYGyieumEdDoYNisp4TY4Z3p5B y/cHYZrHItVvqxPdTw92eEl/Id+woxw= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="G0G/B5lA"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of kaleshsingh@google.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=kaleshsingh@google.com Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2163affd184so2055ad.1 for ; Tue, 10 Dec 2024 09:55:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733853339; x=1734458139; 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=R0WaAW3kh+VqyYkynbg5Bnnaq2ujjkmV+I+q8jKp9mU=; b=G0G/B5lA3gHHU/TO8rnzbqTnFzuPPpZX3sDCovMQMT76GXK6gOa5USPn+yfexvqNKS vkDUTRcWUSg4+3hhTip1yWhl2a4EexoIbv5Kaf0WSW6CKpXkgfUN7zFs/L4dfAdnVPxZ o3DT3YtScS+6olEOkLjeU9memztLpTL7BY7xVpcl41NlYLWja2tjU1U7Zyu8aV5vF/S5 eLthXhUFoFUMaeQ1Tb4qOWg1MmdwdgurCvdDigAyW5oxl5RZ7dvBUmYvEjb3TCbw5Cdu J+ykzPSiSO6bhtiQB2IVZnwitLRM92+i9mVLCcshcP7Hx1Mk7FwJd1OCYVdGxtn3hXw6 Afzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733853339; x=1734458139; 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=R0WaAW3kh+VqyYkynbg5Bnnaq2ujjkmV+I+q8jKp9mU=; b=FYf+h7FRrMxTXWBHvtmHabtP2RlBNujynU4AfJxJHiCmzZSqydNpjAiZoWm5u34Dtu vDwt+9huGXnoGsQ1vn1w5fbh6eeHwaWJzq2zbQLgH9505iMTy36H8tVvjqc6Fxw2dACh Fj3wJl1nb7/zp1O6auRvY1JduH7cCvwnXarz+0kCvesa5EEF5h8Bdwfi7Zu8wgVuMv6p PDmO6RLCeYsbkTqEEV04WcAKNMn+QV98I4mk/yB1HAEwvYxRZLpd/vBBf5nvHMVZ5mBK zngsfU0k3atVGiQAMKqg2fEF65yTiIIguH6XqTkLrRSmUK/vHKtztOH+gf8rQ2/rAHEX EFjw== X-Forwarded-Encrypted: i=1; AJvYcCW++Fof9kc2YMZOUOy+cHzSLmvfZC7dVnSi3JIkCe6k9E5BhbMYXREJHtcq/Q9X74qO7F1K0aLk6Q==@kvack.org X-Gm-Message-State: AOJu0YzODSZDkPAKWxc5eofyS8y0FLUJCxupMXxnpqlE5VrY/nmmBN48 SRVGNtl62lvodo4CPQftpGBiF0gb7ab+pd9DCvvFQ84EZpFgt0enaYUJ9YkajP07IEnXtRPs0zF AOm95jkGvIHv/1AFBC27mtSbcv63BAGb0TkbL X-Gm-Gg: ASbGnctwMTJs8db1ycphIB0EAlemX8zTkE7EicNBe8ufTiNI0QIu9i9tEDFHifUrrlP wT8y1J/2U9eajEzO2CRP3oCMJ2zHa6lM/ndKkJfB09298Ob506bMsKNF+W55l2N5Z X-Google-Smtp-Source: AGHT+IGLvX826EUtDFzCMbe4Z82/rCvZNBH+2oBWnGrvdZr1UuD+ncWShG6UN2y8G42XtPREcypqHTRZ438FncSXyng= X-Received: by 2002:a17:903:144b:b0:215:79b5:aa7e with SMTP id d9443c01a7336-21674d58706mr2897555ad.13.1733853339077; Tue, 10 Dec 2024 09:55:39 -0800 (PST) MIME-Version: 1.0 References: <20241210024119.2488608-1-kaleshsingh@google.com> <20241210024119.2488608-2-kaleshsingh@google.com> In-Reply-To: From: Kalesh Singh Date: Tue, 10 Dec 2024 09:55:27 -0800 Message-ID: Subject: Re: [PATCH mm-unstable 01/17] mm: Introduce generic_mmap_hint() To: Yang Shi 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-Stat-Signature: hebpxn9nrarhdrxxiff46btc8nt7q65t X-Rspamd-Queue-Id: D4E9E4000F X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1733853323-516620 X-HE-Meta: U2FsdGVkX1/sKP2qGtK8X1iIqOKtykwXqV5ukMgMBg4HvY317aWINhe0Zt1GRCgYmmwMip3BC5qDemtXM6QcESqJdi4TNEP/FlAslhsa+FDto5SduEAM1WRc8j/05S4SYJwyjKOF+AhjlbcCDWjqCVUi3VjuBsdj8g4jtveGqCu3Zy5NWXMkpXhNHU0R3OrKkl5rUWi+af193g4jsW2JMda+dHGmzSid2VFDr3qcUcFS41rN72tvSMBDRYpeNH98DHxeSLKDSPDjMmtgDFvXvBmHi3OvYu9nufb2PH612dw78OghmgHV1kyteWzbjmL/WuRpmof8A5Nq0OS+sG4eqG3LIsQtDA740ktppRRpBurMI4OG1qVRFU2VnlXbVh16yMaKA/v5+5t80t7pLRGtfAorFOnRkjbHunRngCVo4EXLYogCPFZWDuB/fceHJEymv6CU2+d0YoTF2lpQj+CMhsuQSH2pk3og9BHuHbF6H3BhPfmrLgl4EFw3wlVwi82XMNlWCwEd7IpC3qRpS3Ri/0f0b6K4j4JqdtRDkX3Fh34c03AMtGPpNVXHYJFBOirQuVc5droE+1R3KEZT2hApY9zAduqe7intCEMsG9oUFTRJ/+f056zVBcQM99Y1h4iT9Tn9iwXA1HjmrHt7yVZnus5Eoavp6iAvP2EbNpqjPO3x87sEyGgyGjmRMBcPIHnGRf5MFTQr/1DwuEG64yQQSS8SXqKmik07nsLNb+VftUqemJyThILuOvlAuAc8243B18XCS36xS8M2gd0+TADe6wdgnDE84DtjX/NlfU0vsRd4WijAxGWWxaBotA5gdHLX84LdjHS1d/YiaTsLF6xFxrIVzAQUljeKbQfzwYxDHMi5fVMcxzXwDMzf+X5Sv3634WWEj00feWR1ifATDeQoBDA+xyv0MAEOcSIU6ZcK1LV8j8kBLPmmrBMZmuU36WXCh1IMTfYkA2l6JM1hHQb EAuzDlqN 0kdmv5R06TQheLIsP29tF5IU1qR0iS+RhRYshXqsaSFdYhdIjiqhFu/GCABysLuU8vJ3xuVgX7M2yHw1+/ahJ1ytTN9c962TT8vvr0hgvBV3nyn5cfYf04G+p0pJRKyV7KjuLY1n8d0qZ8Ddy/vvURCRhFTt4PlpJ7FlR94dHqEyyrBvvipQIHJCLUlVY7vyrUDeV9fnseKvAfBprP5iOOo+LoGfOojHaTqu+HkeY6GjfCLETSD1DrN8zLXgaA2rDnqoRbUVD9nUgS6f/MwTgC3DeAB7C28k6Iqx/FLtqAKbFjyc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.319792, 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 7:27=E2=80=AFPM Yang Shi wrote= : > > 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_= area_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, f= lags); > > + > > + 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, unsign= ed 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, f= lags); > > > > @@ -647,14 +667,9 @@ generic_get_unmapped_area(struct file *filp, unsig= ned long addr, > > if (flags & MAP_FIXED) > > return addr; > > It seems you also can move the MAP_FIXED case into generic_mmap_hint(), r= ight? I think that could be done too. we'll need a new name :) Let me take a look at it ... -- Kalesh > > > > > - 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 pgof= f, > > unsigned long flags, vm_flags_t vm_fl= ags) > > { > > - 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, f= lags); > > @@ -698,14 +712,9 @@ generic_get_unmapped_area_topdown(struct file *fil= p, 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(v= ma)) && > > - (!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 > > > >