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 91385C19F2D for ; Tue, 9 Aug 2022 17:36:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1B85D8E0002; Tue, 9 Aug 2022 13:36:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 168698E0001; Tue, 9 Aug 2022 13:36:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02F458E0002; Tue, 9 Aug 2022 13:36:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E42EB8E0001 for ; Tue, 9 Aug 2022 13:36:38 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id B6C2440507 for ; Tue, 9 Aug 2022 17:36:38 +0000 (UTC) X-FDA: 79780758876.29.E780C86 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf21.hostedemail.com (Postfix) with ESMTP id 448211C0033 for ; Tue, 9 Aug 2022 17:36:38 +0000 (UTC) Received: from imladris.surriel.com ([96.67.55.152]) by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1oLT9Z-0000f4-7e; Tue, 09 Aug 2022 13:36:29 -0400 Message-ID: <5389e4e0623a32799cc7aebf468420777578f37e.camel@surriel.com> Subject: Re: [PATCH] mm: align larger anonymous mappings on THP boundaries From: Rik van Riel To: Yang Shi Cc: Andrew Morton , linux-mm@kvack.org, kernel-team@fb.com, Matthew Wilcox Date: Tue, 09 Aug 2022 13:36:28 -0400 In-Reply-To: References: <20220808164658.5079a9a0@imladris.surriel.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-MAVnqCMB7S3DNAqq5FcL" User-Agent: Evolution 3.42.4 (3.42.4-1.fc35) MIME-Version: 1.0 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660066598; a=rsa-sha256; cv=none; b=2Fv6eNBqAAR4Q6RsPEy8vt/2BfSYjRG5HIBzEN05VVbCoKMrLRMJ+E3QLTdMz02WrM645v 600T0poSTCFjRmK2/nXBZ1gTuwuhRMp1AXeqSHy8uwYyC6yV12TJM2lpw19Pme4K+J1VNy 6dmwja9T88LfQQV9ESf4FTawOIjMnYs= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=none; dmarc=none; spf=none (imf21.hostedemail.com: domain of riel@shelob.surriel.com has no SPF policy when checking 96.67.55.147) smtp.mailfrom=riel@shelob.surriel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660066598; h=from:from:sender: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: in-reply-to:in-reply-to:references:references; bh=IhUUO410u1W8qGHdybHYTOQ47ABPNjyzsXBeOm24O5U=; b=d3J/qGr408GG3+fP3MSnykCrdT7EvkmlkjgR11ZbQMN76JObz7vhuwh87bt78PWU+ZNdF/ SgFPuOBxzwDf39VeTkx6DYB3O+NyjAJtVk3Tf0o6I4Ds1/zRTNvdkO/qZa0rus2AcAgCmB qMsi6mI30jy64h5CS96cmbiWXoy0Y20= X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 448211C0033 Authentication-Results: imf21.hostedemail.com; dkim=none; dmarc=none; spf=none (imf21.hostedemail.com: domain of riel@shelob.surriel.com has no SPF policy when checking 96.67.55.147) smtp.mailfrom=riel@shelob.surriel.com X-Rspam-User: X-Stat-Signature: rzz744w8f1tko7sjwczod1184w1rg4yu X-HE-Tag: 1660066598-359493 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: --=-MAVnqCMB7S3DNAqq5FcL Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2022-08-09 at 10:16 -0700, Yang Shi wrote: > On Mon, Aug 8, 2022 at 1:47 PM Rik van Riel wrote: > >=20 > > Align larger anonymous memory mappings on THP boundaries by > > going through thp_get_unmapped_area if THPs are enabled for > > the current process. > >=20 > > With this patch, larger anonymous mappings are now THP aligned > > when checking in /proc/PID/maps, but only when THP is enabled > > for that process. > >=20 > > Signed-off-by: Rik van Riel > > --- > > =C2=A0mm/mmap.c | 3 +++ > > =C2=A01 file changed, 3 insertions(+) > >=20 > > diff --git a/mm/mmap.c b/mm/mmap.c > > index c035020d0c89..3a9d19cec690 100644 > > --- a/mm/mmap.c > > +++ b/mm/mmap.c > > @@ -2229,6 +2229,9 @@ get_unmapped_area(struct file *file, unsigned > > long addr, unsigned long len, > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 */ > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 pgoff =3D 0; > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 get_area =3D shmem_get_unmapped_area; > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } else if (test_bit(MMF_VM_HUGEPA= GE, ¤t->mm->flags)) > > { >=20 > There is a kind of chicken & egg problem here, MMF_VM_HUGEPAGE is not > going to be set if there is no THP eligible vma even though THP is > enabled. With THP enabled=3Dalways, we should always end up with getting MMF_VM_HUGEPAGE set after the first VMA, but you are right that: 1) The first VMA might not get the proper alignment, and 2) with THP enabled=3Dmadvise we might get a whole bunch of mis-aligned VMAs on which a subsequent madvise would not create the desired THPs. You are right that that condition should just be removed, and we should decide alignment based on VMA size alone. Let me send a v2. --=20 All Rights Reversed. --=-MAVnqCMB7S3DNAqq5FcL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEKR73pCCtJ5Xj3yADznnekoTE3oMFAmLymxwACgkQznnekoTE 3oMDLAf8DUpkz+j+VendBDCxwBG+oZwzSPU6i4ZI+/uswTVbqCgkaSJoy8whjrIU x8VLGhQqzVN5xbwTucekxKkyHQd7kOi+crMh8GNan6hiFw9bsN+92mVqylBMm1mL 5jjCqQFWGfDaxI0/t8bdqe4R4/pTw3VCfS5eGLXen1YuxDCgZNvWDJj7GxjwPTOh fWqsr4CApUVYJ+R47Unt0JgMoF8ZObll3n8rQWJ7TVmHszbxEm/6gJVeeCNDA59r rPA17O6pZTskDiRvQMgTYtmwuGA4Vk6rTn30+oIg46+6R5asZ/3xQmHRVdVzWCDj nCWUhF5ISV3AtIS32izMrWpUChH76g== =Oucx -----END PGP SIGNATURE----- --=-MAVnqCMB7S3DNAqq5FcL--