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 50CE7C3DA4A for ; Thu, 1 Aug 2024 14:25:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DEDF56B00AE; Thu, 1 Aug 2024 10:25:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9D856B00AF; Thu, 1 Aug 2024 10:25:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8C726B00B0; Thu, 1 Aug 2024 10:25:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AC2BE6B00AE for ; Thu, 1 Aug 2024 10:25:44 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4AA01140E1E for ; Thu, 1 Aug 2024 14:25:44 +0000 (UTC) X-FDA: 82403900208.26.0B454C0 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by imf16.hostedemail.com (Postfix) with ESMTP id 74413180023 for ; Thu, 1 Aug 2024 14:25:41 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="C2s/6ZWI"; spf=pass (imf16.hostedemail.com: domain of aliceryhl@google.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722522313; 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=wMXLyrNv6gAVe2xpU5/FnQfc6WbYmugR7fD/Bg6dOs0=; b=gRYm6r+5cqK9sqUc7M+QtFJERiqPuuHFVivKAGl4O8tPkRFECuHXKBqVvbOtNsKtJUBGeq F0V2KS9lSNwjXOEGjgZSHW0+vu4N697Z3s6AxLVSG3Gni/raxm655CWxGrCkIQ8m7G+Fg9 18iXCeSA+WZXY4kQxIJle5U/hSUJlSM= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="C2s/6ZWI"; spf=pass (imf16.hostedemail.com: domain of aliceryhl@google.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722522313; a=rsa-sha256; cv=none; b=Z2wEbTOvrTgiCruWYveIa1okdlfO+d7eT//p5hbs264LPz0JDfO4hMiolh45Hzj8OlFW1h uwPRLTe9KrxUJgl1f4oWXoxpYtfIZttCKyOsOPgg5/Dg3TnlvE89mXt5qG2vsttOpUtCFN Tvxdy80H/auZRrmbPlqdiQYUqtLkvuQ= Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-2cb5b783c15so5225323a91.2 for ; Thu, 01 Aug 2024 07:25:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1722522340; x=1723127140; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wMXLyrNv6gAVe2xpU5/FnQfc6WbYmugR7fD/Bg6dOs0=; b=C2s/6ZWIXq3UBKEBI4dXpbMdWgU8nxpoxGiMdNuX8GePvo8y3G27QW6ldtdL6PK0Nk 1hLBGWgjwuWg4HbBaA4Fk9v77GSLZqE3/xLmbRI5Sjv+VrUYhz/8e/1FueCjuvuWAbB8 x86wm5VlYsEBnQOH+PL21s4v/To4xzFO3iJZCwtpsXqqpeeeHQRB9pSzNECwlISR3G73 nzVIOI7yNZZKi1qMUsLaxKYoXDN9+DewVaYIvahfKKz8GqEq21sbE6S9ha7GEXpXDLhA nMlLs0IRu01avMXWQdaNw5GF3BjVRMwlvDozZdLBfbBu3kKrgW2hshkKHM8YwiEkNFax qrBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722522340; x=1723127140; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wMXLyrNv6gAVe2xpU5/FnQfc6WbYmugR7fD/Bg6dOs0=; b=i44TdeXINYSoHYeG7JQxoiEGcFbEwEZUTszCbTZgEBlDsi8jeWvG/VSsuXqSEOcq+9 hO/QFztoGBWqKu+mvT9MBj8H5zwdWj/5Nr7ukfV/5eA7mzgMS2tsI+YY8vwJAJrTOmIE i/dzHukn72QA2DE707cp4xgvRtnNdy23RWkD5uYAJWn0jaGJPQEsyTweaUMhmbTUS7C3 7k/pBZ4z7S6bNt9d3jd6TDV60AwKCS9e6sI4ERZ19fiqObHSw+rrM++g0Cd0Z6LLrMuP FivlxO6EUXxGvONzh5WAsnFyq7dXteh3GN4t++itX9gSNAc2pZcogo4nSoBRZiSEIlV6 He2w== X-Forwarded-Encrypted: i=1; AJvYcCUxhmUsAzTN90/oSny0H0ZX68WyGfEBTcunpNlIxfKz7QwXO51qDgKytfxRuczUK9sAAmmdo5Ho94gGQNopZR0TWhc= X-Gm-Message-State: AOJu0YxKsoKUtQUFFgmVf7ewiWUkjvoC/kF/M/B4bTRxCgvtKjY+iqER 5ktBocLmQpS3qg5qhQBYz+hPcla8/cDfjxxFImWtN/jnlKtLPKHn9iYiJ0dtq+jBGea0DQQv9YW Ld1Sm8G1fKLvIHoLtuhsGZHYGCP28/CeJlqxg X-Google-Smtp-Source: AGHT+IHWwdfCXSbrbEMMYZ1PpRprRVKf1JZMNsbSZ4PVV1VmDOudXf9Ktyc7oZ26GiiZCb3/7NGUglVGUheZkdgmYcw= X-Received: by 2002:a17:90a:f02:b0:2cd:ba3e:38a5 with SMTP id 98e67ed59e1d1-2cff9469006mr410991a91.21.1722522339636; Thu, 01 Aug 2024 07:25:39 -0700 (PDT) MIME-Version: 1.0 References: <20240801000641.1882-1-dakr@kernel.org> <20240801000641.1882-2-dakr@kernel.org> In-Reply-To: From: Alice Ryhl Date: Thu, 1 Aug 2024 16:25:25 +0200 Message-ID: Subject: Re: [PATCH v3 01/25] rust: alloc: add `Allocator` trait To: Danilo Krummrich 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 74413180023 X-Stat-Signature: a1hds16brx88ye785npae3wui8zudh9a X-HE-Tag: 1722522341-979245 X-HE-Meta: U2FsdGVkX19dltSPwX1zStVHqUuLyRr6SF3XSOqwDRKC+2aktT0VCE8TiqNvyRFcYxWs+nhfGgi/XZVnNUtJEgOjuDqyOPbPD2ksgrCt6XP5GE7LlCrpUiFCRX7Ov02GkZXflpza4YLpEBx//idbQQRt4lxmN2bFqNTxLFIqqaMfV+dDWNmbfpdb4DidvCq0DxczkkJp/BdMoWMgR2V35CFZ7f5U5rSw9WGR0OyphnFlHhFg4RwnVz8KiXqNOnZ5/fPXRkFd/j4aF4grUOwGQQc7oy/iXS0hcA1xdusooA6oBmdZd3bA8MaAPvpDyVQtOZZl0Z1dX7V3qE2mfBihi8AB8So4Ha72T0NGDUVUxhk+LjdI/WjPBCeKPT91z0tACpFWgQpD7CE19MntQ1EZr9Cx/uctxWz1JmFGt3C8pmy2iGD7JJSOdwlxEtAJQ3XVGY5NNPHRQsF/71Cli5Zj2UyHbwnZ0Uf4CxH7VufkG8vkyigQQN7AR1daUB+dCdOZM+fRjQBgOvTEbf/aF1QlUcoTWxX2haUTaZlMZwue1g85cSf20PocGUaYHo9PGTUiT4vipLgp0UEIUWwCEALwOkV0OjL7drvveZBcV6m0kzh7EePajWBd2g1ztg9w3F060vHvUGSOvwLoOV+3sruAdZdEKW48pZZwKTlXN/THr4QUHS2Ob1a+NYy9y46WDdTlZmWsuN6gyXdA5mMJv3vvwjHRSXoh3UynczPNOql2PA2p3M6xrA7vAG1ekdgadqYZDAh21C4hZ1zPIfAOpmKlPF78Xz9P7TZRdqb8L4zskWnW7Le3NdyXjlY/kvhyyDkxojO/glkXKxxOc5imMota0E2/3z1Wu4FyODorEmDjPqXQNIb60ApPF0uXXriorUMdYlL/9D62/Fj46vM8DJ+W3TKXd6nMoTY34g7U+0uiCN3OGnzp2pVDno2FmA2701rTmON5EOBWGWVYnY6FU+S dkvUeSjB VbMzW5lSd2P6VlfbIv1iOgDQBdQg5EeT/RdCtx1AZgh5LVj3dvzSXWgeJc3w52UqgiM2na8Wm5BRJlb6+lcm3NihVt6mws6peXDIkoXJ/Ba2RqXQ5YIIsJp7kR3/KxMwAkupWQigH3801uNo/7+0uXCO05UMBNZF8Qys9CqIXcwr6DNi8ger/1z2qGLRD92hGsNT1Mh4IAxYioPZxpM+jNIUXCI3ISpofJNdyms1DYcr8wXQBO/tbgqmFrrwJnUovchmB52fANOgTBGwdEx7LFC32yLVXNVuxUnENwSOu9PswvTE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.441856, 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 1, 2024 at 2:27=E2=80=AFPM Danilo Krummrich w= rote: > > On Thu, Aug 01, 2024 at 10:19:41AM +0200, Alice Ryhl wrote: > > On Thu, Aug 1, 2024 at 2:07=E2=80=AFAM 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 wi= th this `Allocator` or NULL. > > > + // Calling `realloc` with a buffer size of zero, frees the b= uffer `ptr` points to. > > > + let _ =3D 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 mem= ory > 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. Alice