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 C1967C3DA64 for ; Thu, 1 Aug 2024 15:09:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5AEC46B0092; Thu, 1 Aug 2024 11:09:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 55F066B00A3; Thu, 1 Aug 2024 11:09:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 44E756B00A8; Thu, 1 Aug 2024 11:09:14 -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 28CB06B0092 for ; Thu, 1 Aug 2024 11:09:14 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9882280E89 for ; Thu, 1 Aug 2024 15:09:13 +0000 (UTC) X-FDA: 82404009786.20.5BFC776 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id C4EBC1C0032 for ; Thu, 1 Aug 2024 15:09:10 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=p083xwMc; spf=pass (imf18.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@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=1722524894; 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=sGD/ZMOMRlPQ9dG1x4dI8CYzs7k+/x6O06xqJxUWvk8=; b=vdLhz62xKmIT0dV3Dh2ETwxxy+BNqY/ImL/ktxCVQGLMr3P6PACBeHR7CD9C5Hrik0X66B eb58hNWjX5fi6a4Tol1xKy0DhEcyQcWGPtzzjZaYtISlxmgm5KugxfX5hGdzp7tZWysTIz Q0ZJQgBi3OgmcICMgJUEmjK2EPSfKJQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722524894; a=rsa-sha256; cv=none; b=7X+R9K5nKaNdxiV9/o0+tToL0IKT8YHkkxElFg+N/9D1cLxfKtzHQMcpxoW3Kgxz7D5xNW T77vggbOQZMm8/Lml+c2JDQH77jjfD7kqBdX5/CVkGsEb/gDfcAxKQ22L04GMSXxYINljA 9Wh0Ga9fDSNHCFHAUU8ukoXg9INYT3E= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=p083xwMc; spf=pass (imf18.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 8292760E73; Thu, 1 Aug 2024 15:09:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56F37C4AF09; Thu, 1 Aug 2024 15:09:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1722524949; bh=39oRWrJ6tH5uFM0B512mIFUHDm4aZpg6Aw1BkANjRFc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=p083xwMcsHvLOs1APEhBff7/XtssZGR+OVkKZnge104TTspWNeJR9M5yOIrcN7AfN vHVufB0i7v3ufcS317/PADTNlLsQN05P0t6agaOpl3FLFoR4fgsWIke2FYcO2dK/ay DiPw2+WeAXjAR5IMxubc6C8kI/3P2JGPblrsqdOiFr6B+ssaNAfOCvQUCsVY/4jFpj 0Bjf7uBVl61HE5r3tqoU1NSu/CdrYcqVWqBp8gTZL5OCEwU/jRIegSs3DjEoRpOaLh Nz7eOj7mNfH7qG2Bj0XlfJwwZj72tMPTCIiURMbOiwXTYKxmQqUe8kbw8XbwgdbOVS okBEDCzJi9Y8Q== Date: Thu, 1 Aug 2024 17:09:01 +0200 From: Danilo Krummrich To: Alice Ryhl Cc: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, akpm@linux-foundation.org, daniel.almeida@collabora.com, faith.ekstrand@collabora.com, boris.brezillon@collabora.com, lina@asahilina.net, mcanal@igalia.com, zhiw@nvidia.com, acurrid@nvidia.com, cjia@nvidia.com, jhubbard@nvidia.com, airlied@redhat.com, ajanulgu@redhat.com, lyude@redhat.com, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v3 01/25] rust: alloc: add `Allocator` trait Message-ID: References: <20240801000641.1882-1-dakr@kernel.org> <20240801000641.1882-2-dakr@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C4EBC1C0032 X-Stat-Signature: pnnt6utymozub69jrisim3bzqi5fuy3a X-HE-Tag: 1722524950-50502 X-HE-Meta: U2FsdGVkX19IS3kZHMNQ2Dqsev3Zc1bIT1m+NcBJGTomqhY6LMsQ4vYjA46prq95z0lkLm3V97D6PFboCx/2JHmcxfu0X4jcH2FLT+nmSriRDyncCWzbYBun03vcPbknYHAwNjzGloqZagp8yvlmySCe1N3n1jqXywPOxCCePL3HnVHerwwcK5EVkX7HQM/+ndbge2kMaF7eKKTaxn0IzjW+BiiQVf2eAhJIgdOhbWiv0BRcZUnlw+jjAUGW2PHdGK/k1fZ7W2t7CoHtN/rkIZlusKHCiTcVMFEXrmG/PUDZ/xxvqKKbP4gD9UZVSDG3bOj0A5TG2vgPRVHZvzoYYpLoR+9pk83Sl57AaDzPj9JP355a8Y2tgnMq0kF0ppAX3v3nFiA6qVmRruAc7KRKwirXlPS+UkiiI+rG28IM0ixLBpz7anHkyIiwkRxKsBxV1qOo5evkPo90W1FskNteYHZgJorGqb8FOIMOJKV0mzd2MuiB3kKAZ8RgIAnltxu9Jnqy90BcFwbXpaJrHiC8ZsjiGoSPzjEEaXuKSfB2HtWCuX6tVqjB2m9V8ip6iQHtAwRhu0NHIPh6Mb+1s13M+R0k+vJl4NROiAFd3m/7+or4zsP+4CTPPGXCmnT+amY/F5rf4XfxQTXrvzr3FaOKMnZ/Zl4zY5gOY6g3m13y+hCSmb8+UbIFEGMx0dBTghIIRDH1dw+ZOFLajpsznpd/O+HTF/xklu+bfxs9rEET9QKMfjEKhzRUlIdsk4W1zHesm2kknMIcIZHPztoT6idY6jA+Ou3Ueshv2Jf9N/ENFht+ogPAB8ke2zSXhE9Sdq/d/Er85HhLmsTHljwMsk6185o6WZ/pGy83ka5tdTjZ0mv87cveV2gkCOwE23I9RnRJ5yNS3MPO/fCorOMWz1eFLPhFJOFooypJnssFI45OLNfhzROPE4iWCM2rqxtLGk+PD+0dnsIh8O+65BhXj87 beiHmveI dFW99mTdJOH7HfXJEaEH5hpT6/1bevvU4EM0QIhvYlOjaN64R3HtK4i0PRukmwHX20KvaLPECeNFX/c1cSCDzxJwQVAZa/hYPeJLJ0QVJgM/YZEiA5MX0N/3e4KQrPmyfppFNZx1ZWLBNuw7xtrhXC7+deAQk/iAXZo7gnU6hPKwPyS+iRU7SxKXfafZNZZU1ZZLB1Lq2iCA1NNCAMvQPj7S0wD9bvFeQUY1EuGlgKVUUdkfpuzHSSw72QWOkUIFMl0oOX9greLZTauYpKxbdoKhb68/PRdnuaYF0sgcOeq8foJAvrxo2E9+63rqbuv+DmxHwmSHpHcMjRW0qEZLIbyeem7GWxsYszOjAXYVfORZhxMAYetHfNUi9jpHpo3O7XXao 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 Thu, Aug 01, 2024 at 04:25:25PM +0200, Alice Ryhl wrote: > On Thu, Aug 1, 2024 at 2:27 PM Danilo Krummrich wrote: > > > > On Thu, Aug 01, 2024 at 10:19:41AM +0200, Alice Ryhl wrote: > > > On Thu, Aug 1, 2024 at 2:07 AM Danilo Krummrich wrote: > > > > + /// Free an existing memory allocation. > > > > + /// > > > > + /// # Safety > > > > + /// > > > > + /// `ptr` must point to an existing and valid memory allocation created by this `Allocator` > > > > + /// instance. > > > > + unsafe fn free(ptr: NonNull) { > > > > + // SAFETY: `ptr` is guaranteed to be previously allocated with this `Allocator` or NULL. > > > > + // Calling `realloc` with a buffer size of zero, frees the buffer `ptr` points to. > > > > + let _ = unsafe { Self::realloc(Some(ptr), Layout::new::<()>(), Flags(0)) }; > > > > + } > > > > > > At the very least, the provided implementation of `free` changes the > > > alignment when it calls `realloc`. > > > > Yes, I think that's fine though. Hopefully no one attempts to use the memory > > anymore once `free` is being called. > > Sure, but if you require the alignment to remain constant throughout > calls to realloc, then you have to word it in a way that allows a > different alignment when the new size is zero. Agreed, this case should be covered once I documented that the new alignment must be equal to or smaller than the old alignment. > > Alice >