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 CA59BE77173 for ; Fri, 6 Dec 2024 18:43:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 592496B02C6; Fri, 6 Dec 2024 13:43:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5424D6B02C7; Fri, 6 Dec 2024 13:43:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 40A356B02C8; Fri, 6 Dec 2024 13:43:31 -0500 (EST) 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 220AD6B02C6 for ; Fri, 6 Dec 2024 13:43:31 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D715D1A1DB2 for ; Fri, 6 Dec 2024 18:43:30 +0000 (UTC) X-FDA: 82865407086.04.5D1E586 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by imf29.hostedemail.com (Postfix) with ESMTP id 765D5120013 for ; Fri, 6 Dec 2024 18:43:04 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=vB61iSBU; spf=pass (imf29.hostedemail.com: domain of jannh@google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=jannh@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=1733510600; 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=iQcm115gWE6WA4WBEAY5qj+MCjWx6Fk8a4BOCCaxeFw=; b=cSuYswgIm7m7Kd6A2osta2SLxBl5otuTb2M5E6yd/IawZAl0LrUmYtlInxdI/nS7Ws8odI CFV7luU/cHP9y+tEzf3VK7uFVCCC7SxyIE185Y2hYOjskZ9ET3fDkYyYUbXIOcGrWT9Y2n HbUF1gQN95To8jshUvmdSkaAaT+Ho5k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733510600; a=rsa-sha256; cv=none; b=vG3jK3/7KNvMgdL+4Cwt1q5IUWpLDKhbPBot95G3/UTZYaEqIa6sCPWTdkc0xPSLYgmnHR Lbl7UQtT8GZ9d3AYhtn4WxZZWLNthuJ0DQd6CRmmkPisMSJDhMlyWVaDAtcBudNvbzUrju kRXmMHl3I5u5Rgj1QfvY35bmQVe5ROA= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=vB61iSBU; spf=pass (imf29.hostedemail.com: domain of jannh@google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5d3c2135f61so202a12.1 for ; Fri, 06 Dec 2024 10:43:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733510607; x=1734115407; 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=iQcm115gWE6WA4WBEAY5qj+MCjWx6Fk8a4BOCCaxeFw=; b=vB61iSBUyzQLRFv9PrBpvm+Y7G4Qsa1CZoCFI1dWMO3pRIsU35oknNKmbjZYDdxY3O M56/2hNhXjoaU70E1m9xlYDKzsbNPfkErvD3pBz5fapeKSrjWEFkVcKwBnfNLGldwFSN HSoMNMDkMHhSMxPp1RjIpHegWD+NaQjFKP8eQXeC6B6+lg64tLqTqy6j08iqirD5Uw7h bx/f9Wh3RPyPLURdS66whHq0yASIZtJiAAg12yKHBwx8oAwDtPQXySlkWNOKwkL1Mvp+ xhwqlHoTyT0RbrBYseXp7UuJ9qZpiwmyuzGAbMvwpxoklpVOWummpEqdce5UCl9AGYdP O4XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733510607; x=1734115407; 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=iQcm115gWE6WA4WBEAY5qj+MCjWx6Fk8a4BOCCaxeFw=; b=NPQuqaPB5mYGvoksRAj+BH1YPLPydXKa90onlTzM92W5/PaO63PaUN7/LqoyEc+pYb jlG/7kR1Mm1Sx3pLJhAZdaZzf6Y4ccYYRAtyvR5WNkrQDkGTr3wxNHcM322X6nE/Cd/n 70JDXOfy98zYiy0s8qB+FKV/RW7Huz9+3H8UdQhy8ZFPTn0VHSvxf58mbz/uAZn0BVwD vtmA6lkR61vvRItBKInSddf1SRLQo1EIw1NNDYZs0lnUvu2anu2EaCQKtZxPa9NSFzB2 DagGCCvK1WvEX4QkJBJEboBu8NPunuDPMuB4kAf+AHdYi+VHuf/i62VdRCNf+SRUTckW 7LmQ== X-Forwarded-Encrypted: i=1; AJvYcCVZ15Ny8yuqFvMVh955EgAnBVAESW+Rv6jxsHYHYLFJKdcJ685hvJ3g+1xm7Ad4hB1qJQ23rtyJqA==@kvack.org X-Gm-Message-State: AOJu0Yy4FlD5RhqMDLA1u5ysWJTWOHwbJHVtVwpAPfqmjidZ33NbOumz +y1bgGHqKZTLl0L/mOPWkwf54dG3O7TxYJOr5C1nV6iFY4u+8W7BERUBHhDS9qZ830TD6kkq48Y sSFWU/I7puHydeViwYwAFuazPv0A7d0Grkm1b X-Gm-Gg: ASbGnctV3TyGbgHVdGrjW5Y22lfi5stuF/VwwgX1NB1Jh/zQZrA5q+9LsyKDNB9TUPa HuYFX5WacYP30Pmm4PDpEY1BDWcLpzdbGFQ8OUenktOQNNyluVA5CNo6pR2o= X-Google-Smtp-Source: AGHT+IG4ty4Jterfb/i6aBrFMav0nkL0Jeq7yVrGMkkkhYQ2+NYQpzP0AUUmDy8KcjUWwLhusQV9LocshbtbteglR9k= X-Received: by 2002:a05:6402:c0d:b0:5d0:b20c:2063 with SMTP id 4fb4d7f45d1cf-5d3c2673469mr86340a12.7.1733510607054; Fri, 06 Dec 2024 10:43:27 -0800 (PST) MIME-Version: 1.0 References: <20241206152032.1222067-1-bgeffon@google.com> In-Reply-To: <20241206152032.1222067-1-bgeffon@google.com> From: Jann Horn Date: Fri, 6 Dec 2024 19:42:51 +0100 Message-ID: Subject: Re: [PATCH 0/2] mremap: Fix newaddr hint with MREMAP_DONTUNMAP To: Brian Geffon , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Marco Vanotti Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 765D5120013 X-Stat-Signature: 3xtn4bakrkqfu94uqh7oyspdk8h3pu4r X-Rspam-User: X-HE-Tag: 1733510584-485939 X-HE-Meta: U2FsdGVkX18N64URzRCOeeddbw/8slTfxnTHnqPtDy4LTt9W2w6GvRV0SRweoBmFQA/fhNHHEYc3Ee5EB+9eobDMaWyQ8o6/AOuBl7fS3ixT+Up/XSoFXglIgxyZi5Ee4Br91fyvck+8W54e15AyG1eSfLZnTGvZx1X3oAkFnS+k8wLpkwFPQXXR/lYKZ0imraBhoIN16BCcK2f0uHHUf18pos/z69xZvo4QRr5kbJ9q57tUJT62GQ6TVB4piuIIKn28gGi5YzzgUiAFBArM0JuaayfqZiyrr265SapOWJLVmU13EWloMprgDFhxPyJsXeDVrptlGJQd5UMIqXq3nBFkCfaTtJVDZGxPFAu1JJSsP/ivb8le7EIxIkHra1lXwpDXQpV4jK5udekPwAvFC3arhSgGVmtHKVbaUNvX+rFS2BY0xVfqzAV2FMNLxbNnl8O+/sffhcKtViPYtOeD05Ms//taHY8bYfsrFGs87+0+gTMcIPo/f2YL4AEVvC7Sr5caLYR6l5BiGdrgkDmjEYWmHYZCil6mIpL0J2zpUfyDszQ8nPBTvHsgcSEfpPFntVsuR5d8+zvEFyz2BdXRQfHFR4BCZO3xLLWl0De34BXZT5Gcp4aXQj67+9CDQ7BU0mUBrxBuX3NF4beLlEbD/EM6EnlGWzS9xB477d28JNBRGVxFzDJ/HGdxOCS1C8htAaHg4GPe0udDhZpgov9h+okaHxRXB9KvnrRGSKF6uNMrRFvVP622bhN5wa2J9lSDLqTXBZqUrXO3NWBo9uMjrigtO2LAmpDTu4pmOL6Wc2hNrZNyrEA7l4dJ8TKRs9ZPbziAadCZBOfXUitw9vLezLM69DK6Hoc4tqoTQca0q0AgQ5hav+2ZByOs+i01ADLzWpNP9WPNkTbdIbmn4A5JQqBdXnzZQznyE9CPZvT0wxXU4we+eBLZmim7FLIM4KhPAj8CvwkwPuljY6qKIQ0 qWrco3As jF0LmlYR0fsMTSqBm41umVXSoNh3oR3NjyeHDVNM6OZlpmd9frwfAoh6YySkTti9hqpt1lZq1kDz4fWRT5R5P+ZaGkozgOJR7Xai71Y0IH5hQcfFDOKROjn385Kg4jsAuLW6QAfGIj2SkF0ays0N2DZBtoIjP+IPTPffGnkww3ABby8LmmzRGcBfG8/81wR+kg7/42iykVHnMhRtryb0XLnT0u0ZnXRuGezlp2yFSiiPfn6kKxWLnB2ZHA9+rHWX31k+Inv3mKWmIZmsqw3O7LvAHph4eB3RtQsATq8KF2LaQZVN2LIF/MecfuuUNc1PT/AS/h41JEuXXHfiPjoOF6nJYcg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.082563, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: +mmap maintainers (maybe mm/mremap.c should be added to the file pattern for "MEMORY MAPPING" in "MAINTAINERS"? I'm not sure) On Fri, Dec 6, 2024 at 4:20=E2=80=AFPM Brian Geffon wr= ote: > mmap(2) allows for a destination address to be specified without > MAP_FIXED and in this situation it's a hint to get_unmapped_area(). > This address need not be page aligned because get_unmapped_area() will > align the hint. > > In the case of mremap(2) with MREMAP_DONTUNMAP it shares a code path > with MREMAP_FIXED in mremap_to(), which means this function can be > called in 3 different scenarios: MREMAP_FIXED only, MREMAP_DONTUNMAP > only, or MREMAP_FIXED | MREMAP_DONTUNMAP. In the second case when only > MREMAP_DONTUNMAP is specified we don't need to do alignment or size > checks on newaddr because they will be passed to get_unmapped_area() and > dealt with appropriately. > > This patch corrects that behavior to match what non-MREMAP_DONTUNMAP > mremap(2) and mmap(2) do. This odd behavioral difference was reported by > Marco Vanotti. Additionally, I've included a self test to validate this > behavior. Marco pointed me to this; I had no idea mremap() had this undocumented behavior where it takes a hint address. The mremap() manpage is currently wrong about this, it sort of implies that the new_address argument is only used if MREMAP_FIXED is set. Marco also noticed that upstream glibc now assumes this behavior: https://sourceware.org/git/?p=3Dglibc.git;a=3Dcommit;h=3D6c40cb0e9f893d49dc= 7caee580a055de53562206 Debian also has a test that explicitly checks for this behavior: https://sources.debian.org/src/glibc/2.40-4/debian/patches/git-updates.diff= /?hl=3D22820#L22818 I guess it's too late to remove that behavior at this point, and the right thing to do is to update the manpage?