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 F3D1EC83F21 for ; Tue, 15 Jul 2025 13:57:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 977F68D0008; Tue, 15 Jul 2025 09:57:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 94F918D0001; Tue, 15 Jul 2025 09:57:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 83EFB8D0008; Tue, 15 Jul 2025 09:57:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 715118D0001 for ; Tue, 15 Jul 2025 09:57:01 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 04B3810FADE for ; Tue, 15 Jul 2025 13:57:00 +0000 (UTC) X-FDA: 83666650242.04.EC7712C Received: from mailrelay-egress16.pub.mailoutpod3-cph3.one.com (mailrelay-egress16.pub.mailoutpod3-cph3.one.com [46.30.212.3]) by imf24.hostedemail.com (Postfix) with ESMTP id ABF7C180008 for ; Tue, 15 Jul 2025 13:56:58 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=DinSq7vC; dkim=pass header.d=konsulko.se header.s=ed1 header.b=mS9lXsTQ ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752587819; a=rsa-sha256; cv=none; b=bx1VSp2Gv/XZD8xpwSw7Wpb0VNG9ugCrdwQhD5n/Y+60TJTdISniapIJhjWl+YikYTZ6SQ 1d5qmPQ0zJBAaZgtPiHRrTH4vx8DYIuDNw/Q0sJ/k9fLMnvolvIZU8PQwZElyAl3j1Gjy0 ISov0ZRbpXnYMdS82J+0wvv+cuVyMms= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=DinSq7vC; dkim=pass header.d=konsulko.se header.s=ed1 header.b=mS9lXsTQ; dmarc=none; spf=none (imf24.hostedemail.com: domain of vitaly.wool@konsulko.se has no SPF policy when checking 46.30.212.3) smtp.mailfrom=vitaly.wool@konsulko.se ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752587819; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=FZ3JHSKCAp61LgEDvUcR1KnuzzUfFsyQiR8khxy1tAQ=; b=fLLLQhSTTFJW8lUcU29VnCW9GCjfWcKV2u0EN7BjtxWe0SeQQPchaYWdZjNxSjuDnPpd3U zCoAQlAaZbPz8iqUKRxjBKEsFPafXFO6Ra07Wi7cYrd5A2V1wMqkV+On+a2SFQ6ZiL3OqV QSlDv+k0/i9vlqU/7TdXAUZPRQYfI94= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1752587816; x=1753192616; d=konsulko.se; s=rsa1; h=content-transfer-encoding:mime-version:message-id:date:subject:cc:to:from: from; bh=FZ3JHSKCAp61LgEDvUcR1KnuzzUfFsyQiR8khxy1tAQ=; b=DinSq7vCV9C/C9FpUNRVuJURAMXMn3XkqMfkqI44nxC41B3bkeuWYSyjya03kyOc2nBTc4CzlmK/v XZBcOgyq9rTgmZBoESKcEI7lDuuKL3LO6PHH+rHQ9KRQdc6EGfzNHLk9d1GFdK7ohLc6oLV8bxEMCm Fq03cVQw9pKxycNcQwUnhjINI/7GA8KHHLPQEh+6lDkeweHgx2Wc+XHd097QY+FK1ku/Uy475TtyWz tqVU8L3gzh4nWcYeXnq0qSkFYzLxfZbWtIiwCOjYniXyGO5HYPcJkLa3PNOjWS2LaWMlCY59aBcAbw /0ddspZ5CvVWwza/samsVMDnMnTVlPw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1752587816; x=1753192616; d=konsulko.se; s=ed1; h=content-transfer-encoding:mime-version:message-id:date:subject:cc:to:from: from; bh=FZ3JHSKCAp61LgEDvUcR1KnuzzUfFsyQiR8khxy1tAQ=; b=mS9lXsTQiKfFsm0bDu7xIyhiQH7dtER94VVDAh0BOQhcSju2SVtHFXb9isz7p5aiBKYiydg0Tm6KG VzbvISBDg== X-HalOne-ID: 9096aaa2-6183-11f0-8921-e90f2b8e16ca Received: from slottsdator.home (host-90-238-19-233.mobileonline.telia.com [90.238.19.233]) by mailrelay2.pub.mailoutpod2-cph3.one.com (Halon) with ESMTPSA id 9096aaa2-6183-11f0-8921-e90f2b8e16ca; Tue, 15 Jul 2025 13:56:55 +0000 (UTC) From: Vitaly Wool To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Uladzislau Rezki , Danilo Krummrich , Alice Ryhl , Vlastimil Babka , rust-for-linux@vger.kernel.org, Lorenzo Stoakes , "Liam R . Howlett" , Kent Overstreet , linux-bcachefs@vger.kernel.org, bpf@vger.kernel.org, Herbert Xu , Jann Horn , Pedro Falcato , Vitaly Wool Subject: [PATCH v13 0/4] support large align and nid in Rust allocators Date: Tue, 15 Jul 2025 15:56:45 +0200 Message-Id: <20250715135645.2230065-1-vitaly.wool@konsulko.se> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: ABF7C180008 X-Stat-Signature: ejwpdthd49g11ppnipndbzemusnma65n X-HE-Tag: 1752587818-478883 X-HE-Meta: U2FsdGVkX18f1rUlc5H5PX3UoOLB1NYi3drj9s/slKPlgr8avCOYENv5tFKizgp8+23N5mb6h8LlJ5kaWw6hjf+zIsAPwkXFp0BWgaH2eECLKpVaNzpsKqzMyZrl+/VdJTnEjTwQbPFtuttdkGVAsoJzY5EHecxEaA8J/QZK8JTTlixXr6z/G3dD2YGj2mYllYPiKYVD/jUodPXgwnkchKnxDj0k5Uf6HMRuZXDfl+dPNvT9bhi+KD5WxOTK25t/SwKrCcAwAmHW/92nP9VvXjCopOqbK7gLNWOnD6bF5HVkAcxUFSz7CCyWsvV/4EcqJBbOhCfFpEJI7YMlfVg3/ZsoEWJIAWegkmbgrAsVLX4Ix+mDkusL/nDSNS5AwmMTe8QjZ4t8nsNR3Ta7HmHpnFpJKyv6r82O51uaOLv/wzq1Is3+bxWtwL8G6/5nEsh7+vz0+pX3Sy24/d9bdywwo7XVYsEnivbnJL5IAyyr5fS/sEM/lmzkYFm/9fC6vlnr4onHPdsPBFtO9Gf4P5/DQjziUZ4wHyCo5l9sqlTRPFbJb3ga0AtS0rfG8e28qdTspx7A6wxP8oYddyldGLuLgDFySlGPhxBPWEJ01NqQojn+mssmdY+eyvJMelhynIBf+hfAO01fX9kOlnxXBYFzz/uikanZoU4ljfDbZWYnHUKCk7DhMHJ2yxUw47FN+Z3IGW/v/l1mEdwUCKjltm4yT3KLbGO2s4w4y89MjLQZLjqA22sKBiY8b2rYXXMA0V6xSKjIos3Bte+TUoArrL1Xime1LSzgKSW4+g4l4fzBV5r3qsxkgdRYX2pmCad252vkY1sDQ6Jn9NAkr5qNaf/lREmV09kVEVhK4XpKu/HsS9ClquW9zJoyU9X0zC5HHnSxrcwg8N+fpoXJ/WY+yEfT2zzS718W2PuYKDMGvHefRafow0rL60YjwPVDaSizZ72m+4Ay2p9UQrWmOLPOIiR 7rZVX5W1 1y541RNDKGY2wZCUQpwM0KePF4omj6giHLXv3tjMX5dqVXCWfRXBTgzGD/3pnYlvThlu9wDmTVCSDeyZUklNJ1AsSHX/ZB7DJmbZd0lGUmINR99vtiHqbEBNDOEnF4dNOnXCqPTj4rTdJeas= 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: The coming patches provide the ability for Rust allocators to set NUMA node and large alignment. Changelog: v2 -> v3: * fixed the build breakage for non-MMU configs v3 -> v4: * added NUMA node support for k[v]realloc (patch #2) * removed extra logic in Rust helpers * patch for Rust allocators split into 2 (align: patch #3 and NUMA ids: patch #4) v4 -> v5: * reworked NUMA node support for k[v]realloc for all 3 _node functions to have the same signature * all 3 _node slab/vmalloc functions now support alignment specification * Rust helpers are extended with new functions, the old ones are left intact * Rust support for NUMA nodes comes first now (as patch #3) v5 -> v6: * added _node_align functions to keep the existing interfaces intact * clearer separation for Rust support of MUNA ids and large alignments v6 -> v7: * NUMA identifier as a new Rust type (NumaNode) * better documentation for changed and new functions and constants v7 -> v8: * removed NumaError * small cleanups per reviewers' comments v8 -> v9: * realloc functions can now reallocate memory for a different NUMA node * better comments/explanations in the Rust part v9 -> v10: * refined behavior when memory is being reallocated for a different NUMA node, comments added * cleanups in the Rust part, rustfmt ran * typos corrected v10 -> v11: * added documentation for the NO_NODE constant * added node parameter to Allocator's alloc/realloc instead of adding separate alloc_node resp. realloc_node functions, modified users of alloc/realloc in accordance with that v11 -> v12: * some redundant _noprof functions removed in patch 2/4 * c'n'p error fixed in patch 2/4 (vmalloc_to_page -> virt_to_page) * some typo corrections and documentation updates, primarily in patch 3/4 v12 -> v13: * fixed wording in comments (patches 1, 3) * fixed bigger alignment handling in krealloc (patch 2) * removed pr_warn import (patch 4) Signed-off-by: Vitaly Wool -- fs/bcachefs/darray.c | 2 - fs/bcachefs/util.h | 2 - include/linux/bpfptr.h | 2 - include/linux/slab.h | 39 ++++++++++++++++++++++--------------- include/linux/vmalloc.h | 12 ++++++++--- lib/rhashtable.c | 4 +-- mm/nommu.c | 3 +- mm/slub.c | 64 +++++++++++++++++++++++++++++++++++++++++-------------------- mm/vmalloc.c | 29 ++++++++++++++++++++++----- rust/helpers/slab.c | 10 +++++---- rust/helpers/vmalloc.c | 5 ++-- rust/kernel/alloc.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++----- rust/kernel/alloc/allocator.rs | 49 +++++++++++++++++++++------------------------- rust/kernel/alloc/kbox.rs | 4 +-- rust/kernel/alloc/kvec.rs | 11 ++++++++-- 15 files changed, 200 insertions(+), 90 deletions(-)