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 10D04EB64D7 for ; Tue, 13 Jun 2023 20:38:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5DBC06B0074; Tue, 13 Jun 2023 16:38:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 58C128E0003; Tue, 13 Jun 2023 16:38:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 42C4D8E0002; Tue, 13 Jun 2023 16:38:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 351796B0074 for ; Tue, 13 Jun 2023 16:38:24 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 01C621C8061 for ; Tue, 13 Jun 2023 20:38:23 +0000 (UTC) X-FDA: 80898887328.02.90A76CC Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by imf13.hostedemail.com (Postfix) with ESMTP id AFFA020024 for ; Tue, 13 Jun 2023 20:38:20 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=ryhl.io header.s=fm2 header.b=V19y85sg; dkim=pass header.d=messagingengine.com header.s=fm2 header.b="nHa/66Y+"; spf=pass (imf13.hostedemail.com: domain of alice@ryhl.io designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@ryhl.io; dmarc=pass (policy=none) header.from=ryhl.io ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686688700; 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=P33YgGs6OZIxngy95+ozg40+5//7kMaRyYq7qJmuQ0Y=; b=uUY5mIGY96LewHf6BfyC4cSYkIwk0BTQSmAchQBQvzwYlPY2aPqf/QT+ueFkz9o3pdT+YY xf0eLDIFqqHB6IZxLrehoNYpaLRMW4+k6CEhWrzZKyiBls6WKu48gLS+sylS3CwY5Aq9sw nqa4TNPyvQRo+w8kTifnKTj2XmGYtBM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686688701; a=rsa-sha256; cv=none; b=yKDxaFiEX/ORJelqrohi6HInjzPpfTkMHB9AfZ+xLisaSKoTlm5YdQJ52PHl5CLTE7JuQX mBYktgsQbPOBWRSybgiYqU+G8qfJVh298bpyNeTF5zcCpjY1Y2XnL6HXuA0wDrR/wmFeNf wxc8l3b/qY0Zo9JGeR19935GhwL8tvs= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=ryhl.io header.s=fm2 header.b=V19y85sg; dkim=pass header.d=messagingengine.com header.s=fm2 header.b="nHa/66Y+"; spf=pass (imf13.hostedemail.com: domain of alice@ryhl.io designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@ryhl.io; dmarc=pass (policy=none) header.from=ryhl.io Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 045EB5C01DD; Tue, 13 Jun 2023 16:38:20 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 13 Jun 2023 16:38:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ryhl.io; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1686688700; x=1686775100; bh=P33YgGs6OZIxngy95+ozg40+5//7kMaRyYq 7qJmuQ0Y=; b=V19y85sgevW88E/PFN9v/F1+YVpGMdvbUVD0n3A9QLbv/t4ggdx fw7Ln3P72JE0ABvWtQuBS2R6YlQA4Eq70QIT5LqZmBuHpjby4OmeMhiCtkozpOEJ isgjJY/lh34zvEpBV1Z4/CW5cp3EDYA/HZdxzXF9VYQA+wofHiRCgYgJQ54zvmwR SeNkBNm/7ZR4/4B8UF5Ki8R3sDVwdd1mlvGhEb6LX8lChxzw0/Jh1DQxBLvGEZc/ CfBrVfJLlQLH91C76fal51snoPUVJNtanOKUhUKvLxe62hFgO+IkhW5m0AMNAVfD LVjdljcDWfml2BKaRQI1/2luAPugXAb2trg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1686688700; x=1686775100; bh=P33YgGs6OZIxngy95+ozg40+5//7kMaRyYq 7qJmuQ0Y=; b=nHa/66Y+wkQDCh0Wtfo2//OBIhTgEOcWP/DmmAx7S4hQKyJoVdt KCO/wG9lGDo7SkZ2TOSfeIgesthOvTogycHk+ZN1Hg2hWyparr8Rsmzj9ih+a9r0 FdkN3ZeFMaUcCgXjdJTGH6zZH7DdRQUdQ4qtTxSm/447fUQKPzvoLN/XqsSLL1YL 0WetCgimt5guRex/vPx+jQ9pV5aT9J243GAdUsHziUGrs5u1mvxx24kAt0ZuGPGI 2kW3mq4RBBP2mHw7D2LmaBZj6Nq8yrNFW3enGA3Z4ureMSrt6fVvgJiMb8+nyDPi 07h02Q9Sn1DY0vEvDxP8O96KJ5cLeKctTaQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrgedujedgudegkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomheptehl ihgtvgcutfihhhhluceorghlihgtvgesrhihhhhlrdhioheqnecuggftrfgrthhtvghrnh epheduuddvteekvdektdduledugfffhfdugeejgeeuvdevtdetveejheehiefffeegnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprghlihgtvg esrhihhhhlrdhioh X-ME-Proxy: Feedback-ID: i56684263:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 13 Jun 2023 16:38:14 -0400 (EDT) Message-ID: Date: Tue, 13 Jun 2023 22:38:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH] rust: allocator: Prevents mis-aligned allocation Content-Language: en-US-large To: Boqun Feng , rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Gary Guo , =?UTF-8?Q?Bj=c3=b6rn_Roy_Baron?= , Benno Lossin , Martin Rodriguez Reboredo , Alice Ryhl , Dariusz Sosnowski , Geoffrey Thomas , Fox Chen , John Baublitz , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Kees Cook , Andreas Hindborg , stable@vger.kernel.org References: <20230613164258.3831917-1-boqun.feng@gmail.com> From: Alice Ryhl In-Reply-To: <20230613164258.3831917-1-boqun.feng@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: AFFA020024 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 3kwmtx5p4rqwg6stsw177fpbicyo1h98 X-HE-Tag: 1686688700-539951 X-HE-Meta: U2FsdGVkX18kLgFxKzZil3OwAWp+C+WynIVz304FMV98prjqACw2erQO6g9Y71q5YaE34wFQwDTnzBUuRsxTqRaf6L1cmR4uoSyVNkPhWC+1uPRLpAT0fhgbCcQXJeClJFu+wg4x7qZ/T3Bem2shVaXn6MV8z8uf+LyWxSvxBzIn/iMgINzJRXlNaln7fGNzNBY44hKV7Zq7ytYnDXV3SvH/3vtCf8fG/iJ+/OsVolZhwHEK3keSxt9BoC7Pyri5nRpYDl4mPDyFt7Lq5GzXfs9eCu8PAnrZA72W7qHTNYuC2Wc2z1BnYm/CAFNtHcDetQ3roOFjUiXXOSFNlXtWJ+phQmAtefpmvZ87ADghqCI2tKOGloBFwLYMl7eJVyDHEjwWZobmHx0yxdwQq+G+FyVdwSdhuB1ckmdhxDCW1Fd6DJ6D7TRYmmlc+ayFeecn2lrFjH/xuciYmL0nB3Hg9BTPySYiTDEcK3r/ya/d/16WobGM9uleR+Cuy9W96lKDdOTPTC/ioJrXaD9dWYOpurPmORPNJ1byAUMt+mBL5rwcLLdPdYrlKm1llreShI/mkuxJXjTwOpRXbx3rMupINVCJmDkBiQx0GNFvdMK4pr+4wETj5NfLAsv7jybNQ36LiyBXOn1hMx58yBdKOhHCXnataw5rUkXT/3dco8rr4W6GQJ/nbK3xhvAgwpAHgf2tDoqKNxSGCh6kdLqLcu937aG/SftP+z55Zt7RwIG7XesEkL6Muj3lkCqZZ2g+WBy+uyi3MxmP2I0GuFa/3eAxuD/BWk2kZx7kX1tg8pqD3vg7jootdqsC+V0acqoTSMh15gUJin4kaC1Tg8yEsw9BaMk1Gm7n+cTKT8maaPcweHkFsw7FicR23Da08m3bInXXowgFUy303B7eDGpLVDPjEgVUewb6r9Vwg/C1EaEb/kqUfC/1U+dbtKs2n4UHf1KhS+mn6A443cT89/Qg4PJ aS++b4s0 nZHifEtnclTV668ohUIfySYDyiKTE3XNbyfO9AXi/nlqmf7puw8psxvItvLaVk2j3SZvjubUWHBZYdOc0FSA5HZGcWWN2aaY/6sWVzogVg6wHByJ5IXFNBbrMa+yMCR1XZZK+AWhLMcC68VpVU6xI6Jpghg3B17WG5hVpt0qGdBQrqWpu3hTOcsJTFD1j3udjgu0/PO9XqlJZP7w2yHNMeX+tplSaSnQUOk3xAY0JHKoVQ/kUo+ppwknWtjPU631fW6RtHrwWZz2y6YOCiad0v2MuDgqe6Bj2+R6PIrmR7Kry8L8lOzb69Eg/v13ITK/BzoWk+p7u7Id8m4jc8zMHYbA3qln8/D0EonccfBJuyQUZ+FZ+NPuccILbo8We1ZIlpRmaQcDtZzgbcT8= 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: On 6/13/23 18:42, Boqun Feng wrote: > Currently the KernelAllocator simply passes the size of the type Layout > to krealloc(), and in theory the alignment requirement from the type > Layout may be larger than the guarantee provided by SLAB, which means > the allocated object is mis-aligned. > > Fixes this by adjusting the allocation size to the nearest power of two, > which SLAB always guarantees a size-aligned allocation. And because Rust > guarantees that original size must be a multiple of alignment and the > alignment must be a power of two, then the alignment requirement is > satisfied. > > Suggested-by: Vlastimil Babka > Co-developed-by: Andreas Hindborg (Samsung) > Signed-off-by: Andreas Hindborg (Samsung) > Signed-off-by: Boqun Feng > Cc: stable@vger.kernel.org # v6.1+ Reviewed-by: Alice Ryhl