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 7E269E77173 for ; Fri, 6 Dec 2024 15:20:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 821B36B026A; Fri, 6 Dec 2024 10:20:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7AAEC6B026C; Fri, 6 Dec 2024 10:20:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 624876B0271; Fri, 6 Dec 2024 10:20:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 413CC6B026A for ; Fri, 6 Dec 2024 10:20:42 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9D8B741CD6 for ; Fri, 6 Dec 2024 15:20:41 +0000 (UTC) X-FDA: 82864895946.16.A0ACCB3 Received: from mail-qk1-f202.google.com (mail-qk1-f202.google.com [209.85.222.202]) by imf22.hostedemail.com (Postfix) with ESMTP id 8EDD2C0010 for ; Fri, 6 Dec 2024 15:20:21 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fgx1hKEr; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of 3RxZTZwcKCAIdighhqpiqqing.eqonkpwz-oomxcem.qti@flex--bgeffon.bounces.google.com designates 209.85.222.202 as permitted sender) smtp.mailfrom=3RxZTZwcKCAIdighhqpiqqing.eqonkpwz-oomxcem.qti@flex--bgeffon.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733498424; a=rsa-sha256; cv=none; b=N14j6cT0MBuEIaVTQCb+tmFA802w6GAZy+mS1U9KA7VHCWUYXl8lGiTb+/kzczmTJb864q rBZWLatE6oqweO94FyZvCDUFDhKx+c2KH7VCAIxzQwEaosK/TKmIdBrds8+sfcfY1nS8Ab FLKWUNixYaB/uhjFTdXRmzO1npjuDdA= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fgx1hKEr; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of 3RxZTZwcKCAIdighhqpiqqing.eqonkpwz-oomxcem.qti@flex--bgeffon.bounces.google.com designates 209.85.222.202 as permitted sender) smtp.mailfrom=3RxZTZwcKCAIdighhqpiqqing.eqonkpwz-oomxcem.qti@flex--bgeffon.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733498424; 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:in-reply-to: references:dkim-signature; bh=yx5dQ67QKROK4en9M6ES+ALddN2aYOQNxBy+mPlHr6Q=; b=EnWnOsZW36MPGIkMjU5+M/iHeHOxWdzNC/dWvEVv981LOZRmXNGupa0V19e9MY9L2cycHd ID/A6EJqRhThz03JpDV55dIL8xVc9NUtMxam8p9ZyQF5zgcTT+kE07Avg8u5z/xTKKD4Li WIF59DTw8p8HcTKL+70bQJTdOisIQn0= Received: by mail-qk1-f202.google.com with SMTP id af79cd13be357-7b675dfbaf2so537200985a.0 for ; Fri, 06 Dec 2024 07:20:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733498439; x=1734103239; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=yx5dQ67QKROK4en9M6ES+ALddN2aYOQNxBy+mPlHr6Q=; b=fgx1hKEr5hpQMMdBy47nKFCy7SXcldnDNDRL6EtKkObFGxoVAafKin41y7N7Pm8wc8 ynXFj7a3w8Zp9ujhmByUEnWqhLDDpRwybGq2Eg41KMRozY/5hSPYY7dZwQn10GVPoLtJ zgp56GrN6fxOdWhrq5yD22eNuN8yGBTH5fH0p3UBML2Z6aUVQoEm93+7n5emt8H/0QHr yx11Tb6GC+LrwAoqPzzb5YMhY4ZXMi69ZfGBQSOi0DqsRU4+fOkoEutUxt8wnN14jPEi jnU3esJCB4Xs5gmq5OGpLyt7lCi0gx8Acnny222IBeDmdI7jd2kGzx9ryci7qdar+1+C A48Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733498439; x=1734103239; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=yx5dQ67QKROK4en9M6ES+ALddN2aYOQNxBy+mPlHr6Q=; b=cibZtZ3o4rBPCRc6G4RHjZmNNdXbRpc5pn3mmoXCMvh083LW9iEgIC3nOux71c5VcG LCrtgyGZ+KJOKqHICfuQyneGUJ/MNC6eRIInIxE14+HUIu1kJ+Kd1ylG3GEogPgOP/cP 2FWIPaMaY5k9+nnuQnEkUXAqCeTCPHFnaVkngwtckJza0FAUmd7nGLcPxGCU7FkrccrM Ri1hbBYFS3bBDeM5PJI/zFVExVRbLD6k3JfkTJvFIc/Tzl6+16kr3Cew0i3r+6L4OH7g /BlixS9WSQXU0HK1vfYZNGyr8MQZhsDdJZmc7LIpji77emGbOmYj5+asEAghjv4/s7lL 9kyw== X-Gm-Message-State: AOJu0YxQPtKdN+/aAEJlezDty9UJYlPA1mQYTfokOgkQ93TyprcqJHi9 uwYKFvHgZjT7xmXxVnm5SDz/WZ7xZYRMqOE3qdt7y/MXiinCMhUxdrZr51/8fh/nIyTWmKXC1mO PU5NKSQ== X-Google-Smtp-Source: AGHT+IF/lfNniPN6wmswQiItjU0OXX+sV8hnnN//Js1/LASgX6OPG2uwCt1Xx3H4kK5M8cW8GQWU0rcRdU5v X-Received: from qkc12.prod.google.com ([2002:a05:620a:4e0c:b0:7b6:7122:b8d0]) (user=bgeffon job=prod-delivery.src-stubby-dispatcher) by 2002:a05:620a:4806:b0:7b6:6c46:556 with SMTP id af79cd13be357-7b6bcaf1409mr527037885a.28.1733498439039; Fri, 06 Dec 2024 07:20:39 -0800 (PST) Date: Fri, 6 Dec 2024 10:20:30 -0500 Mime-Version: 1.0 X-Mailer: git-send-email 2.47.0.338.g60cca15819-goog Message-ID: <20241206152032.1222067-1-bgeffon@google.com> Subject: [PATCH 0/2] mremap: Fix newaddr hint with MREMAP_DONTUNMAP From: Brian Geffon To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Brian Geffon Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 8EDD2C0010 X-Stat-Signature: wbsirhpi6hnyikqs3csh7ydza44e5fej X-Rspam-User: X-HE-Tag: 1733498421-877424 X-HE-Meta: U2FsdGVkX1+f6EdkYnWWfzTySqzmQoS7broHMvu3x7PzRPLB3kZHwAj/3hmwoB6zm1w6WMrIfqNpw2P1EVtwHTbwA3fyEUXqYvYydgU9Ip0cGnvGcca3CqQPSBcnNmfeFhJDMEHPY1qLF3Tkn5ZVQtuMChjJ600iaFtuODvk64FBH6hSjN9EbEqt3ZveqU/pzcgCY6fSCsgPMO4YRmM0t0eqQyAkIEdTqdYKhQzhJbrnD4SDZrQJ/yeuXUTM8mQBaX+iOLAPuYYsll7Ege1s6YzNlKc4kRKwLNK3v9nOe86bWhlHUu/w99jE5HbczfnD+pmFI/CUS0EHq8bJF2/syXTkUA6sX+cLGpsF8+FwTsPQHv3GrFd3IFl9+3c1UwkxRP8Dokpo3PemEPn6xppiBx7vYTFmwyE+OCvIC7/vBtdZhyHccxdN0+MD+I7MoUZ0d+s7gUETOhR8CPz8gmxLasV18JqppXAbAWkq/tYvcHBJ1mTlgGUj9Nplo96VRYBCWzlprteM6vcR5u7CWyg7kE/XsjZUbiQAB7iJad2z9beYWah8pg2aVmM4br8ZLSaomQX/BKcMkhtq4aIJKlB/MPtOYCDyE1vhGKF+GAKNxlW3yFaS/zsiDtjdjw7cHrhxgUKBhgIVgAcgESYKxord5yc09fpyjCC16sOWDVBSFPde3l8DUMNwNOiFnR8iub/NlV3ZaqP2DhOw6cvfAwt5pfirWkndd7sH/AmC00tfcIZ7Aj8z+FSJFQsFMEfR8abg5s8VblclwZmhRs8AleFwtckeCFF40aF8DNsgHJM31vmmcFCAAoxTZsYSpp38n9ec2B54It1XQszoyq59x7yQGNmrf3PZa8G+HXPyO13nBYS/0WcnbFQLPLmzPQL/uime9UPcBKjWgJzAi6irt7kA/82BdC9oCfq9fWrph98fmTLRdtQI9qIum38YVtnSRcK7g2YRA7xMWpAQnLwKKws wpKrMBoT SbhKUrJdQcJx0atWDJ/HmbmoACiio8VIBevN7Zvisv0eOtilwhVFbnJyWQ8q7SXqCwLKhTWQDIrnmZn3q8YMl7ixTy/weS96bOhnxr4ZlMwh9+4hdLzQo8pdEEO5tY/zwKNyIQJPKLCw5Iq3uTujShbtHRiRZyigbvqAuP7B8NDVBZuXVfFGDwywaFwA+/rcer0IWiVIP7UXfXO/YxCDOUQwyxy/hx8Eix7xgXZl8FBkAbyebfUSdIgrmaE6D7uyAn+3au6ubbVWZTNFOuzR54FdODgoqf3Y72NcyG46zTd+vjB8f3gReE3lerjsuT+iWVEFpE6HMz96lYvp5Zk4pbIVf5kAopCvnG44/UXkWzhhRItwiKKemxdZQMVIv9YiQqFL/UBJngYEnL2cInnOsqKd9M83hQeBGipwOxWzql9NtxW5cTWGVe0j/blhNNDUNbiNJ3LHiZcR3wBnIOSh7h5DgDyUDNAviMhpp/2AT/pQcrgwBwErBAHx+lLCeA8FXS/Zw+wWlqM7ROaWfvens4Ah9ds2BgMzu6b5137NGwtoOHGIuBZC69Z2pAegoZGC9Ez5+1q4jf1fJs9UfaLNZPY6rTX1ClXglo9id X-Bogosity: Ham, tests=bogofilter, spamicity=0.016100, 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(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. Brian Geffon (2): mremap: Fix new_addr being used as a hint with MREMAP_DONTUNMAP selftests: mm: Add a new MREMAP_DONTUNMAP self test mm/mremap.c | 26 ++++++++---- tools/testing/selftests/mm/mremap_dontunmap.c | 41 ++++++++++++++++++- 2 files changed, 59 insertions(+), 8 deletions(-) -- 2.47.0.338.g60cca15819-goog