From patchwork Thu Aug 29 07:16:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Charlie Jenkins X-Patchwork-Id: 13782678 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 2BFF3C7EE30 for ; Thu, 29 Aug 2024 07:16:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B00A06B00BE; Thu, 29 Aug 2024 03:16:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E7996B00C0; Thu, 29 Aug 2024 03:16:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 815566B00C2; Thu, 29 Aug 2024 03:16:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 5C7336B00BE for ; Thu, 29 Aug 2024 03:16:27 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id D6A57809F5 for ; Thu, 29 Aug 2024 07:16:26 +0000 (UTC) X-FDA: 82504424772.24.054CBAF Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) by imf04.hostedemail.com (Postfix) with ESMTP id D538040006 for ; Thu, 29 Aug 2024 07:16:24 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=gMOQJgJO; spf=pass (imf04.hostedemail.com: domain of charlie@rivosinc.com designates 209.85.210.182 as permitted sender) smtp.mailfrom=charlie@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724915740; 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=eRZz0v4roamBPZuEY8lRo6reatKDFS+11+O4EIK+5eU=; b=yCuwVCsAJ2GKvejfhAslmk0c3NPaWluKw1jERAyEDLgY0kdwzDWmePE3E4BKGYWkft7i2K EdXiky5ikYPHJzlT+vUmC344JO7gpgcaRw5iZbpVbdOGGOTFSbbJokXwoMmHIkwzf5lRPV yDrMtDArvldqvtJz/LwvZ5ulKPLbncc= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=gMOQJgJO; spf=pass (imf04.hostedemail.com: domain of charlie@rivosinc.com designates 209.85.210.182 as permitted sender) smtp.mailfrom=charlie@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724915740; a=rsa-sha256; cv=none; b=RF0Zj9pPh3a+B4R4MER8xJSlwtgECw2hAIs9rZRiAb/5WJSLophGr4VtoZ4678IHjn75U+ CjwN92QVgVXu/LSMbB3VXuzusN00okFt3ochuJRYnNLpKh+QvKoloqpcWlizp4BBzkL4k6 XOxi0XXW1F0x5zX8nA443YxdsGzUXfg= Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-7141285db14so309484b3a.1 for ; Thu, 29 Aug 2024 00:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1724915783; x=1725520583; darn=kvack.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=eRZz0v4roamBPZuEY8lRo6reatKDFS+11+O4EIK+5eU=; b=gMOQJgJOf//Z83kIHy1Mtt5Hjp/en15aTIusuV14jddlCZYrCpeV0oL+qgZdCzz4dG 7hK99xUx/hdAOiqCcJd17edOUfe9ievvxJ0OQ8TUdrFNa0d+v6TmX7Wwk5B8VrG9bZrj Ff9za/IlI/+sj7M1irnjhxEaDDLfKxf4m3Ve5MmvntiOYfo9JrDrAZgbfRrObyopNita JCjdJ72P+xfdwacug7CTnnDF6YemCfDLmZTAJ7cH2mU2D1Z9kyXhU7dQ6KFFBhiZLovZ 1g3BwcOjuY5effMZkJ/eMabyHOLaSdRjO0OzXcZMhmrC0MLDC+mTUlGzxXaKddzCbvSP ZzWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724915783; x=1725520583; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eRZz0v4roamBPZuEY8lRo6reatKDFS+11+O4EIK+5eU=; b=fENBUrHXT8is3bO2cJZB4mJ443ZM7YWxL2lqJXFbOKtaVZnIbJhfYHScPQkgTyJ5rh sotEJCcSCK9E5fBBQI6sFr+A6Xq2jU8UcuV5cjgi48XkYeUg419KbswcKbD3pd+YSAm3 ruBBlKk/gF+LJxouchYVHi9ukljggSOrTkgNjbHPSqxfxpt6NmUl3Yp2sHZ6d8idcdKc QpylVyKu/E36uHLnD1t5dS8lLulKErugWUX9UlLV3nh0jkZf5vbm6X5Mj+uQKduHLkFv Oy4bVRyi7tWSWfaCbFlUgQJ6ceUaP2wJ/iI6BOSLPrc+XleEf5MLmNserVHKV3C58N9w zcSQ== X-Forwarded-Encrypted: i=1; AJvYcCXVZFfTJ/YxR5YUk8L2FWO6BXpzWPlSe/SguSAmr016l2aAzFtNcqoEF9m6oE8IjcUq1S2lMAHbMg==@kvack.org X-Gm-Message-State: AOJu0YxLTmrDHTezcKjxUXvb7lT9NTRH1vXllwRf2rI0p6JHX3tfqybM aJgi9R6AWg8e545BPc0K1W+UwUcAeN76OUPLSlGmGWQlLlbP8+F+bAGKpsJ7U/eEExN9DAclAo9 e X-Google-Smtp-Source: AGHT+IESlo3+HNMz8Vyf9gnK2kr34iORO0t8ZckMgQQJOrmm4rJ0EngcQswLax6rU2xQbGZPh7/0eg== X-Received: by 2002:a05:6a20:6f88:b0:1c4:7dbc:d21a with SMTP id adf61e73a8af0-1cce104dce4mr1887803637.32.1724915783368; Thu, 29 Aug 2024 00:16:23 -0700 (PDT) Received: from charlie.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7d22e9bef08sm581976a12.58.2024.08.29.00.16.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Aug 2024 00:16:22 -0700 (PDT) From: Charlie Jenkins Date: Thu, 29 Aug 2024 00:16:00 -0700 Subject: [PATCH RFC v2 3/4] mm: Support MAP_BELOW_HINT in vm_unmapped_area() MIME-Version: 1.0 Message-Id: <20240829-patches-below_hint_mmap-v2-3-638a28d9eae0@rivosinc.com> References: <20240829-patches-below_hint_mmap-v2-0-638a28d9eae0@rivosinc.com> In-Reply-To: <20240829-patches-below_hint_mmap-v2-0-638a28d9eae0@rivosinc.com> To: Arnd Bergmann , Richard Henderson , Ivan Kokshaysky , Matt Turner , Vineet Gupta , Russell King , Guo Ren , Huacai Chen , WANG Xuerui , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Naveen N Rao , Alexander Gordeev , Gerald Schaefer , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Sven Schnelle , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , "David S. Miller" , Andreas Larsson , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Muchun Song , Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Lorenzo Stoakes , Shuah Khan Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-alpha@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, linux-kselftest@vger.kernel.org, Charlie Jenkins X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=991; i=charlie@rivosinc.com; h=from:subject:message-id; bh=awlA0FQ8vwXq3Nn6i3BedGsUxTSd4n1W8+rk6Ti/shY=; b=owGbwMvMwCHWx5hUnlvL8Y3xtFoSQ9oFBUtNRaX7W4IPbnI+Ms3hivNnCcHEiLSn/wN2Mfr8Y bUwSP3TUcrCIMbBICumyMJzrYG59Y5+2VHRsgkwc1iZQIYwcHEKwES8tjMyvNn0V3yhfGTAnNVL rI6JakxSy1zhtaNTK7Nm7eOzb9jnWDIy3NjktX5Wn9/XRXLVu44d2/Xri3n+zz1GZcf0P1w88Pv nEX4A X-Developer-Key: i=charlie@rivosinc.com; a=openpgp; fpr=7D834FF11B1D8387E61C776FFB10D1F27D6B1354 X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: D538040006 X-Stat-Signature: 999dc9zwhsqqu6rn73tgbgt6gx6ggiaq X-HE-Tag: 1724915784-591428 X-HE-Meta: U2FsdGVkX1+3HrdwibeeCm6JWbEqI7vOC4RVlgucz61fSJPQzJT08+yIFYtOWquAQ0xYekMl6GITqtAA7JdCqi6rN9gsTwtu9evG2Kk0/UVwg5nKd1fDB9uVvQwaG+fNsI/p1c+RGscwepE3k9KczGhKqzJ8RDzpGv+URnFmpiwja8eq8dTpNlzcgnxhkBIfVDi6bxBAH+BmVMb+q+oj5dDSCG0gtN9pMnGheeEXxN56JCLWYIcfcDYDy7XdhBOdH/prdgLtyylZ9jPWmfdv+c2OzAEjQn0gF8Foko2huDEBdeM+KHV2s7E2tYuzJCQ9+2RO8a7t3wSTA/TtCC+oNEdsinKyMUdVhv8T8AalwoFrizfV6uxOL0tQUngn1olYvP8GY9Oif+eYu76JsN+oCRx8Hi9BuYSZJDqwWyp0UTDx5xqNPH3zW9d2Jpo6FYg7mSmVtjCMSjuruEnbK1NMrcJQeSd+RycYOzcWYnD6YJ+Zn/RBF0b+gqJgMwvtyFLtVGZXG5t73M4OdQXtlLkYaXRtUBiQ2iJlqRZWl73uEbspxYVadL3R0XdL/Gf/VEBA1KnYMCEV1aZwCUQIVpwhJPQl+jMBX4/JWTEwlLdpHmiU5KKdW0K/489z1u9ly5mNjlXUBDvabGD+Go/rNA5qlYT7ubnxmY3Q717bknv8W5qyxRfYTgat/idA0xcNj1OcW9bQ6E18W6SQUwNxlwU+uEBahq7QaQKzgNjUqiYWMrQGYzt1Nf+AjOftJwggYiX2mQBuVKjghcHidIJQdkoXGbx+UhvDwlsMX5l+x3OPI8ijI6RefrSHV/TUW2Pz7UkEnGXl6CQIzylokKMARdzsMpv6TawwFVu28GfG+I07NOwKiGtpFyu/2e5ykfz2WSU3PpDJKP/66UGPQ5Rn0HLpzOn7YY7vXDbDA2K8Id5XNok7QwFfbUxlBLjahhrRtWiYpzwHpkR/l+OVFuTO2i6 K4IZkfxx QEejL8ZrB+YofqujQxAHhHdYI7+oEUo7C++3GLQJyegG01X4YjRh83r8PXw7uZ4/1dRPEXdvK3blc/UvgJd8Biarfj9ZjX7SJWS2iabdDZGgRJg8nOV59sCc9dURt3UhzXCJJkp4s2NacVKHhy5JKXdeFcyr9Y0wm9XM8qQtQF0IAWb7+GvyBt02UAwptO3cxleRSjtbT7Ija4zpdnZD01SR7y9cinu7Lb3Y4SuieOkHMHazkmYMScNEwUI0J0uSoBcugJnWxL5ul5jDLLZolUZ8FyGr5UhWi3pBCoOkY0lr+w3zDWbtO5NP7+8r2AAUpSS4Sr9/3TnquUsA98b65Sle/kFWrvMmyIMtH7mBQiTW4BNXSmOK25J2AKvgUNrYLsoZEwN3xu/WrXA8v+WwTgUp7Q7aV277A2lwoZxv/g3nN/ID3JkvCJY599w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: To ensure that all memory allocations comply with the new MAP_BELOW_HINT flag, set the high_limit in vm_unmapped_area() to the hint address + length at most. All callers to this function set the high_limit to something reasonable, usually with space for a random offset and a gap for the stack. To respect the provided high_limit, take the minimum of hint+length and the given high_limit. Signed-off-by: Charlie Jenkins --- mm/mmap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/mmap.c b/mm/mmap.c index 34ba0db23678..459ad380c673 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1766,6 +1766,9 @@ unsigned long vm_unmapped_area(struct vm_unmapped_area_info *info) { unsigned long addr; + if (info->hint != 0 && info->mmap_flags & MAP_BELOW_HINT) + info->high_limit = MIN(info->high_limit, info->hint + info->length); + if (info->flags & VM_UNMAPPED_AREA_TOPDOWN) addr = unmapped_area_topdown(info); else