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 61A74CD128A for ; Mon, 8 Apr 2024 09:19:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A7C4B6B0095; Mon, 8 Apr 2024 05:19:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A2BD86B0096; Mon, 8 Apr 2024 05:19:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 91B4E6B0098; Mon, 8 Apr 2024 05:19:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 71B346B0095 for ; Mon, 8 Apr 2024 05:19:39 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 08709C08C4 for ; Mon, 8 Apr 2024 09:19:38 +0000 (UTC) X-FDA: 81985816878.16.B3F923A Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf12.hostedemail.com (Postfix) with ESMTP id 18A864000B for ; Mon, 8 Apr 2024 09:19:36 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ERAVU6KJ; spf=pass (imf12.hostedemail.com: domain of miguel.ojeda.sandonis@gmail.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=miguel.ojeda.sandonis@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712567977; 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=CMNyRdQrOSFasuq0gOdjmdHM1CPNAmXdupymxZqTDfQ=; b=loo/Z3+LNI7QZJzjcnZWJLhnqSisy9riqPD30bNUn9XsVOMwEdFYCEmR4ghJywaj26Lbr3 e2LfgUJ+GIDP0bRRYzR9lB/eFaorIbYVHs3Re6tEnmCNWt+LMtIyVVyYuK6BH/tkYmKtz9 PAMzgkZx1pbE9XS5oY3W5KT5lqXLJz0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712567977; a=rsa-sha256; cv=none; b=rZFTa5nGv10TsOaNGyv/CDITlHJAw9XXrLBHlnZM/QYclFPUCT1EnVkX5/u+XMkM6t4gws R30SdY6Ihk3sy6k/Lbvcaezp4O9tas4cHSYoEkZepEOb4bacSwoXZbtVrfK0ybIdpQeyV2 gaxfdYYxdhLpfmMWT1rPgHYl+KCyf0Y= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ERAVU6KJ; spf=pass (imf12.hostedemail.com: domain of miguel.ojeda.sandonis@gmail.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=miguel.ojeda.sandonis@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-2a475bdd4a6so1722617a91.2 for ; Mon, 08 Apr 2024 02:19:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712567976; x=1713172776; 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=CMNyRdQrOSFasuq0gOdjmdHM1CPNAmXdupymxZqTDfQ=; b=ERAVU6KJLaEFzyeTV1wfciDdVLSvqk4dHlfoh7NRv96jsCg0DjbS2lAXUokJlk7+cn Qh9wQMLgJimb3ko7lAC9vDNaFksFbMM8G64FJAOpSaqhEbIX9kr7SYDzVjt0UeJAPbj3 A1bseSbbYKKA9P7L+65xkYQ4AyiCS2ThQUUjmfB6oZM66OEJJE21fjYd0PWtLdnK25RC 5qT6zXYcg0RB6yqf0kJJnPYQ1B5l7b/HMVkC2OzpmES5doOmmZ3iDFSFZabMqpoLwWLt wHWxYumxd5s/sdvrZdHZSxQ+f6nfuOm0HIzxoN+X0r2YKcHrj+L9gyBZzgmMwrcbM3vh dcrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712567976; x=1713172776; 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=CMNyRdQrOSFasuq0gOdjmdHM1CPNAmXdupymxZqTDfQ=; b=egPHTN0Y6X8RoJf+JC54t/XpCErlL9OzqvG5PDODaAvXvgkXOptwh676cYqgmtsC+q qYz3GblOAGsrAj39b3PMDGCpgnKYHS1jgKqLJbwliCq0gJOMaWS5iQl0/7K6GfY4/D9k Ab+Cv4c0ckmJHyWoUrVQVJJn/aE9YWyuxdleu2uEmHNBjPzJupdF6AHLHmlJ+89QqDbT 32gepvx9xI6Z5b8ygfNFhirRRjAoazvPBhQeF8kSVFZOvCzh0iR3InAUqVPm7h3maBvO DMiOsd+GhCETOLOLxAX9zBgg41VC86DmnR5kZyowEj6IweJaUd5C9m+aj2C6YANL9UmF 6QrQ== X-Forwarded-Encrypted: i=1; AJvYcCVRw48zNmYq7RwEU0ZSidkede4EcW/vNNkRRyYEtnpNuWyMiSY/daY6fjPR5kBMNhvMzYvc+kdpqHlAquwNzMYaelk= X-Gm-Message-State: AOJu0Ywx1UPRS5DGuYXx8U7lMn934FF4DAlV7H2D7QfwCA862bu4O2Bv MT58e77IHEtY1TKRdPWqgjDup81yjnQh5sfWDWS6Dw3lsDlAdWhsEKTuhuqVrFd0DySM2c3UNPc dE4hk52ME9BfuNf5VPr+E1xzRr2g= X-Google-Smtp-Source: AGHT+IFhMRh7Af+1ofz2RUc8GsbDJVtkVO04aivZzCObwcByfet4XkSJddJNLUkQxaNSLaJfOd2L+aFtpEY4xfTHT9E= X-Received: by 2002:a17:90a:e50f:b0:2a2:97ce:24f5 with SMTP id t15-20020a17090ae50f00b002a297ce24f5mr7693686pjy.35.1712567975830; Mon, 08 Apr 2024 02:19:35 -0700 (PDT) MIME-Version: 1.0 References: <20240404-alice-mm-v4-0-49a84242cf02@google.com> <20240404-alice-mm-v4-4-49a84242cf02@google.com> In-Reply-To: From: Miguel Ojeda Date: Mon, 8 Apr 2024 11:18:52 +0200 Message-ID: Subject: Re: [PATCH v4 4/4] rust: add abstraction for `struct page` To: Alice Ryhl Cc: Benno Lossin , Miguel Ojeda , Matthew Wilcox , Al Viro , Andrew Morton , Kees Cook , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Greg Kroah-Hartman , =?UTF-8?B?QXJ2ZSBIasO4bm5ldsOlZw==?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Arnd Bergmann , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 18A864000B X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: cmiqa3kutnmtgma8ow3174wu5krqf5hb X-HE-Tag: 1712567976-936157 X-HE-Meta: U2FsdGVkX1/Pc83tRPmVVcp+SFqWOOdVCY6ik9xapp2CofWAw7mZ3//N3wHT1IsNVO9ZHgSy6InkytfK3Vy2AGmCABr5mdj2NY7lmrZe3r+/Syjq+G+DudLOY4kZ7G5yVtFhofMJ71No7Yi9d0291AnBofj0q8J4WLrqTPikPXAH+QR/H5NHfwmH358SZYD/UPLJc261ioy2E/MMlObxy599iURP7YQI/J4kBG5toC37quMyv1P/t/uCY9dvxqPSAuGI/0ZnQcO693U9our60i5KMc6Fh5C7jSCXjiv2X6a3uuN/gebtK7lGa+ZmPDqOjBens9tiB69JkksuAtGbT0Uoj4SE9Ce8RinQ04ObJBZZW6NO9L+ObokGg3qpsrrsXP5/DHMI1SB5aycJ5E3v3Tcc3G8QxrP8ejwZ9XY5CGXOKpZk0cF3fKCjvhhH/zL1a2T6Sk7l4MRO6gKvwtyhNUSNlRZuk+Pa8YNttRc+O7imoY/fSQfGMYKQ2SsKUs9o0lOy3/LTOHwFInlH60cSgx2okLUh4l+J+6wk7gvdevRKh5ggIVZacG9bEEoxa9YrmTIEepMCpg6qifMx5+osuBUV1nkrS6Re9lyKOLTt8IWP25CGzyUmt+cJoN1H5CG4O4njlbS5NzjAaFYpVeyFTmZE9ons1cOIsN+/89hk2eUOLLfR8CBYO0r0JUtNmvA6Z3oVHFp2L4BQfUUoid29g2K7Qs+MHpQVY2sLEBWBVWeLu8K67WXFxbJPW2TdcLwoWS0kQHuZdeen/i08e0hKJccKYIsFpgfB0Hyb9YYifjcIzJd6HJFOc8UBo/7yqMAplUUVGapV1u7ZrI1b0bMT3UgwZBxishUHUJhRHvPngVe/fmeK1AUnBykB1hs6oQOGgBaXArUCl/wPhKQM61tPuwhcfqyI+c3lv8OwY8wax0a8MUuG9NPL2FGaYuRJLT4/piuGY5q6ItYn+Yh90pv b9Sq2AMu 46e47zjf4oD0yUVj9kHg/i9THWzIr/2mbHqiayxS9183HgubWi5PQjlYetS4d88gegE8Icht33ZzprSRVM9onihVA8q83onxR5uFAPTzn/t3vtfxqKR+nz8KYs34/nCOOV4lJNycys0Popyd6hH6iL5wytBDzmCEdp8L6NNb0VhLtNzLrO+zfqhJ8jnrlgIaxD8cbJQfcFJPl/TYm7DvZwrNletli4gkGvrtrd9Vcd8Li8VoqIfMQNr5S/IEnRoMsTdLFcXMH//8cGfLvZAgl6lPFR4LP+XynfJPWaj/AsY2pbszOqBinAEEXSfIOVHYmVHptjr3AzuT8F3wGv7WcEQjwUbDqtIc4TKiwGNyPQd9L6CsxysE5OdozWpqCKfQwyUFeqGCGMED8eZx8x5cbTDoeoVmqqheqIItXtrPSkTklTz1U/F+1uOpQ6BbSfij178Ki4dYZ8aDh+XEcl1VHbqhWfXYfMqOpVkg6 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 Mon, Apr 8, 2024 at 9:54=E2=80=AFAM Alice Ryhl wr= ote: > > From bindgen's point of view, this constant is just an integer literal > with no type information. So I don't see how we can expect it to > always be generated as a usize? In the case of `PAGE_SIZE`, there is type information (`size_t`), since it comes from the constant helper: const size_t RUST_CONST_HELPER_PAGE_SIZE =3D PAGE_SIZE; For the other one, `PAGE_SHIFT`, there is also type information (`int`), but bindgen currently picks a type based on the value for those (but ideally/eventually bindgen should respect it instead). So for the former, the allow and the cast are not needed since we are already handling it explicitly. And for the latter, if we want to have it as `usize`, we should have the cast but not the allow, because now it does `u32`, but if it respected the type, it would be `c_int` or `i32`. So either way we would need the cast. Cheers, Miguel