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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E4159F33A6B for ; Thu, 5 Mar 2026 14:05:55 +0000 (UTC) Received: from kara.freedesktop.org (unknown [131.252.210.166]) by gabe.freedesktop.org (Postfix) with ESMTPS id 45C8510EBD4; Thu, 5 Mar 2026 14:05:55 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=garyguo.net header.i=@garyguo.net header.b="FU4s52jf"; dkim-atps=neutral Received: from kara.freedesktop.org (localhost [127.0.0.1]) by kara.freedesktop.org (Postfix) with ESMTP id D0D1444E89; Thu, 5 Mar 2026 13:55:32 +0000 (UTC) ARC-Seal: i=2; cv=pass; a=rsa-sha256; d=lists.freedesktop.org; s=20240201; t=1772718932; b=d515Yuj03S/JJ87N2dqav5T/FPPTKgcSsfqZTESe7t9ljNueFMe+oNARrt/fDNmfCFBpw dlQOsnN9xLavSy/Ysk3E6K3cTR9xZbu255M2bGsOoJtF6BrCFq04AAfZftwUYSEmi5mnwgj E6rANn/BkwfeS/EMXRO/jIbVihsTWgVrTS2ZZnoojEd2aTkz00jBfFMW81YoMIdcH57h+y+ x9Uxe6ygVLLHCkrocxeqkL94BwMwF0rUJQXkJnUGwZ4F8y/s/s9K9+s3nU4Lt9OAWi83AKp /SPgtnRM6+YcgD9rWY7wR8kLvzH4CLIAX0NMw+ew5DS1tzB6fSzGPE1mqmVw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=lists.freedesktop.org; s=20240201; t=1772718932; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=OK4AJMuo6hUidNwsq5l7x9vlq0SwlXiluScv/lfohoo=; b=0leyW2Qzw7WhDdYH3n/ZcbCsVfVaxCPuH/52EUGjonmEEKKRO9i3VWpPhpFlAdOdGDV9N OcjcTBS5jvyCHKUHPcfExX23m1R5mKSqujqV0/Nmkdu24NbOaMi6yam0s2Kalfi5oRWhWib j2Ebv6tI14aFGqwLEwUT34DiiCUd0J4AE2nMPnPxg72tzmFSjikfuG572djs6yuFzaAZWfe GzFBS9p308PStFp6ui4T6o3hmA/EzICUxM+f3745p7+Z0dEG1NXL7agqA7b4EcdROYp1L1y CI5oFs2TcKRzQTme3uuEEVyI8SCBtapFb1nXRKNB47z194JSd+Y+cxDki4QQ== ARC-Authentication-Results: i=2; mail.freedesktop.org; dkim=pass header.d=garyguo.net; arc=pass; dmarc=pass (Used From Domain Record) header.from=garyguo.net policy.dmarc=none Authentication-Results: mail.freedesktop.org; dkim=pass header.d=garyguo.net; arc=pass; dmarc=pass (Used From Domain Record) header.from=garyguo.net policy.dmarc=none Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by kara.freedesktop.org (Postfix) with ESMTPS id C534644E79 for ; Thu, 5 Mar 2026 13:55:30 +0000 (UTC) Received: from LO2P265CU024.outbound.protection.outlook.com (mail-uksouthazon11021102.outbound.protection.outlook.com [52.101.95.102]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4FAF10EB0E for ; Thu, 5 Mar 2026 14:05:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oXtWDDQqgfO8eRErgkNLGB/zoT+3S3XkUVKT9wYZHVt5rkZ6fCfpnFLrpIsXVqvcp0Pl4oycxu72CoYvtliRsgPYvrXbT4gRV25uPFnn7u5+VOsAFrTlo/xMYl05WujWEmNCPnudofosgtFX7PAEZv9BJq/LXteJTdrhqx5pIcga79v2HN7marl35CCQBoKHLoXPRb8ezePCU7D9hp8WxMJP/QY4HSUQALCTFKPEptSUj0iNzt4Onx8n2vvPqInmQNwNoNWGe3FaYTql8M8P31z7FJusj5WjfcfmsMx/s1WnqGux8hEii6kZ+4QVzz/Qw53QNKAjGeXC4iBr6rS8SQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OK4AJMuo6hUidNwsq5l7x9vlq0SwlXiluScv/lfohoo=; b=Rv8anekgkm1wur9nHVFlebma1ibpwa4gHfuyURn+p4wyDajlHaRvkvsa+fHPvezPG5RGEJqRjQFwFL3pEMDG84Ja0fW1qDjnylq+9aMUhNYLYUQ1FTS+vskz1qzsQUceY/plsPvNm3jYRyH85jvt3ZaW8evJ8PVTWrovWOKBuMy0iFNCWcS4Rmd3CJhjc+ZHqv7iiVa3Mm9uuP5fVcXaNmlJ2rnKTt2l/0CPcTT/u+FrIW9kMM5WrGu4cFhclIqoce81sUl4I3u9kZa8SXUngA4Anz4jnkm6nhEOX89QJo2MAoJpqkW3NOKLNpFuBG7a+ghlU+dSMvb9XTkRwiT5VQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OK4AJMuo6hUidNwsq5l7x9vlq0SwlXiluScv/lfohoo=; b=FU4s52jf37XV+btDD+0BNDrFqez3OxEUf3/gldJlt7rAynkkGQaBP+mlLkZVAtgEDUkgrjloQPnE3jWnltqJhB81+Dlk4md/jSHWG91840dSRJ3Nth/1CWWcFrpBBnDT1ar8yvlLPVFMt/o6x6UfggkXJLavvWCLg8HOPY6YJAc= Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO4P265MB6447.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar 2026 14:05:49 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%5]) with mapi id 15.20.9678.017; Thu, 5 Mar 2026 14:05:47 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 05 Mar 2026 14:05:46 +0000 Message-Id: Subject: Re: [PATCH v5 21/38] rust: ptr: add const_align_up() and enable inline_const feature From: "Gary Guo" To: "Alexandre Courbot" , "Gary Guo" X-Mailer: aerc 0.21.0 References: <20260221020952.412352-1-jhubbard@nvidia.com> <20260221020952.412352-22-jhubbard@nvidia.com> <89b240a4-33ec-44dc-8f7c-1a3f8d379e0d@nvidia.com> <282c94d3-f32c-4851-969f-61fc968de6a7@nvidia.com> <2fe31d10-733c-414c-9936-2d892f2a4186@nvidia.com> <3ff4588c-1322-4723-bb30-9049d0b316d6@nvidia.com> <22041c9e-1eda-4273-b5be-6f277dec4a4c@nvidia.com> In-Reply-To: X-ClientProxiedBy: LO4P123CA0075.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:190::8) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|LO4P265MB6447:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f3d94fa-e3cd-467e-0646-08de7ac04cd1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: F8m7Rrr4sndyEG1jVC5lvA5DwwRAVB3mysCgnqb7lVfYkXV3RYQZLzf2rs55LuwZjY27pYZ3C9FHU0w+i8haWF2pMXsK8fLenHY1OPbez0sjhv2VTP79ON2pvf53SgD8Y0RSg9LNKuoF8DciD3sKJh3huv1lUk1K4Qc7+uJbcgrPyXITjXZC8w6PJggh9uP/oeKjXlxcBrJpfbS2KgNj9cqYlrpgTpafFo/A3U+DGlXR42W0EkBZiEM0lOsqLQd4SZ5Hgcs95RTmNIk28dBXB/vyReA45cffjvDItoVNNsn1d+SYIfynCKTHznKF/56iVgU83Aa4XChtpIvA3h9gHxKDszU5mSAn4e6TXEb1uIecv8t4kKu+BmejI7Z6LOnIT0R7C0060BTmxweAGUxRbv/hGE/s64flD34QxYPm+HWlsbnHRN9O+DD5pASDGRE79L21bSF9T2yLnCThNKFLelB3wBa1LdgzFWBzsa7YLHkR2F+DUCup9SWyiWDmGGhoE749ZPallM8U3NYN0NaXkHmhSryucvyHJtJH8skVENQvLeKMPDDuh9RiXwRieUQ8XRW5uT3xRHJWRjk8TeRoYfLCFDS0SkmpeslTPpca6MeB8BoEvAYCWHB3zkld5dYGC5Cy2Y/YMHpRybkF2j5R/ZSZPyU2sAdf5hnq1gOu5jnrrlyOUvzMp8FqNbih183oyK1BNDbqBpvF0VfBuylDKLOiK2H5F22XW0KfZV43a04= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cWo0b3l3ODRNSXV0MzhDMnA4azRSYmUvSTQ0OFJlZ1VDZExqa0E2SWhKR3ly?= =?utf-8?B?VnJPK1dMWWc5UkpBK29rL2xXS1hXRVQvVmtESWE3T2NhVmN6eDJZSUNVWUZk?= =?utf-8?B?MDFTbUc3d1dZQUpzSWhvK2ZvcVZTUE1rbVh1WlNKbmcwR2xKK2hxb0VsSlB2?= =?utf-8?B?ZmNhVWp5UzI1RGtaNlE1VlY5dGFOSzhHOGR3S3ZzMnZJZWlJL3haRmhUaVlm?= =?utf-8?B?SEw3a2tXL2o3Z3dOZTFNd0JvdmU4N3FaZndjWTQ5ekFUK0F2N05UaUpBUnAv?= =?utf-8?B?L0xpVjhYTXpOSjh5M2ExVzg1VWppRmQ0VzkzZkdlSUlvSkxkMW1mTVZUN25Q?= =?utf-8?B?VUR5SzlMSTY0N05STmRTQW9YU25GQndxVnBzVWNOYjZmY25QRVNIM2FGVHhj?= =?utf-8?B?OFIvb2J1Q0pIUDVxQm9WYXF4RDEyRDlyT1YrN3lpdzh0Y1NFZUF2Ukt2OVoz?= =?utf-8?B?bG1FbnJFKzhqMjc4YlZGNWhEQlVYcHJHYUF1UlQySGR2RklZMEE0M3dGYXFQ?= =?utf-8?B?bGorRDRMaFpWRkZVTk5ZdUZkOEJKQ3ozOWQxRWFBU0ZVMzFVbC9ZNzNkdUxO?= =?utf-8?B?bFdnQk9zMVcwTUFyY3ZJY1ZidGxML1ZsYi9aLzFaZU9Ic2pOUzVybW9WWUZr?= =?utf-8?B?RHRWYzQrSHV5aEo0WlBRa1lYT0JRZ081WUo1RXZjaVIyZFppMysvQ0FsNEdq?= =?utf-8?B?djVFVXBxRzhMdnI2NGszOTZxNlc2OUR6aFlVUGJiWXlGTzlURzBZSk5DRk1a?= =?utf-8?B?Q0J4M042TnliaHlkS3lMS1FpVy9WcmFsVVkydnBLenNTS2RJZ1ZCd3NJV3h6?= =?utf-8?B?dURFMURCT3licjgwSkEvVFVFZklodVhNTVF0OTZsVklZM3JHZlIzdlNtQU5X?= =?utf-8?B?QmE3eGE2ZGxmbWNGRFFCZit4dDJpTlM3ajNmWkI2T2czWGwrOGhBeDEvMjN1?= =?utf-8?B?aUtZV2d5ZmJ3Q0RYV0JmRnhzTmNTNHZxNnVtdWZXNzk4T0JqTEZsZzBteEc0?= =?utf-8?B?ak01SHZZWjBrTUR1NUlOSzFzSFFiNHlUaXhyTUNZOGhuOVM4bFJpRm1OQTY2?= =?utf-8?B?KzVwbXNEaWVPWUQxc0dGVlUxZ1ZRVVFuWE8zSDBsZWU2ZjBHOTdHblEzZTdl?= =?utf-8?B?NitaVUMyN1VySE1kQlRtQ2dDOTVKWmFWOG9ZZUJoSFQ1QW1vNitUTXE2djhu?= =?utf-8?B?bENXdWxDM3B5eFRpTkxsallVSVEzbjNybXZkQ1JkVElWVzFObkd3Mnc4VVFI?= =?utf-8?B?am9nWlI3L0NmWlhnZDI1N3AxZTQxVnlJbmZsdmFldGgxMlJVMG1SWVoxSnpn?= =?utf-8?B?SVNuMkFFQmcyZU4zNUtBZytuU1d6TTYrREMvWGxUeU5mMDJmRnhib1NUK3RF?= =?utf-8?B?R084c21ONi9OR0NMMVZEbG1RMmhUQjN2TXVPbWhqMm5IaG8vUHhQN0srcW9S?= =?utf-8?B?UWtYVmEwT1dHODlsYVgzQTByTGxUSmN3MXkxQUROYUVva1FIY2NqZVNOUEpU?= =?utf-8?B?Nk8vZy9wcDNSUk1RN2lQR0RvdWVLckJYOG4rWFlQSGR0eTNuUlJrVlZQcTZq?= =?utf-8?B?RWhwanV1QXlCUlgyWjhjTU9IOGpjV1NyUlpTSXJuZVc5UFJ4c0R6Q1UrYTc5?= =?utf-8?B?OUQ5ZkhEYXBydTBCZ3d0MXcwRC9LcHJlM2t6VFJBYkIrZS9MU0N2a3BLY2Q0?= =?utf-8?B?OFRORVB5UW9ZalJPZDZrN2JibnBKQjh2Z00vdlJlR3F1eGdIMFltbU9TenpV?= =?utf-8?B?NThJM1IxQTZkbTNvYVNXTGtKK0RGMmpUL1RjaFpFOEhzTm0yaDZFUWVSNnQ0?= =?utf-8?B?eDVpa2Ixem5tdzZDY2I5Q3NvcjhqMEpjRUZicDBPdXNQNGdmS3FkYitKRUNG?= =?utf-8?B?UlRRdE9tRjh0M0t3ZUdHeWJaejFjcVhxZ2RycFFVbE9GaFZZMGl1Mi9DL3px?= =?utf-8?B?U0s0bUlMYVBjWCtQc2xBUS9XNllXMnJRejhXUFJmb3BCUWNDUmVacFRrby90?= =?utf-8?B?YmpQUmlONWFQYjNqNzE4V1oyTmN3a3JWdFo2ek5BWkxLSTcvS3MzUFRTaC81?= =?utf-8?B?TXdFOE9BODVOeXFZSDZaS3NDRDdWc0R4K1k3L0dVbDYyMmE4UlpDUWFZVUZh?= =?utf-8?B?ZHNCdmN2RzY1a0ZrSFY2UUdtc3RlZW9JanFUQ1Z6d3FqV1RPZVE5dXdHMm9y?= =?utf-8?B?THhxdml3LzdNZko4cFJWSmtjcmIrcmNEV2VYRG51UHZEcGx1MGFPVlVsK2RB?= =?utf-8?B?V2NOa2ZXcVpES0VPRFV2M1c4eUxZaDBsbFlnQkpsY0k0d2Erck1NWW8wRXow?= =?utf-8?B?QjF2WCtXWENrWUpoS2s1VlFrNHo0NkpaMUNWN3lBL25LYWtTNW5xQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 1f3d94fa-e3cd-467e-0646-08de7ac04cd1 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 14:05:47.5150 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FesGkOOkCtcAfF8s/4kfyBZlyD0MahZLS7wzU40oYJ+qbGh3WdUWmrIxqH5HWxeSDoEWLYiDuDOsD1wRjDSF5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB6447 Message-ID-Hash: D2H65A2URL5KRSLQP5N5OJ5SWJK45DY5 X-Message-ID-Hash: D2H65A2URL5KRSLQP5N5OJ5SWJK45DY5 X-MailFrom: gary@garyguo.net X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation CC: Danilo Krummrich , Joel Fernandes , Alistair Popple , Eliot Courtney , Zhi Wang , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML X-Mailman-Version: 3.3.8 Precedence: list List-Id: Nouveau development list Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Thu Mar 5, 2026 at 1:59 PM GMT, Alexandre Courbot wrote: > On Thu Mar 5, 2026 at 9:28 PM JST, Gary Guo wrote: >>> >>> const TEST_ALIGN: usize =3D const_align_up::<256, 10>(); >>> >>> This uses purely const asserts, but you have to work with two `usize` >>> arguments. The version below looks a bit nicer as it leverages the >>> power-of-two invariant of `Alignment`: >>> >>> impl Alignment { >>> const fn const_align_up(self, value: usize) -> usize { >>> build_assert!(value <=3D usize::MAX - !self.mask()); >>> >>> (value + !self.mask()) & self.mask() >>> } >> >> This is fine, too, although I think just returning an `Option` and ask u= ser to >> unwrap it in const eval is better. > > Why? Aren't unwraps something we want to avoid? > > We already have fallible methods for non-const contexts, so why give > another method that essentially behaves the same when we want to use it > in scenarios where we know the result will be successful anyway? Unwrap is only bad when it can panic. It's not an issue for things that is apparently const eval only, e.g. inside `const {}` or `const FOO: Bar =3D b= az`. Best, Gary From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020111.outbound.protection.outlook.com [52.101.195.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBD7239FCC2; Thu, 5 Mar 2026 14:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.111 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772719554; cv=fail; b=I3KnMUxlNuESkABnplDC9LL57geyCFJXLOe3G24s7Ehaz+Vrl6zZMc7qqcINmB2WPNxOYvGVTf5NBTH0LayeDqpZQ1/0+4oeCPHeUVIR7QaswKgy7MziU7LafhcM5xOGAOMMQV60saMaQCgatTm5pW8DaV/qfCp/QL79qkYAkHg= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772719554; c=relaxed/simple; bh=rEN+Kz3FS6nE1pMCfu1NLFErZpQqKhy1iixjWE+Y8AY=; h=Content-Type:Date:Message-Id:Cc:Subject:From:To:References: In-Reply-To:MIME-Version; b=WIPVetish3JkV34Cse4joXySKkAAZwP+GmctsYjzqPSvOjHQQXgrDPp45I0Lfsp94H/1EUWIr/th+o7gKt1AZHAJ9A6qxatezOuu3XenaKGeBFmiAekzNhSQdWrDUSrrTYoBjfkY+ZTL7rD5HQmMC5ejUouIxGZlFZZUFbD4NQo= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=FU4s52jf; arc=fail smtp.client-ip=52.101.195.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="FU4s52jf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oXtWDDQqgfO8eRErgkNLGB/zoT+3S3XkUVKT9wYZHVt5rkZ6fCfpnFLrpIsXVqvcp0Pl4oycxu72CoYvtliRsgPYvrXbT4gRV25uPFnn7u5+VOsAFrTlo/xMYl05WujWEmNCPnudofosgtFX7PAEZv9BJq/LXteJTdrhqx5pIcga79v2HN7marl35CCQBoKHLoXPRb8ezePCU7D9hp8WxMJP/QY4HSUQALCTFKPEptSUj0iNzt4Onx8n2vvPqInmQNwNoNWGe3FaYTql8M8P31z7FJusj5WjfcfmsMx/s1WnqGux8hEii6kZ+4QVzz/Qw53QNKAjGeXC4iBr6rS8SQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OK4AJMuo6hUidNwsq5l7x9vlq0SwlXiluScv/lfohoo=; b=Rv8anekgkm1wur9nHVFlebma1ibpwa4gHfuyURn+p4wyDajlHaRvkvsa+fHPvezPG5RGEJqRjQFwFL3pEMDG84Ja0fW1qDjnylq+9aMUhNYLYUQ1FTS+vskz1qzsQUceY/plsPvNm3jYRyH85jvt3ZaW8evJ8PVTWrovWOKBuMy0iFNCWcS4Rmd3CJhjc+ZHqv7iiVa3Mm9uuP5fVcXaNmlJ2rnKTt2l/0CPcTT/u+FrIW9kMM5WrGu4cFhclIqoce81sUl4I3u9kZa8SXUngA4Anz4jnkm6nhEOX89QJo2MAoJpqkW3NOKLNpFuBG7a+ghlU+dSMvb9XTkRwiT5VQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OK4AJMuo6hUidNwsq5l7x9vlq0SwlXiluScv/lfohoo=; b=FU4s52jf37XV+btDD+0BNDrFqez3OxEUf3/gldJlt7rAynkkGQaBP+mlLkZVAtgEDUkgrjloQPnE3jWnltqJhB81+Dlk4md/jSHWG91840dSRJ3Nth/1CWWcFrpBBnDT1ar8yvlLPVFMt/o6x6UfggkXJLavvWCLg8HOPY6YJAc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO4P265MB6447.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar 2026 14:05:49 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%5]) with mapi id 15.20.9678.017; Thu, 5 Mar 2026 14:05:47 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 05 Mar 2026 14:05:46 +0000 Message-Id: Cc: "John Hubbard" , "Danilo Krummrich" , "Joel Fernandes" , "Alistair Popple" , "Eliot Courtney" , "Zhi Wang" , "Simona Vetter" , "Bjorn Helgaas" , "Miguel Ojeda" , "Alex Gaynor" , "Boqun Feng" , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , "Benno Lossin" , "Andreas Hindborg" , "Alice Ryhl" , "Trevor Gross" , , , "LKML" Subject: Re: [PATCH v5 21/38] rust: ptr: add const_align_up() and enable inline_const feature From: "Gary Guo" To: "Alexandre Courbot" , "Gary Guo" X-Mailer: aerc 0.21.0 References: <20260221020952.412352-1-jhubbard@nvidia.com> <20260221020952.412352-22-jhubbard@nvidia.com> <89b240a4-33ec-44dc-8f7c-1a3f8d379e0d@nvidia.com> <282c94d3-f32c-4851-969f-61fc968de6a7@nvidia.com> <2fe31d10-733c-414c-9936-2d892f2a4186@nvidia.com> <3ff4588c-1322-4723-bb30-9049d0b316d6@nvidia.com> <22041c9e-1eda-4273-b5be-6f277dec4a4c@nvidia.com> In-Reply-To: X-ClientProxiedBy: LO4P123CA0075.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:190::8) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: rust-for-linux@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|LO4P265MB6447:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f3d94fa-e3cd-467e-0646-08de7ac04cd1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: F8m7Rrr4sndyEG1jVC5lvA5DwwRAVB3mysCgnqb7lVfYkXV3RYQZLzf2rs55LuwZjY27pYZ3C9FHU0w+i8haWF2pMXsK8fLenHY1OPbez0sjhv2VTP79ON2pvf53SgD8Y0RSg9LNKuoF8DciD3sKJh3huv1lUk1K4Qc7+uJbcgrPyXITjXZC8w6PJggh9uP/oeKjXlxcBrJpfbS2KgNj9cqYlrpgTpafFo/A3U+DGlXR42W0EkBZiEM0lOsqLQd4SZ5Hgcs95RTmNIk28dBXB/vyReA45cffjvDItoVNNsn1d+SYIfynCKTHznKF/56iVgU83Aa4XChtpIvA3h9gHxKDszU5mSAn4e6TXEb1uIecv8t4kKu+BmejI7Z6LOnIT0R7C0060BTmxweAGUxRbv/hGE/s64flD34QxYPm+HWlsbnHRN9O+DD5pASDGRE79L21bSF9T2yLnCThNKFLelB3wBa1LdgzFWBzsa7YLHkR2F+DUCup9SWyiWDmGGhoE749ZPallM8U3NYN0NaXkHmhSryucvyHJtJH8skVENQvLeKMPDDuh9RiXwRieUQ8XRW5uT3xRHJWRjk8TeRoYfLCFDS0SkmpeslTPpca6MeB8BoEvAYCWHB3zkld5dYGC5Cy2Y/YMHpRybkF2j5R/ZSZPyU2sAdf5hnq1gOu5jnrrlyOUvzMp8FqNbih183oyK1BNDbqBpvF0VfBuylDKLOiK2H5F22XW0KfZV43a04= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cWo0b3l3ODRNSXV0MzhDMnA4azRSYmUvSTQ0OFJlZ1VDZExqa0E2SWhKR3ly?= =?utf-8?B?VnJPK1dMWWc5UkpBK29rL2xXS1hXRVQvVmtESWE3T2NhVmN6eDJZSUNVWUZk?= =?utf-8?B?MDFTbUc3d1dZQUpzSWhvK2ZvcVZTUE1rbVh1WlNKbmcwR2xKK2hxb0VsSlB2?= =?utf-8?B?ZmNhVWp5UzI1RGtaNlE1VlY5dGFOSzhHOGR3S3ZzMnZJZWlJL3haRmhUaVlm?= =?utf-8?B?SEw3a2tXL2o3Z3dOZTFNd0JvdmU4N3FaZndjWTQ5ekFUK0F2N05UaUpBUnAv?= =?utf-8?B?L0xpVjhYTXpOSjh5M2ExVzg1VWppRmQ0VzkzZkdlSUlvSkxkMW1mTVZUN25Q?= =?utf-8?B?VUR5SzlMSTY0N05STmRTQW9YU25GQndxVnBzVWNOYjZmY25QRVNIM2FGVHhj?= =?utf-8?B?OFIvb2J1Q0pIUDVxQm9WYXF4RDEyRDlyT1YrN3lpdzh0Y1NFZUF2Ukt2OVoz?= =?utf-8?B?bG1FbnJFKzhqMjc4YlZGNWhEQlVYcHJHYUF1UlQySGR2RklZMEE0M3dGYXFQ?= =?utf-8?B?bGorRDRMaFpWRkZVTk5ZdUZkOEJKQ3ozOWQxRWFBU0ZVMzFVbC9ZNzNkdUxO?= =?utf-8?B?bFdnQk9zMVcwTUFyY3ZJY1ZidGxML1ZsYi9aLzFaZU9Ic2pOUzVybW9WWUZr?= =?utf-8?B?RHRWYzQrSHV5aEo0WlBRa1lYT0JRZ081WUo1RXZjaVIyZFppMysvQ0FsNEdq?= =?utf-8?B?djVFVXBxRzhMdnI2NGszOTZxNlc2OUR6aFlVUGJiWXlGTzlURzBZSk5DRk1a?= =?utf-8?B?Q0J4M042TnliaHlkS3lMS1FpVy9WcmFsVVkydnBLenNTS2RJZ1ZCd3NJV3h6?= =?utf-8?B?dURFMURCT3licjgwSkEvVFVFZklodVhNTVF0OTZsVklZM3JHZlIzdlNtQU5X?= =?utf-8?B?QmE3eGE2ZGxmbWNGRFFCZit4dDJpTlM3ajNmWkI2T2czWGwrOGhBeDEvMjN1?= =?utf-8?B?aUtZV2d5ZmJ3Q0RYV0JmRnhzTmNTNHZxNnVtdWZXNzk4T0JqTEZsZzBteEc0?= =?utf-8?B?ak01SHZZWjBrTUR1NUlOSzFzSFFiNHlUaXhyTUNZOGhuOVM4bFJpRm1OQTY2?= =?utf-8?B?KzVwbXNEaWVPWUQxc0dGVlUxZ1ZRVVFuWE8zSDBsZWU2ZjBHOTdHblEzZTdl?= =?utf-8?B?NitaVUMyN1VySE1kQlRtQ2dDOTVKWmFWOG9ZZUJoSFQ1QW1vNitUTXE2djhu?= =?utf-8?B?bENXdWxDM3B5eFRpTkxsallVSVEzbjNybXZkQ1JkVElWVzFObkd3Mnc4VVFI?= =?utf-8?B?am9nWlI3L0NmWlhnZDI1N3AxZTQxVnlJbmZsdmFldGgxMlJVMG1SWVoxSnpn?= =?utf-8?B?SVNuMkFFQmcyZU4zNUtBZytuU1d6TTYrREMvWGxUeU5mMDJmRnhib1NUK3RF?= =?utf-8?B?R084c21ONi9OR0NMMVZEbG1RMmhUQjN2TXVPbWhqMm5IaG8vUHhQN0srcW9S?= =?utf-8?B?UWtYVmEwT1dHODlsYVgzQTByTGxUSmN3MXkxQUROYUVva1FIY2NqZVNOUEpU?= =?utf-8?B?Nk8vZy9wcDNSUk1RN2lQR0RvdWVLckJYOG4rWFlQSGR0eTNuUlJrVlZQcTZq?= =?utf-8?B?RWhwanV1QXlCUlgyWjhjTU9IOGpjV1NyUlpTSXJuZVc5UFJ4c0R6Q1UrYTc5?= =?utf-8?B?OUQ5ZkhEYXBydTBCZ3d0MXcwRC9LcHJlM2t6VFJBYkIrZS9MU0N2a3BLY2Q0?= =?utf-8?B?OFRORVB5UW9ZalJPZDZrN2JibnBKQjh2Z00vdlJlR3F1eGdIMFltbU9TenpV?= =?utf-8?B?NThJM1IxQTZkbTNvYVNXTGtKK0RGMmpUL1RjaFpFOEhzTm0yaDZFUWVSNnQ0?= =?utf-8?B?eDVpa2Ixem5tdzZDY2I5Q3NvcjhqMEpjRUZicDBPdXNQNGdmS3FkYitKRUNG?= =?utf-8?B?UlRRdE9tRjh0M0t3ZUdHeWJaejFjcVhxZ2RycFFVbE9GaFZZMGl1Mi9DL3px?= =?utf-8?B?U0s0bUlMYVBjWCtQc2xBUS9XNllXMnJRejhXUFJmb3BCUWNDUmVacFRrby90?= =?utf-8?B?YmpQUmlONWFQYjNqNzE4V1oyTmN3a3JWdFo2ek5BWkxLSTcvS3MzUFRTaC81?= =?utf-8?B?TXdFOE9BODVOeXFZSDZaS3NDRDdWc0R4K1k3L0dVbDYyMmE4UlpDUWFZVUZh?= =?utf-8?B?ZHNCdmN2RzY1a0ZrSFY2UUdtc3RlZW9JanFUQ1Z6d3FqV1RPZVE5dXdHMm9y?= =?utf-8?B?THhxdml3LzdNZko4cFJWSmtjcmIrcmNEV2VYRG51UHZEcGx1MGFPVlVsK2RB?= =?utf-8?B?V2NOa2ZXcVpES0VPRFV2M1c4eUxZaDBsbFlnQkpsY0k0d2Erck1NWW8wRXow?= =?utf-8?B?QjF2WCtXWENrWUpoS2s1VlFrNHo0NkpaMUNWN3lBL25LYWtTNW5xQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 1f3d94fa-e3cd-467e-0646-08de7ac04cd1 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 14:05:47.5150 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FesGkOOkCtcAfF8s/4kfyBZlyD0MahZLS7wzU40oYJ+qbGh3WdUWmrIxqH5HWxeSDoEWLYiDuDOsD1wRjDSF5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB6447 On Thu Mar 5, 2026 at 1:59 PM GMT, Alexandre Courbot wrote: > On Thu Mar 5, 2026 at 9:28 PM JST, Gary Guo wrote: >>> >>> const TEST_ALIGN: usize =3D const_align_up::<256, 10>(); >>> >>> This uses purely const asserts, but you have to work with two `usize` >>> arguments. The version below looks a bit nicer as it leverages the >>> power-of-two invariant of `Alignment`: >>> >>> impl Alignment { >>> const fn const_align_up(self, value: usize) -> usize { >>> build_assert!(value <=3D usize::MAX - !self.mask()); >>> >>> (value + !self.mask()) & self.mask() >>> } >> >> This is fine, too, although I think just returning an `Option` and ask u= ser to >> unwrap it in const eval is better. > > Why? Aren't unwraps something we want to avoid? > > We already have fallible methods for non-const contexts, so why give > another method that essentially behaves the same when we want to use it > in scenarios where we know the result will be successful anyway? Unwrap is only bad when it can panic. It's not an issue for things that is apparently const eval only, e.g. inside `const {}` or `const FOO: Bar =3D b= az`. Best, Gary