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 EE3C4C77B7F for ; Fri, 27 Jun 2025 12:01:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9812A8D000A; Fri, 27 Jun 2025 08:01:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 958D38D0006; Fri, 27 Jun 2025 08:01:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 895A28D000A; Fri, 27 Jun 2025 08:01:39 -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 761A08D0006 for ; Fri, 27 Jun 2025 08:01:39 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 03D4916070B for ; Fri, 27 Jun 2025 12:01:38 +0000 (UTC) X-FDA: 83601041118.10.328A6A6 Received: from mailrelay-egress12.pub.mailoutpod2-cph3.one.com (mailrelay-egress12.pub.mailoutpod2-cph3.one.com [46.30.211.187]) by imf25.hostedemail.com (Postfix) with ESMTP id E7527A0024 for ; Fri, 27 Jun 2025 12:01:36 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=QWHlN5S1; dkim=pass header.d=konsulko.se header.s=ed1 header.b=plJo6EVo ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751025697; 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=uKS3HDNF930knCZOok1v2ViZte0XlPRX5ok0p1B2NIA=; b=dnTt2rXocQftD8gLfoiulq0UEOU0bI2ilF+6rTm+uAydEgLu20ZXxkbeecyZu6i0V9P7oF za/jYZdeqzXqLkVXvU1DyyigHz+VOsJb+8dI6Xsa4RsvELz2rEmT6TH6NamUVwE+lb73VD zHw7OBT/4efLtMJmcyvNz0h3xGbYIHw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751025697; a=rsa-sha256; cv=none; b=nbVWsQ1cB6j1CAy7o/vg0WvJFBt6X7M51+jingahePJTSHV1xPQLe5+H1rzm2a4I1uQ6O3 +gY6GujlGYS25CMciMYTHoagMSh7yCvJnpR9mWSScL82Yti3i5+DcbSW5cfxVWeKtEKnwj OnjVe2HOHZjcgSq+oAJCq0CbQbm1clk= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=QWHlN5S1; dkim=pass header.d=konsulko.se header.s=ed1 header.b=plJo6EVo; spf=none (imf25.hostedemail.com: domain of vitaly.wool@konsulko.se has no SPF policy when checking 46.30.211.187) smtp.mailfrom=vitaly.wool@konsulko.se; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1751025694; x=1751630494; d=konsulko.se; s=rsa1; h=to:references:message-id:content-transfer-encoding:cc:date:in-reply-to:from: subject:mime-version:content-type:from; bh=uKS3HDNF930knCZOok1v2ViZte0XlPRX5ok0p1B2NIA=; b=QWHlN5S1uJmIPI6qxF/CONzE/AY4TSvK8ygi5az3JJjoyLnpkvmq1Yenyb0VfvHP9VjaPUdl4gj/Z cuB41kRZ/vKy0GQuJmWUVbZxBYms1la/ymoHS3dWdE/rQt3IhTVIfaixYc8PdE/j9+xyR/oNyIMwZA fyh9H3+vid4KYIMOMHZCtvaQm8t/JVYisGmUUetIC7LcLHKUkRl3bcfpNiS09+QqyDVAUgP3yhgqzV u1eSESmFSjR1cM3iDGQdzkeAOKsj7BtOnQSKuPwrY8S1bxZGinJ01D3SpvWZ1s7ubRYpZiCw7MFFjC bplfF0f/u94x3nD9/zvTJw8p8ZGISXg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1751025694; x=1751630494; d=konsulko.se; s=ed1; h=to:references:message-id:content-transfer-encoding:cc:date:in-reply-to:from: subject:mime-version:content-type:from; bh=uKS3HDNF930knCZOok1v2ViZte0XlPRX5ok0p1B2NIA=; b=plJo6EVoYEQpR09rHvEkZH4M66P0Elt8wjAzuB0fq2Kjl/Dqn/VoRbn5bITykMt/76HQt+xL3Y33n fi2q8+ZAQ== X-HalOne-ID: 785ab324-534e-11f0-8646-e90f2b8e16ca Received: from smtpclient.apple (c188-150-224-8.bredband.tele2.se [188.150.224.8]) by mailrelay2.pub.mailoutpod2-cph3.one.com (Halon) with ESMTPSA id 785ab324-534e-11f0-8646-e90f2b8e16ca; Fri, 27 Jun 2025 12:01:34 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\)) Subject: Re: [PATCH 2/4] mm/slub: allow to set node and align in k[v]realloc From: Vitaly Wool In-Reply-To: Date: Fri, 27 Jun 2025 14:01:23 +0200 Cc: Danilo Krummrich , linux-mm@kvack.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Alice Ryhl , rust-for-linux@vger.kernel.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20250627092901.356909-1-vitaly.wool@konsulko.se> <20250627093714.402989-1-vitaly.wool@konsulko.se> To: Uladzislau Rezki X-Mailer: Apple Mail (2.3826.200.121) X-Rspam-User: X-Stat-Signature: 736zbfwizm59ehce1cr847uhm76a85i3 X-Rspamd-Queue-Id: E7527A0024 X-Rspamd-Server: rspam08 X-HE-Tag: 1751025696-12115 X-HE-Meta: U2FsdGVkX1+0e7E8Mu1i1nVH2mBA+o9uoza737ztXI0cZju3gF5c9QAFO3bjCepGaqexFqMx3fHGYDuNHu7s3kOmUE0UfWEnUgGeFK80bwR/1W+tF4JfOwEKrSt+IkW+8VbQ+xZ+BOp+ZR6TSkQmDaHauZUvDwBuhUNpQR3CulFpHhE5boeeY+LepIjxNCAn3BRjSldIqUokvpDxPTN/LAtcHnShrlWjOXmouMiGJTSlEdaI6sLOMUNRdD6vhmFf7O5/HmdmXGDRzL539a9rIrsgq+oSK7EQU82RCtcUXSD4CH9a4FwBk4/ucADcmUWkKrxURgVhnviQ0GXcnxs84RUWKAoblsOaGnBsbEmFO2d7s6ycHaoqiWVTZl/ZFSW0MMUd02VR2ptdUbsnMzxSTBvHoWjml5PbZ5PBOY+tinQqfK0UCHJ4E8qOYSUzPiGZK6lm/9ZqrGsHwzY0qxZi1o/4LoSKPs0LmDVyEJ2zk2BweoUu5nM7tzlRQe4IHP0llaTPHM4WUGZ3ym8vV+zYyQW20HD57VHQUKK5RQLCCb7z4KZBumLmtuf6CugsIgy6GyyffPXh7S2mftAuKQMev5SUZZ13BPFC7yb55Bz+0Q9+OBMIn68vcreZx1j8m+YoY4jJnV9xmIx2qKFc9j9qCNPs5vkMpa+VBEc9YvIe+BKzyyUlr+0okXJkq9Qh1apUrRVz6HZi5r/Yix9YynzMS1VCBGyaT/Q3CgtI+6pcDycoYbrL4H4XUpftn0m67x9k6X1feqVs7TYaYlR28b+5YxMZj8+4hAje5tSdXdAk81DEEWBOvTOAHD/snfRVNcEdHWayOrYHRuMaRXN1XziNH0GU6Y3XFAZC0Igf9L4/+sHNFw1g31y/bKHbNeQVWQ6XWMaTHSjy3ippmtQ9YZiD5ekAhjb3VJUSN2qCNMvHdcjJoMa417/Wzjp8gDWxRffFG3jl9wWMzv28YN/HyNn Lgx8Q5v8 AJdWYkb6PhPY1sAqh3Q7Nmq3UrlCfq7Enj4QNlayRgThExvDl9G2sAlGc1XmUCMoKUSVyHsHCp3R2pcNbbIX5WFXN0QgP2/owaNlvor/PTqCP6uw0dXGYVLuAUeNqqVtJm92mqXSoQhUwD26kBHHbgHYkxTW99yCL8vwZp5Gf2przELTlU7CpbXKJg+Ph8lDXY2MRtHcQ+/YmhN5Y8xtdHeDo7g== 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 Jun 27, 2025, at 1:42=E2=80=AFPM, Uladzislau Rezki = wrote: >=20 > Hello, Vitaly, Danilo. >=20 >> On Fri, Jun 27, 2025 at 11:37:14AM +0200, Vitaly Wool wrote: >>> Reimplement k[v]realloc_node() to be able to set node and >>> alignment should a user need to do so. In order to do that while >>> retaining the maximal backward compatibility, the following rules >>> are honored: >>> * kmalloc/kzalloc/krealloc remain unchanged >>> * kvmalloc/kvrealloc/kvcalloc remain unchanged >>> * kvrealloc remains unchanged >>> * kvrealloc_node is implemented as a new function taking align and >>> NUMA id as extra parameters compared to kvrealloc. >>> * krealloc_node is implemented as a new function taking NUMA id >>> as an extra parameter compared to krealloc >>> * kvmalloc_node/kvzalloc_node/kvcalloc_node get an extra parameter >>> (alignment) >>=20 >> I see what you're doing here: >>=20 >> You created vrealloc_node_noprof() in the previous patch, taking the = following >> arguments: >>=20 >> vrealloc_node_noprof(const void *p, size_t size, >> unsigned long align, >> gfp_t flags, int nid) >>=20 >> And now you're aligning the newly introduced krealloc_node() and >> kvrealloc_node() with that. >>=20 >> The idea for having an align argument on krealloc_node() simply is = that it >> fails if the alignment requirement can't be fulfilled by the = corresponding >> kmalloc bucket, such that we can fall back to vrealloc_node() in >> kvrealloc_node(). >>=20 >> Generally, this makes sense to me. >>=20 >> However, now you consequently have to add the align argument to = kvmalloc_node(), >> kvzalloc_node(), kvcalloc_node() as well. >>=20 >> This is what creates this huge diffstat changing all the users. >>=20 >> IMHO, the problem here was introduced already with = vrealloc_node_noprof() taking >> an align argument in your previous patch, since now you have to = adjust >> everything else to logically follow the same naming scheme. >>=20 >> Instead, I think you should introduce vrealloc_node_align(), >>=20 > I am probably missing something. Could you please clarify why do you > need the vrealloc_node_align() and other friends? Do you have users > which require vrealloc() or kvrealloc() to support nid and align from > Rust API point of view?=20 >=20 >=20 Alignment for Rust allocators should generally be supported, it=E2=80=99s = been listed as TODO for a while. Node awareness is very desirable for e.g. KVBox and for the coming zpool = mapping. ~Vitaly