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 50E40C3DA7F for ; Fri, 26 Jul 2024 09:31:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E15A6B009B; Fri, 26 Jul 2024 05:31:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 991E36B009C; Fri, 26 Jul 2024 05:31:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87F996B009D; Fri, 26 Jul 2024 05:31:55 -0400 (EDT) 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 7048F6B009B for ; Fri, 26 Jul 2024 05:31:55 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DB9D0161709 for ; Fri, 26 Jul 2024 09:31:54 +0000 (UTC) X-FDA: 82381386948.18.808796C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf08.hostedemail.com (Postfix) with ESMTP id 21C2516002D for ; Fri, 26 Jul 2024 09:31:52 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JKXMwW1W; spf=pass (imf08.hostedemail.com: domain of vbabka@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=vbabka@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721986311; 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=7ehMJFqSenjlJ75vOTwcGfHEMkQ+8VzhqTBGx6G/7Vk=; b=yvmoM6/1Jr6yuh3Rq7XLH8QdVj23HBvXxB96B1q11uIBeu3TwKIaDECpJyJC9Bk6K2fgK9 +RW3iOvWm9KTH5nUVQ7zJD/Ty/SRp8f6FolrnygiPy5MGPC73rLnb7VlEHIMbof5FfYGab WrmML8GDwSxtIQR4ftyfcph7aolx7sE= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JKXMwW1W; spf=pass (imf08.hostedemail.com: domain of vbabka@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=vbabka@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721986311; a=rsa-sha256; cv=none; b=okK9s/QJOfWCOWZXOtY1pYJYZyWs/OwT01FztS0t6w9Tr+cMcc/JfBczNZg7x8CDenkPDn nHJBpRUM/dXQIT6kH/llpuYmnFv68u7bQDFBnbB+Ox12k7bzpoXeZQzk2fvO9S0iLatyXZ n/3ovxscHD8dvZmMxBvSmEpzfA+nkJo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 1147E616F8; Fri, 26 Jul 2024 09:31:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 868DCC32782; Fri, 26 Jul 2024 09:31:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721986311; bh=DyyfWVP+jvOPvJ5UL+eN4ml7QO4ogAQEdtVCKR81Ad4=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=JKXMwW1WtoNuNCclrwA6G3JfSvMZGpjk++gvU6Uy5ljjKn/Ri2S7z2acJCQQLh9fT h0etuejY7FN+bP9eU8SnFfopXcNGMnx4jSVp7JLgPNZgGtO9vX3SfijwpczyCb9DLc GNMgvdz34OkurtYAbS9mDKouDktvMLoyjMkBhIfX43bQEpCY31riCIpvdZ3MiWC2Cx Wu6g8TfYx4+juQQGaaS+6xdf6gvaaE4SYv1OfrMjwKKmulKqhy7RSPMcEWqaKvhwXq GjP+38mPnQC9VIVOoZbIsuXo5aNMLBq+GGiOMtgoGHm3sRI9i0SXNzA2AmLFawlWm4 QpCGJgEsiKiLQ== Message-ID: Date: Fri, 26 Jul 2024 11:31:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: (k)vrealloc: document concurrency restrictions Content-Language: en-US To: Danilo Krummrich , akpm@linux-foundation.org, urezki@gmail.com, hch@infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20240725125442.4957-1-dakr@kernel.org> From: "Vlastimil Babka (SUSE)" In-Reply-To: <20240725125442.4957-1-dakr@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: 9dtf7o18ke6aoccji6k3tea6995uexij X-Rspamd-Queue-Id: 21C2516002D X-Rspamd-Server: rspam11 X-HE-Tag: 1721986312-917585 X-HE-Meta: U2FsdGVkX1+xAFfMjxK5bGxRpHchM+xVDnHZxll6KRJ58Ti2OfkNInjUzM+Yq7fKVzP+qBd99At6lptOVyyFs50ngX4b0vYxtozrS8LClrMvEBM38Cm59d4w+NE1I+6xNarm5wChrI9YRSQr8Hkx4on7e33VtSuimWlIMQFgHPFPqgkFmBSaPCSNrSrsccy5reZjkpKaYI9kbl+TeiC2tei/tc3jjMX1Hdp2nECArHpEKfIoNnxIYCY0KLF/+aD7QiXKzntoWfXf52+uJkzsI2HTxvvztLHgAoYuZo8IhlQH/G1mkcV0n44ZnybH1frYu2MANNrkeq9saea06PtcfqJ9U80eesP+kzW8SZtEpGevEerHOf5S9d0gZR47liDg0kLaBYOvx6cMLfMbE3d0efxb2hSwK925B7Vz9XxjFPZOieAob/Mu2PqDMnIHfaBBtX48m3pWdnp4Uvmn4fwZaYIb0XAWb6cKtnmFTaYV/MzoXbe2gTONzO6MDLD9W++saqjetSwBGLGZSjj/JIwv35LyGU7V/o1hPP4RILTtSDEkTppgECuVmC5Y7qdPQCMymoyzPfV+3S+KxtaxiEx4Fyt/NsqZtRnIUQihg801SQcRCtar2kR0JedhgtSC24kzItM7ChCqW/3zsW4ByIRyiPwALroUkNwIEEcicX93DnWtF27Whj1tZozMfWJz6lqdkjjGnEop6FIDr6X/832YDIQOjYG4jX0rYVTMdUE9oYGbpkE8jcCKXa1HhMzyafRD99KJ7lyFmWAfDZ+z6ZzcyI3jGUpGt8wAmAHN1oU76LHkx2+8jQuRB7gNe+l38EcqGNNnMUlfoj5bMEId7WDpimFkADfVHN0upxndeNHoWj9GNdYqa3Wc1kOHfrM2IY0EGTLp02GybyrvI8hbwk+mfGtN7zAm1yLeflIK0iWObJvc7exFHdVWfHAY2wuswfBx+3mWcu6tPmD+HPR5r9a 3uJm5+VU R0NmMUDrhfg7kMAPYClmEoRDhp3wf+n0qy6brq3fsHXtf4umSyNPo9SJIVXIVTSjAd5bR3VZZzcAh99QSqEgaNOKEuzoVZH5pOB0XdyQFYO/h8A+qPLbtuaJt6vVzX6CEjhBR5UvovnoUI2b/a8FXwM6gS9R6x4ScyA0NY8uF3Ofptw+VNZhSvKjnKfa9aIiFzAZC6vzpFQ+ob4K5XxRJ3C5rDuG6x8dQVh4yPQsuK/537AbDNsmrLfuuQCEqNaBnnplUDC2BMmF2SY3KH4oHc91umuHF9XBXYHyJnersprs0BNBWe3StKJcd/lL3SWUWOn67Mpl1d9MnN/uzxoN5LeNxhEz4yfhxowysEfkjvPiEBCo= 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: List-Subscribe: List-Unsubscribe: On 7/25/24 2:54 PM, Danilo Krummrich wrote: > Document that concurrent calls to vrealloc() with itself or vfree() for > the same memory allocation are not permitted, since it leads to undefined > behavior. > > Consequently, the same applies for kvrealloc(), hence also document it > for kvrealloc(). > > Suggested-by: Christoph Hellwig > Suggested-by: Uladzislau Rezki > Signed-off-by: Danilo Krummrich Huh, did anyone ever assume otherwise and why? > --- > mm/util.c | 3 +++ > mm/vmalloc.c | 3 +++ > 2 files changed, 6 insertions(+) > > diff --git a/mm/util.c b/mm/util.c > index 0ff5898cc6de..29ae93f6344f 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -732,6 +732,9 @@ EXPORT_SYMBOL(kvfree_sensitive); > * If @p is %NULL, kvrealloc() behaves exactly like kvmalloc(). If @size is 0 > * and @p is not a %NULL pointer, the object pointed to is freed. > * > + * This function must not be called concurrently with itself or kvfree() for the > + * same memory allocation. > + * > * Return: pointer to the allocated memory or %NULL in case of error > */ > void *kvrealloc_noprof(const void *p, size_t size, gfp_t flags) > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index caf032f0bd69..2a6d4ce57b73 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -4049,6 +4049,9 @@ EXPORT_SYMBOL(vzalloc_node_noprof); > * If @p is %NULL, vrealloc() behaves exactly like vmalloc(). If @size is 0 and > * @p is not a %NULL pointer, the object pointed to is freed. > * > + * This function must not be called concurrently with itself or vfree() for the > + * same memory allocation. > + * > * Return: pointer to the allocated memory; %NULL if @size is zero or in case of > * failure > */ > > base-commit: d270beaca6818349b2aed7e6034b800a777087cc