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 92CCEC7EE31 for ; Fri, 27 Jun 2025 09:39:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CF3B6B0095; Fri, 27 Jun 2025 05:39:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 27F666B0096; Fri, 27 Jun 2025 05:39:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1BCC56B0098; Fri, 27 Jun 2025 05:39:26 -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 0BB806B0095 for ; Fri, 27 Jun 2025 05:39:26 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id AC6551D72BE for ; Fri, 27 Jun 2025 09:39:25 +0000 (UTC) X-FDA: 83600682690.25.3A2A1CD Received: from mailrelay-egress12.pub.mailoutpod2-cph3.one.com (mailrelay-egress12.pub.mailoutpod2-cph3.one.com [46.30.211.187]) by imf08.hostedemail.com (Postfix) with ESMTP id A2D5E160009 for ; Fri, 27 Jun 2025 09:39:23 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=5M0z4Bkc; dkim=pass header.d=konsulko.se header.s=ed1 header.b=Mriq9ZxF; spf=none (imf08.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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751017164; 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:in-reply-to:references:references:dkim-signature; bh=iZmlSFy4KF+5xgzlYCUJvQ/v8BY1pzWF9k3tLUMOd/w=; b=QfVTAKQnazWoJi5uN+jVhnag329gYniroy7arV+EyKKZ8Oi2yqMNOKWobgafJ2XYuaIswa r6pTXJhDrch2lK5l44YPPQ3/LBqtMQXiGagjuu8ZYsw8sq/sjZ/g9VfATWffLb+utjQzvI AZuSRk2RlMvDtKKWe77Nmddm4bKqAV8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751017164; a=rsa-sha256; cv=none; b=HAub40v1UO/oSH1aiOPuJq61DYxz142TGIvTt9Eb5UA7N2XCVg+r0905WUfPdxcoTyXgvT Z19i2pMGJr66eJ/5aXGRb9uZy92PVbejPGsUxTBY7Px+zcMPV/M6rDn3K3G8ClFR2cDmCV tkpGSw8PJFR3mrwxbguzBipuOpu6dFY= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=konsulko.se header.s=rsa1 header.b=5M0z4Bkc; dkim=pass header.d=konsulko.se header.s=ed1 header.b=Mriq9ZxF; spf=none (imf08.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=1751017162; x=1751621962; d=konsulko.se; s=rsa1; h=content-transfer-encoding:mime-version:references:in-reply-to:message-id:date: subject:cc:to:from:from; bh=iZmlSFy4KF+5xgzlYCUJvQ/v8BY1pzWF9k3tLUMOd/w=; b=5M0z4BkcQJPtMNSk1YM1oSuYfov1jWqF/cQNd3w52dHdjZN3zMOcG0YoYxwbfioEKKKkMNEDH61Bz fAxfevYEfbeAqjnpwSDp9AW7seGmpjAcjVQZfuz2MMHxNcq7TGqmAQHOyjY7OtaQOtZ/9ulLtcFZ0I vZEE9Wojt1jL8BWhyPUPi0+WvcIvVszByrgXgzNrLb4raBgADaxMiBKoavMdJdCr9gmBlNHcgjoGco RF8ySaydBmQyXNhhY3WgTaS4J5AAxO/Pjn1HcrI3nvzn0Kp+IyHxtcNk8Y2+VeOl3Sl5+BEslLI4i5 YbefVxx8caSXYJc4sPCC5/A4DbkvaWQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1751017162; x=1751621962; d=konsulko.se; s=ed1; h=content-transfer-encoding:mime-version:references:in-reply-to:message-id:date: subject:cc:to:from:from; bh=iZmlSFy4KF+5xgzlYCUJvQ/v8BY1pzWF9k3tLUMOd/w=; b=Mriq9ZxFe+umxklzgZa0m3XrQgsem7CIrFuK4VBWmaIwDf/1rqvhYlj9gO3ioVs2z8KAwqx77XOIz M6hhnyqDw== X-HalOne-ID: 9a50b852-533a-11f0-83cc-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 9a50b852-533a-11f0-83cc-e90f2b8e16ca; Fri, 27 Jun 2025 09:39:22 +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 , rust-for-linux@vger.kernel.org, Vitaly Wool Subject: [PATCH v5 4/4] rust: support large alignments in allocations Date: Fri, 27 Jun 2025 11:39:18 +0200 Message-Id: <20250627093918.415888-1-vitaly.wool@konsulko.se> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20250627092901.356909-1-vitaly.wool@konsulko.se> References: <20250627092901.356909-1-vitaly.wool@konsulko.se> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: A2D5E160009 X-Stat-Signature: 86y6rsdc8ckk4e5eh37pyhz3pq3xs4dt X-Rspam-User: X-HE-Tag: 1751017163-426034 X-HE-Meta: U2FsdGVkX18bcKPl1ewth+rV59MG1W+DCrCoJgtWmIlf25AXC8pGbAu9IpTtvfAO3I0PLOGWtd4mZNhfX4Q430vsb7ywwtTBTFoRbapl9LzuWC/rUAaKnJ81wKA6dGvTgww5gxfQ7IiaAU4e5DKfTcnpHiK7jnROZ0OqlceMVAEsSE0gktj7rObZIfeXR2UuTn/H5OX4sXmJ2Huec277hIVOjyivowksiRhuNcdkupr7NWM/je3Fr7cFy44FyCNdNbTxzy0UqWXrES1c+FnTDMPhRQP6WqvsTBM/XTxbKl0+U5k7n2p/D/xg6SazUvtaKYTYwMgTZeBZm3ECv7NBVVEs4Aq3L9x9d9MCJ/P0TyyEDXOZyRGOGnuA1zQpcHJhnkTApA3g+bsZJGpqLAqtlUdvntL7qQnR56FY5eT2jopyb8RJ941APPeq89wCs2DoN/qJiOqIKiE15w4I/FN6puQ3v8HDynw20lkXF8dm9OrDtMmcXkHTX5uU3SdrM4j7fCRh/LNIKx6bTAkJmfyeQkufQfNhRMNRhOSAQE+tFcXoXl4MRAWIjE8JQxJUfBIhHO65tR07meHozNb3hlH/juvuR1z3mcoYQ3WQc6m25H+YW+u/sh4KKUiR9zVyz8F3zTFrutms1aU25iy66t9FIlzKBK++ObU7vcIVONSAf33CRqOB+Zmids+mJUICpb+Zq+y0Ik9EGTzAnIQA4ZLeVW0hbgpLnFZRzozulQeBVdhAYRj/Q6c503VNNWGozJGQBCTJVOQK2WOXfB/WwXHfeh0aBo0CgDV6Jk00a+Suacffvnl1tPiK/zGpj+1n8SaoA8T1anD6BInRj279wyxxb/xslHKAmnLt6FaPFEXog8EN7KzCm8jwEZtwuFKKiq5eRfjcJQOguhm+CoD/gam33SUPQ24eISy4Qj3ACupZYD9LddRBfpF4ms+7hSQMNxS819N/RVI8tqHgEMyJsTs F2fggBU3 OZ8eUkzLw+XTrVPAlu952zwMDnxk1CV8AgxkxN0adK9A79NE/RRdxTpCBFrpREp/KD/aXRt8VDlpj74t/06jQYRwdSfy1S5OnkHQXB14grATz0WUdEDcEH4ZpP9mHSTTfcT1RpYfY80r5N8rCaWGM2gXs3JL3vh847tD0waVn3bchLND/CvZvogklUw== 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: Add support for large (> PAGE_SIZE) alignments in Rust allocators. With _NODE primitives introduced in the previous patch, we actually have all the infractructure in place so let's just start using it. Signed-off-by: Vitaly Wool --- rust/kernel/alloc/allocator.rs | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/rust/kernel/alloc/allocator.rs b/rust/kernel/alloc/allocator.rs index 4f0fe2b67593..75c9e4220ac3 100644 --- a/rust/kernel/alloc/allocator.rs +++ b/rust/kernel/alloc/allocator.rs @@ -118,7 +118,7 @@ unsafe fn call( // - Those functions provide the guarantees of this function. let raw_ptr = unsafe { // If `size == 0` and `ptr != NULL` the memory behind the pointer is freed. - self.0(ptr.cast(), size, 1, flags.0, c_nid).cast() + self.0(ptr.cast(), size, layout.align(), flags.0, c_nid).cast() }; let ptr = if size == 0 { @@ -162,12 +162,6 @@ unsafe fn realloc( flags: Flags, nid: Option, ) -> Result, AllocError> { - // TODO: Support alignments larger than PAGE_SIZE. - if layout.align() > bindings::PAGE_SIZE { - pr_warn!("Vmalloc does not support alignments larger than PAGE_SIZE yet.\n"); - return Err(AllocError); - } - // SAFETY: If not `None`, `ptr` is guaranteed to point to valid memory, which was previously // allocated with this `Allocator`. unsafe { ReallocFunc::VREALLOC_NODE.call(ptr, layout, old_layout, flags, nid) } @@ -187,12 +181,6 @@ unsafe fn realloc( flags: Flags, nid: Option, ) -> Result, AllocError> { - // TODO: Support alignments larger than PAGE_SIZE. - if layout.align() > bindings::PAGE_SIZE { - pr_warn!("KVmalloc does not support alignments larger than PAGE_SIZE yet.\n"); - return Err(AllocError); - } - // SAFETY: If not `None`, `ptr` is guaranteed to point to valid memory, which was previously // allocated with this `Allocator`. unsafe { ReallocFunc::KVREALLOC_NODE.call(ptr, layout, old_layout, flags, nid) } -- 2.39.2