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 CB675C25B07 for ; Tue, 9 Aug 2022 18:25:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3B7B8E0002; Tue, 9 Aug 2022 14:25:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CEAA08E0001; Tue, 9 Aug 2022 14:25:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD9E98E0002; Tue, 9 Aug 2022 14:25:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AED1A8E0001 for ; Tue, 9 Aug 2022 14:25:09 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7EB82140187 for ; Tue, 9 Aug 2022 18:25:09 +0000 (UTC) X-FDA: 79780881138.30.C036B31 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf10.hostedemail.com (Postfix) with ESMTP id 0F2C6C015E for ; Tue, 9 Aug 2022 18:25:07 +0000 (UTC) Received: from [2603:3005:d05:2b00:6e0b:84ff:fee2:98bb] (helo=imladris.surriel.com) by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1oLTuT-0004fH-Iw; Tue, 09 Aug 2022 14:24:57 -0400 Date: Tue, 9 Aug 2022 14:24:57 -0400 From: Rik van Riel To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, Matthew Wilcox , Yang Shi Subject: [PATCH v2] mm: align larger anonymous mappings on THP boundaries Message-ID: <20220809142457.4751229f@imladris.surriel.com> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660069509; 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:content-transfer-encoding:in-reply-to: references; bh=Um8Hg2jrCOwKX4aIV/UICxc5nu+Jp9NOfvCQ+3ySSUI=; b=uyPbwCW6LnyGBHkSdYOGb59QgxnIrb4CZfXhezXOBC9mzPZqOPzgL1nxsEt3be1PR64HtE IEbVSmkDazxQzyrFIt7jfrMLrMZayCH9itgQFNKkDN0/wwpNffacs8Z/euG7jHao4km20o x+ODey/HCOtcqF7iuZru/ZywiqxwX5w= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=none; spf=none (imf10.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660069509; a=rsa-sha256; cv=none; b=SIaDHNgbjAEThZ+nWQBbxasGEpvojujJ2TUeF85He0Kd7uAvfgn7Lzle1L/6aMOfl88A7t a+hTxfFKeAo56kYkIcQo6VBAaRUEo9xZBOAYPku+Ux7GGrl7GECsaVp1G7qnRULCMWqpl/ figESnmwI5LRRNhXv4WUBaL+JQHdLCw= X-Rspamd-Queue-Id: 0F2C6C015E Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=none; spf=none (imf10.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-Rspamd-Server: rspam07 X-Stat-Signature: jbs7pukhagowek8st1wren8wxwynpwi3 X-HE-Tag: 1660069507-444329 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: Align larger anonymous memory mappings on THP boundaries by going through thp_get_unmapped_area if THPs are enabled for the current process. With this patch, larger anonymous mappings are now THP aligned. When a malloc library allocates a 2MB or larger arena, that arena can now be mapped with THPs right from the start, which can result in better TLB hit rates and execution time. Signed-off-by: Rik van Riel --- v2: avoid the chicken & egg issue with MMF_VM_HUGEPAGE (Yang Shi) mm/mmap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/mmap.c b/mm/mmap.c index c035020d0c89..1d859893436d 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, */ pgoff = 0; get_area = shmem_get_unmapped_area; + } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { + /* Ensures that larger anonymous mappings are THP aligned. */ + get_area = thp_get_unmapped_area; } addr = get_area(file, addr, len, pgoff, flags); -- 2.37.1