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 E29D8E7717D for ; Tue, 10 Dec 2024 03:37:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 61A106B010F; Mon, 9 Dec 2024 22:37:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5CA316B0110; Mon, 9 Dec 2024 22:37:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 441526B0111; Mon, 9 Dec 2024 22:37:43 -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 208756B010F for ; Mon, 9 Dec 2024 22:37:43 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C33F11C6BF5 for ; Tue, 10 Dec 2024 03:37:42 +0000 (UTC) X-FDA: 82877638452.20.CAD0618 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf28.hostedemail.com (Postfix) with ESMTP id 21A2CC0007 for ; Tue, 10 Dec 2024 03:37:15 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HMiomNcl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733801840; a=rsa-sha256; cv=none; b=azqYxUBiHZeuFqyskBsQnzttJcjxqeHUwyoQCUAvwvqbtTLBOsBokwobaWwXm0+Ax98TTj mZ2rVQ887j9GxzVsdjKg9XRxyA2tSjvXzF7EqZfS9o0GuAmTV+Vi2y28dgWa6v3lVLJpSb qx+vfROtAWr9dC0Z3tZ4mgtKZJ7uhh0= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HMiomNcl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733801840; 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=pEGiPdcE8U0HMqCc8hcN09nWg4b+RmE8pUeIXB0J+Us=; b=syAycEuery1xI/eAuHkyamySI4X7E807ehrjx7fAqXEyXaudRWNiyuMkT6N1Z/NP7IwfLo UlmAKJG063lNykMDVcTXN0Cqn8eU3BXHduoEWRZz7w4ZMRvdsizlKRF98YGZvU8oYZgxJa VlhuRJL8Hh+OvmdUzRwTbh0EUTkrNhU= Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5d41848901bso1666862a12.0 for ; Mon, 09 Dec 2024 19:37:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733801859; x=1734406659; 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=pEGiPdcE8U0HMqCc8hcN09nWg4b+RmE8pUeIXB0J+Us=; b=HMiomNclBiuIXcogTJHwIMDceWni0ME1OBpmOZAhKEBse175l243avt8zL6UBozItx 0NQfdj7ttOdgAYIgm7Q5up7vHxWkpNCQ47P56WY0t3HFve+qsADkrdx1z1fqwkTz7gkl crm0G94BANQvZIH72prcQJhLLG1UyRBww0Um5gJa/vQsjUEtIQ03WUiTdjnOoqzcqvQI /brAaAqHXd1cPD6dySKD4CP6DpLaRUIW+3ejNtC0XmXPzJADwl7B4MEt2dBf97QSy9DN biTvCdCMB+aUUh/PEm04H0n0pMiZYW2j4psirtGBDGymIxs6zxSmRb1J8yHKfR1TrzEY wm5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733801859; x=1734406659; 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=pEGiPdcE8U0HMqCc8hcN09nWg4b+RmE8pUeIXB0J+Us=; b=jg569Cagt/kKKNMbMOEfpTtcaji0YPD9TDtp9PCZgEaZpv5KeILt5+bQNRqDN5R4T/ 52n9Cx9D/AnSyw9h2d/jGxfXo9CxoxH3Rb/BawHLZLLwuNZfdlVeIDsmmw/EPZk9QXzf poFHbxYSdWI/I8jfJqeFbNqj/QklNIA7wZ1dLY4V90xBbTVLM7lOXIf3IpSxyzwa+yJ/ VAS7rg/bjb1EKiAyPFP75PQlHXRYj6VJKSOpB5+i5XAglh2+xtUSUdrO4Smk4LukJAoG kxYF5TcNOJ4nAcx7HwmYLJFbstfzMmQN3DhRs7uaRJ9rJeaqUFFuVUDAi2klz01jlo/f 0ALw== X-Forwarded-Encrypted: i=1; AJvYcCXdjsoApJ9Sv7vmffXKUJNxUqhIgbzTNE0RrrP95a9zF9Y4UccCnt2CPcmIXpzcZDwHVyKHIinNyQ==@kvack.org X-Gm-Message-State: AOJu0YyPL/0O7zQzfTYw3iMPldkHuwGEIlbJeqq3DCHoY8HyKwvebQNp 8ZsR+ZWpYgBARyesnTR2XQDIDc1+wZT9zywTEhntTmkMHy+qNkBmenPzg/a1DFK2n3TlHoPC977 ozl3K+G7Zd1szOKZoJW4MKA6Gmmw= X-Gm-Gg: ASbGncvzF8/TjWNa/tNpzf0KG+ktqynADZKgBvc43iFEpxVWFAZLZi382htvY/03fxQ 5w6rYh0LMyHtDzspPtXXqgKJI/eSPBgIen9rpzA== X-Google-Smtp-Source: AGHT+IElXjz+7x/lQGuFmHk7BJtRPsIF5Xkbrc+PaOE9soOWoyJSq8aIO8IH6O/j+TzaKqiG91uZtuFho2g8MHXawAQ= X-Received: by 2002:a05:6402:3229:b0:5d0:f6ed:4cd1 with SMTP id 4fb4d7f45d1cf-5d41e2b4c34mr1849541a12.10.1733801858975; Mon, 09 Dec 2024 19:37:38 -0800 (PST) MIME-Version: 1.0 References: <20241210024119.2488608-1-kaleshsingh@google.com> <20241210024119.2488608-18-kaleshsingh@google.com> In-Reply-To: <20241210024119.2488608-18-kaleshsingh@google.com> From: Yang Shi Date: Mon, 9 Dec 2024 19:37:27 -0800 Message-ID: Subject: Re: [PATCH mm-unstable 17/17] mm: Respect mmap hint before THP alignment if allocation is possible 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-Server: rspam04 X-Rspamd-Queue-Id: 21A2CC0007 X-Stat-Signature: 8i3dya9haiqqbrcweoq8kg95rp8t1yx9 X-Rspam-User: X-HE-Tag: 1733801835-306169 X-HE-Meta: U2FsdGVkX1+z0s9T6AfpE2YWfegjVUYMRcL9pVXkB1y8Rg0DxaW4sUVmWaku3WmI3JTSpi1ihIJRo6xLDaSkbGXMSEXzafPx7FBBGLExmmVeJQYyw+5mD+GeakbLw58V1B0ZdbAuDqvoixU5xRiOklsHfdTRetobwur4FyxuuKFlPzIQQtf9rLr05dlaeauMKNj1WBKKUJ+kkazhFxxOOWIM76pYVKTWLf4CihhsrTlOC0QSkL5gucOkWfltQX8ulwkiwhV3TBz6w9eDP+Y/7v021mtq4YIdD7hbiSpBEyE900oGJUorVsG6FzfMbPNxlNEGpF/qkwBpJRj0/9H153M9FhAk16vB3iqTL96cpfQTggc1E1W7uFbSApV9cuczC2yHC3rNuU4HuIZO+Rp0Gma+OQUknVURAGaEWQLQs6XxTbPj1aJJXhGJttFC4wTwNY2FSmcYBEBVXu7PxQ+sWPRIe8IKeM2e6UQT2bBQ5zjusvXbaJn+rk3xh5GmjwxJeGjrpywiEXsY/br9Yh2f+4sF2F+Idq3WyA+4948x4+YjIiWJRVR+XKt6t5WJDNvLiH8MKPlwGsKmdzu1rhZglhy1MoB3eWicxXa9NTMsvguWOR3035cOXWOyJevNCl7/UaG8rjNTypxhoGsnyJTgKh+IK1O48h8uW5xezkT3O/6ATmRh+elwfXKKFtnwQKAw4BZoFdZxgcdGPIznxAo3wgfHbqCSRZudQIFH1nD9F3vRLI0gR+2JWC6scPqVu0lBUSQxkwn/CDpX4mD/lDKzYn+HIXR2tHGbCXGrz7oxZ6t169O8GDwifEZLSGAnmXVSa71vAi/4Hm2Xsp2G3G4V4sbqQWogHo7cTe31U84Y64yHPE6K4awEpDSlzlok+FgCkpqCZN3iUxzWKlTvQGvlkpviA49sRj5dWYyZGwsQ2s9rYSock2UPDcqhndCuMI1p+WTD4oLf8D5vmz4wq/b uhuudGVJ zEnpqQ9bH2wiTRQ2Snd1ye8Bp0LFockwWBb6Ftzkoef3ipa6Ex9hbb+HIt4VOBM+FG8zP6yjFIttvAzaZIUDdACE071r9bByrltlxV04rqzsjHw+3XY6Dh31Sj83gO14nSSMgc8L+wrye82UHNtqcKwfuL1hrlRKdaF20n0gAJbs/6IxcyGYrNfJt+NcegGlCS2yRhIcJ6HCWcKdh2VSx3B6qFxSLVWgsIA+Seil0kQbES1sPhTDaxwrRp4yjIX1R2C82J0FeqVl1eD/U5RJpDlqCByWDdVw2GrWogDdnoHhuBZO6Yi4Tz3rkbuIVgvNKaTcGh7F1BSzbmZTb1VSahFiIjw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.139546, 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:45=E2=80=AFPM Kalesh Singh wrote: > > Commit 249608ee4713 ("mm: respect mmap hint address when aligning for THP= ") > fallsback to PAGE_SIZE alignment instead of THP alignment > for anonymous mapping as long as a hint address is provided by the user > -- even if we weren't able to allocate the unmapped area at the hint > address in the end. > > This was done to address the immediate regression in anonymous mappings > where the hint address were being ignored in some cases; due to commit > efa7df3e3bb5 ("mm: align larger anonymous mappings on THP boundaries"). > > It was later pointed out that this issue also existed for file-backed > mappings from file systems that use thp_get_unmapped_area() for their > .get_unmapped_area() file operation. > > The same fix was not applied for file-backed mappings since it would > mean any mmap requests that provide a hint address would be only > PAGE_SIZE-aligned regardless of whether allocation was successful at > the hint address or not. > > Instead, use arch_mmap_hint() to first attempt allocation at the hint > address and fallback to THP alignment if that fails. Thanks for taking time to try to fix this. > > Signed-off-by: Kalesh Singh > --- > mm/huge_memory.c | 15 ++++++++------- > mm/mmap.c | 1 - > 2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 137abeda8602..f070c89dafc9 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1097,6 +1097,14 @@ static unsigned long __thp_get_unmapped_area(struc= t file *filp, > loff_t off_align =3D round_up(off, size); > unsigned long len_pad, ret, off_sub; > > + /* > + * If allocation at the address hint succeeds; respect the hint a= nd > + * don't try to align to THP boundary. > + */ > + addr =3D arch_mmap_hint(filp, addr, len, off, flags); > + if (addr) > + return addr; > + IIUC, arch_mmap_hint() will be called in arch_get_unmapped_area() and arch_get_unmapped_area_topdown() again. So we will actually look up maple tree twice. It sounds like the second hint address search is pointless. You should be able to set addr to 0 before calling mm_get_unmapped_area_vmflags() in order to skip the second hint address search. > if (!IS_ENABLED(CONFIG_64BIT) || in_compat_syscall()) > return 0; > > @@ -1117,13 +1125,6 @@ static unsigned long __thp_get_unmapped_area(struc= t file *filp, > if (IS_ERR_VALUE(ret)) > return 0; > > - /* > - * Do not try to align to THP boundary if allocation at the addre= ss > - * hint succeeds. > - */ > - if (ret =3D=3D addr) > - return addr; > - > off_sub =3D (off - ret) & (size - 1); > > if (test_bit(MMF_TOPDOWN, ¤t->mm->flags) && !off_sub) > diff --git a/mm/mmap.c b/mm/mmap.c > index 59bf7d127aa1..6bfeec80152a 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -807,7 +807,6 @@ __get_unmapped_area(struct file *file, unsigned long = addr, unsigned long len, > if (get_area) { > addr =3D get_area(file, addr, len, pgoff, flags); > } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && !file > - && !addr /* no hint */ > && IS_ALIGNED(len, PMD_SIZE)) { > /* Ensures that larger anonymous mappings are THP aligned= . */ > addr =3D thp_get_unmapped_area_vmflags(file, addr, len, > -- > 2.47.0.338.g60cca15819-goog > >