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 4AB4CE7717D for ; Wed, 11 Dec 2024 20:35:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCE566B0082; Wed, 11 Dec 2024 15:35:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C7EB26B0083; Wed, 11 Dec 2024 15:35:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B460B6B0085; Wed, 11 Dec 2024 15:35:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 9987C6B0082 for ; Wed, 11 Dec 2024 15:35:30 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 243518131B for ; Wed, 11 Dec 2024 20:35:30 +0000 (UTC) X-FDA: 82883833116.11.F15EDBE Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf22.hostedemail.com (Postfix) with ESMTP id 59E40C0009 for ; Wed, 11 Dec 2024 20:35:03 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="RRsk5P/x"; spf=pass (imf22.hostedemail.com: domain of bgeffon@google.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=bgeffon@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733949317; 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=/pj3NqJgTvcOXsidYtItq0d+PPAmb+aX2PnoBuGfq+g=; b=hXfHK03/HmJ+C5HBaVwOJyNUccsbHJOKX54TUzf7a0fxnlmXgMGBusaxMRJ1C2pIlDYNTv Fm2mamsTzLd4o4tCrOmSG6HNuuSmc6LWFTpLNW+Q2P9tv45mHwsWUAxFgLmRvHO1F1dzur 2pDF6CeyDE2fJNwpSSVH/tE3rZLXlFo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733949317; a=rsa-sha256; cv=none; b=6ncigx75h6i1C0x2yBUA5ISq6KrjVy9LA4nVXeUefLpiS3pg06Fl5kyznCggfxutsJGoQE ZqhpbP1kx6NA4n19JHaZEpq0O+0PE9mTVxJZYZKYYR05cEDQkjbgH1bLv1MaclV0vrmz8T metZgDCK4iyNyE4JfBxvRMOqoCoVKVU= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="RRsk5P/x"; spf=pass (imf22.hostedemail.com: domain of bgeffon@google.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=bgeffon@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-215740b7fb8so2095ad.0 for ; Wed, 11 Dec 2024 12:35:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733949327; x=1734554127; 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=/pj3NqJgTvcOXsidYtItq0d+PPAmb+aX2PnoBuGfq+g=; b=RRsk5P/xM3cnzYAze/64krjHCCIMDKkUsjF66dwm5tVjuqwU7GeArSXqZLoyTYECOT AyYYYZON8IuUxzBk2TY1tjOiTqYOG6Wps6Bhe9cjzraLh4wyH7lRrM10cyLYYvy8GoXb XIsoqG66QWsAv/7htjKpR8YblEI6AMKa3lhIBzfA8Dy6XYndEtOW3pMiIl6nS4eIP6Ze TZxpe7FnqE8DyKwRERFt/tA+SyigdCBnAufaaUO8nJaAtFVdvII7cx4YlSSqs5jMK66F P9Tx/V+QqvWCBYQ4HoBPYU0wwGrAmZcwwPXU1D12Su/oH3j2YAJnHUDsKENeFhIDL0+7 ZLCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733949327; x=1734554127; 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=/pj3NqJgTvcOXsidYtItq0d+PPAmb+aX2PnoBuGfq+g=; b=bD75K1GjZ50Yt/Pb4Qy93Rbrw0Z2bQi95PdW3er+5QYR/tTrxMNtWUgwG9tJvjKHc1 cArDYkCygWZrXbAto0hfAO5cRxZlMKyJBo3iFJmx8vI7LtHAXi7CSY6Mqu/qVPQyS3Et trfWpQVPjDKHRntddww2IvwKxU/I3QY0Sg2j2nInYnheLzWN9miJSYpo9IBN2FuSA4KT VQHDmn+fcK0rhiSvU2MV+1q6z0MYanYBLBGYj85CueU1LEkBR5WctGTUSu0QymBvkNhV lWQNOoCFO6q4L+OBBgQOwjzC68YNS5NyvkCAMtaLKrzbcRUgT1aCXEsv3l5Cr3/G8N5u CH0Q== X-Forwarded-Encrypted: i=1; AJvYcCV+C32ukfcnHvEDX2NK4cqYqygsML0nsykbGvVgyJdEat6n29W89onpwG/Zh3IR4Ldb6Vs0R5+Gfw==@kvack.org X-Gm-Message-State: AOJu0Yz0rwoRSIWsU3F4LPDFuiXMZiJL/DYpXI79YzL41sNRC+nREZmo Cul89NqCaqBpzelPKmTioVUMS5ip01lrcceA3s3tVfv4Jr1kO6J8DdXCEXiTmIPUVYrA5Yqqgwu HRUK9ojik7Q0WukyKix3nMfWrpt7y2cT6Am/y X-Gm-Gg: ASbGncsqaFp2XiG4Ew8Ooz/NGFdLbklV8Uk9K6I/3vEjR7KsrqkdsiDgqWcG6I0CdCM /G5HIO1gYfpkr0pqRc3iccASK1n3lOeBd4uNzfluvKPZZAhPUBdEQIDdqxuGY9Q== X-Google-Smtp-Source: AGHT+IFcL5A8QdkAaWwqAKHbF6R5mbOYimmmWoGRKcn8LA+nn2SqIpfSaqTFtXnfuXswNyFdWPiWmgnLMkM5hynVPDw= X-Received: by 2002:a17:902:c94d:b0:215:5a53:edfd with SMTP id d9443c01a7336-2178dc99062mr483655ad.0.1733949326515; Wed, 11 Dec 2024 12:35:26 -0800 (PST) MIME-Version: 1.0 References: <20241210213050.2839638-1-bgeffon@google.com> <20241210213050.2839638-4-bgeffon@google.com> In-Reply-To: <20241210213050.2839638-4-bgeffon@google.com> From: Brian Geffon Date: Wed, 11 Dec 2024 12:34:49 -0800 Message-ID: Subject: Re: [RFC PATCH 3/5] mm: mremap: Allow new_addr to be specified as a hint To: Andrew Morton Cc: Lorenzo Stoakes , Jann Horn , Vlastimil Babka , "Liam R. Howlett" , linux-mm@kvack.org, Marco Vanotti , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 59E40C0009 X-Stat-Signature: mannrx7pxw3twb9pzfpkgs9c1p9xpyxx X-Rspam-User: X-HE-Tag: 1733949303-140130 X-HE-Meta: U2FsdGVkX1/pZHGujz+fJQ/J71QmVoEwmooDVa+aqFQxQ/W1n4hz0jZ58MvL/KCQFXkelPKPjPU++l3zcDlDGoWUxnt1J54xpLF+Gmid+u2eh/IqJGxmjDCg7UmcBMv4CAmMPWiIVGA9hfJTOejCNKGgCOK626CdBsSqEk1Pgb/B40rjMLLPF8hG/vjzHIhEKTYJijQB0pFaUtWdJkGZUxSXg3CoRmR4uqa2RNqDXC/UsorQ52BrY0rEU8VpNmc/Bhm4tKQwaiv+Btet/KsOOa9ukoyXBtYrlOBodBLqyjHaPv9AbhBsYXdkm4elMqSEMtiSjzFcJTW6emuqUwJvSjpWi+1mHvlKrN0/YNcrt3L1wziTj2z4VEq3WRoWi7tMuZXYRITBTO11XSFZuIP10fkR8uK9RJUqcoiHLMzXtwNM45eXgbaOUhtKQ3n0NhqDeKPENV/l2KHt1Jdv5O3U7gFVvLuuDhVr9rqiyltA69ELq6X7e4WpWv1VNkOWX7J1nehKL0U2HRKLV67HW+RPx7x3A2UbWK448k3yw9/3aUZjDNNrM5hinopXPNBkoUNWONQcJ5hbic//spl6kPAZt/whd/clMHsjTQHVwJm8G8wDcV1VHfVt8BMkc5IAMmcRIU6HsrmRhP/BHcrX4RVF6nmOWak6/FT3bf0QyJEykNeTBRw0RoqiCH52N9aeLJsosHomqeU2qp62Fui3Vv696Z/wfy2tVHiccxK7dMVw5Vk5enLsp7SQMD5BPHi012nKon2LHD6maSLTRkYz3uJMe15Gax2iNZhyf3F7f4vFi2N4DuCqTAAuV/Jmd2ufWHA2u0kd11289f8HYaC+jD4KEYSjuZP8JTHTSD8xEtDJ9yfSQgmczedZF2Nzc3eBykw8qjifVwtM77zTzk/iIktafPkruXIuOi8xIMUq54gLNWPVB9OcL16JGsN4IlmYSJMaG+dAaghmqOP40wvKshf 9K3sPc65 qUi6kRdOOkkAvNzhfa/5otCPtVXWQoU2UsrfeQZ8B1YDufah4ubK/wdZ/Sl0SvCeiLlzv1xwgOhqJ60bxt4TzRcrOG2GYRzHUsAJKcjTG0MvMePOSuc0MfO2g38Sb8eg9aSGaVj003tH3hgzJgyPlo6ivZ2+WrSKRq9NI9O6U1mzBNfPy01tv2siTdI10XyW8JMrqKxXLHtbzx8N1JThzehXkHLRvT5JcT/SZb8AT4HJRIWznTIE2bsZD7+wPateVDgpb3S4vpkPHmoG6Ny9Faj9bCo6Qoh7TbE3l9ZNUXIOjKxud5aeZZe4/6nOoU+Hi29PdirI5IiSAadkGRpns0xvhnNzz9jpjTTVhCGlQqEqvo8iPjYTud4WT/eJTzy2t6i1M X-Bogosity: Unsure, tests=bogofilter, spamicity=0.494391, 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 Tue, Dec 10, 2024 at 1:31=E2=80=AFPM Brian Geffon w= rote: > > When using MREMAP_MAYMOVE previously the new_addr was ignored unless > the user specified MREMAP_FIXED. This change will allow it to be > used as a hint in that situation similar to how mmap(2) behaves. > > get_unmapped_area() will handle page aligning the new address hint. > > Signed-off-by: Brian Geffon > --- > mm/mremap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/mremap.c b/mm/mremap.c > index fdc1b0f1b38e..1d2522fba0ef 100644 > --- a/mm/mremap.c > +++ b/mm/mremap.c > @@ -1205,7 +1205,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsign= ed long, old_len, > if (vma->vm_flags & VM_MAYSHARE) > map_flags |=3D MAP_SHARED; > > - new_addr =3D get_unmapped_area(vma->vm_file, 0, new_len, > + new_addr =3D get_unmapped_area(vma->vm_file, new_addr, ne= w_len, Marco raised the concern that since glibc [1] handles new_addr as a variadic argument, existing call sites which used only MREMAP_MAYMOVE might end up passing garbage to the glibc wrapper for new_addr. I checked and it turns out that musl does the same [2]. So I'm not sure how this could ever be safely implemented? Worst case scenario we're leaking stack data as a hint to mremap, yikes. 1. https://sourceware.org/git/?p=3Dglibc.git;a=3Dblob;f=3Dsysdeps/unix/sysv= /linux/mremap.c 2. https://git.musl-libc.org/cgit/musl/tree/src/mman/mremap.c > vma->vm_pgoff + > ((addr - vma->vm_start) >> PAGE_S= HIFT), > map_flags); > -- > 2.47.0.338.g60cca15819-goog >