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 13BC6EDE9AC for ; Tue, 10 Sep 2024 18:26:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E5DB8D00A2; Tue, 10 Sep 2024 14:26:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 66E528D0056; Tue, 10 Sep 2024 14:26:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 50EE58D00A2; Tue, 10 Sep 2024 14:26:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 300538D0056 for ; Tue, 10 Sep 2024 14:26:56 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id DECCE1C41DB for ; Tue, 10 Sep 2024 18:26:55 +0000 (UTC) X-FDA: 82549659990.28.DF50920 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf01.hostedemail.com (Postfix) with ESMTP id 41A4540006 for ; Tue, 10 Sep 2024 18:26:54 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=BnoZPb6E; spf=pass (imf01.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725992762; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qbhNg/c07bbnUJrI/d43f2opsxkHLkveWEFrvVxO6vc=; b=cdgpvcp6N3sZzzsQbUzB+63Lp5Z9Tnkuu1/ptSF15l8eUE6JnQA0O2QA0cuyqG7H6CLBRZ 7Nu17jzoqFaltovYqC5p3HEbb73lGUqL3I8KabqHIYzcmj3/Uu2ufPOmnOKSf4RYZjRHL4 fIjApsTh3P6EaJJ8+GlRgYCSb2S+vZY= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=BnoZPb6E; spf=pass (imf01.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725992762; a=rsa-sha256; cv=none; b=scdLfKiH48epCuXyIQAI0rx3FOCJ25DFmMpzAFfqrM/k22LNKEKOkqVpVsBLuOpaaobRES Vyb45P8YAJR00KxA2dIrX+10tT5vvc04Oot4mVCAa6iUyp8lOgGt8jy82LK0NydQlD4jer wotqLUo7p/K5TN1RIV2PKUrRpskpryw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 99AA35C052E; Tue, 10 Sep 2024 18:26:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1509BC4CEC3; Tue, 10 Sep 2024 18:26:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1725992812; bh=1K8WGPISx1mqVVku5h0gwhi9A7UiUfs/Bez4uxWR74s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BnoZPb6EH2O8Z4BCi7+cQElu+buiCehPlyMRNksd+yo0dcHHXkEQZQeCd/ityMWiA WthYoES9IxQjDUl9w1GCr8MnPS/bwbK8mhb2aqW3Kzihhx6eNuqPoS5Py0HsqlHmwW +PTk8xPGgb4qYVOYTZuPYkesUElRkV0OIrwl+mNnxLfhVu3dlzK45Jb4OzeN7ehKFO ZbumVu/Ss1vWtGFVLy6iYmKdca0L70r5/p9uH7QuF/VUT7jmJsaJrBfguT4hTp12Mo 36byu1si00e/A6njeaseiid4jPyJ8exIjKT1u8/0/TRuoLRNHHUpxIBimH1j+4Df2m hGH1zwfB1e2Xw== Date: Tue, 10 Sep 2024 20:26:42 +0200 From: Danilo Krummrich To: Boqun Feng Cc: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, aliceryhl@google.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, 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 v6 13/26] rust: alloc: implement kernel `Vec` type Message-ID: References: <20240816001216.26575-1-dakr@kernel.org> <20240816001216.26575-14-dakr@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 41A4540006 X-Stat-Signature: tse3a9qnuqkkd93shrfo4nu4mji8fjc7 X-HE-Tag: 1725992814-626659 X-HE-Meta: U2FsdGVkX1+S7QqOdGkbEfSxF9M/KViH4pnFUYd4jT0w2L7u79CKpoCD/2+sdbpZKANOg+lHG+AaW7KM/Hnuitj34ek3eFuiGdt3cEuv3jNOz8eWm1rA/ZOOFZFx9cF5XWRrygSDriK0vGU2kcnpT4wyLWeqdW3OAiyYCOprFGqxcSdX5UFk65dp4r8WppUeHzzYCN442YH/45t9aYwTbLuC0txS5xslOuCzKDikSEEvq0goe0oxSLDExEiPQdDoklN18SFCa4sSkWK2wlLS9k6Dlnjo8pUiiaKwE37gDZICeN6Sp/ArWCTsqx3T795l6hhJrj95DQJjAW0/HQXHUPSHIDdbZo7pVB6aG1ssB81+MnP2RM/GxugdZELoGLUSDe2DA0434bE6fARpmHTc6uKQX9F+pbdnCN/hILrRwrsru+OFWDuyLSLTG67HKSOj7mYhO1U4vJhxmZGw/BH0DFqcXwNtibXlcrFiKcH78IykW7E693BHCsAQFdrjeNa08XLY30Mj88lZsIdI1hZAXVeLsTO2K2GP8SX8RPIKPQTeJ4Q1BPYPa2tL1+XgPwkOLiujpYVKvbvT+k4uhS/iZ6t/CIo7uqYPErIZzWgN6mmdbLjPmN66l/kMjgfrYuWaqvrYBRCacihkAam2AvZmrsyRtYP9kw5iLilx49H3D6bX7B0a8/OH9oiHcN1lCZY6Erm6Vc799EXwzg5g+0KOwT/kbwr2RHIj1gF+7gjT3k3AYIuN2SHTKIVEUSOPCmrvgB0hRoxC3rl0jAPxK8mWq71cz6LZXEWvMS47ah2W9KKA35meqnW3G1E8Fr35dyA/ugA01yf9J3DkNKNvUT9wlewq4O8HkkIXhlm3GOlyC5P4vXEk4BiPGLEhDV6yq7191L2/ng1ZqtoG8VLTonNq9eSlVJRC+Bw/dzcqg3tukK0AoTPpNYyOecUe5dfqmyJY82E/JFlifZyUP8c/LoG mvpIvbv7 dmBnBoNq7RSiFX90svLcZRLTlumjrPjWnlrCSUOHxL5ozUAxyQI8fCGLLFQrC1ME1L+P34jYoD8VtqccZUcRmAIiFaeeCV3zcmeIRPziwFJgs564gvpCuvR/uKZ2Gpu6LOtUJNGgOB4lQ0lW/TgQPToxmK7UNvWaiHYvVdbjlnq5kgUe+ir6Q/XXm9SufLGk6+8UB+kq7ZLfaPPkbUkcMl+w5dUzq33LjQE+nEsR6f8WglYZhgorokiuEP2PqNv2JsKau8qQ8vlR/waarvCOtpr+xoUVG59cSdXjSKYxqijjtFGb4hLOvaG3esPEVJv6tZeMvgT+2gApJiFfVy/UF8xcNmw+fa3LOkKUEIbo6V7AspXU= 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 Tue, Sep 03, 2024 at 12:08:08PM -0700, Boqun Feng wrote: > On Fri, Aug 16, 2024 at 02:10:55AM +0200, Danilo Krummrich wrote: > > `Vec` provides a contiguous growable array type (such as `Vec`) with > > contents allocated with the kernel's allocators (e.g. `Kmalloc`, > > `Vmalloc` or `KVmalloc`). > > > > In contrast to Rust's `Vec` type, the kernel `Vec` type considers the > > kernel's GFP flags for all appropriate functions, always reports > > allocation failures through `Result<_, AllocError>` and remains > > independent from unstable features. > > > > Signed-off-by: Danilo Krummrich > > --- > [...] > > + > > +impl Vec > > +where > > + A: Allocator, > > +{ > [...] > > + /// Forcefully sets `self.len` to `new_len`. > > + /// > > + /// # Safety > > + /// > > + /// - `new_len` must be less than or equal to [`Self::capacity`]. > > + /// - If `new_len` is greater than `self.len`, all elements within the interval > > + /// [`self.len`,`new_len`] must be initialized. > > Maybe use "[`self.len`, `new_len`)" to indicate `new_len` side is open? Agreed. > Also `self.len` may confuse people whether it's the old length or new > length, could you use `old_len` and add note saying "`old_len` is the > length before `set_len()`? What about: /// - If `new_len` is greater than `self.len` (from before calling this function), all elements /// within the interval [`self.len`,`new_len`] must be initialized.