[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
- To: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- Date: Thu, 5 Mar 2026 23:01:20 +0000
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
- 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=tdB1xUBS8xTu12mJFI7HIru34MteWtqhpTTfhnCbXiE=; b=hbpQJliuMFeKqG0tho+mLbtFpPa6gcXMPlozG12XEnBP4yhfr3fDIDELVmV2puMxL0sfOWsy7fa835IKxyzupStZUag1RhBtxmzJ1hHimVnRFzQAz9Dusa6xB3LLoyi3O+mFYXQy2GZxlFUxbUm0oCQcfjQwfkEfVWjtLMsvZ+9zBy6bXEpyP/tNJcOH528TqSLdR9NWikVrowup/AxXM5Ak+QTjd02kQ8uUCFt5hRAaJHKIyQwxamfdJuy5L5GH+jBIv5qHQpJ2WxKBq6ejMuVEKL2CMCFLMWEUA0gi5aquQMHKO3CaH/EImG7B1Q3C6wK+obaHeUKA2y58EMXG/g==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Htp9lVvbe6xRNsKER0lw1KeL5eaVXlxsSolh+Cac9O/1DntTYwPjlMZ2uVFxS+l6IDFgK6wrR/DFODiSYKOOnLuHRqLHrcbpi9EG69qMCeSGzCfBN3oGJFSc/WnwZW5q6U0QZQRKYw3yLbXuB8Dqb2bPMhTi+BXCBOqMobyExvrcilFzbwCVQd9fBzaqS8zHjo5jDlJ0ks2h3f7XoL7fZKAvs1S+MIAE3H+fJCjDubgmpRpXHavODe0T+fOVEXHwhLdW/N0yKemK8L/wWI7f5zNpj5ANBp5KXV5agTFxqsr+/TDG2XzKeckckmChUOjVp3ZeC5XOKvBtaOz7S29vww==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
- Delivery-date: Thu, 05 Mar 2026 23:01:44 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
> The lr_mask bitmap tracks which List Registers (LRs) are in use for
> virtual interrupt injection. Previously, lr_mask always used uint64_t
> (8 bytes) to support the maximum number of LRs across both GIC versions.
>
> However, GICv2 and GICv3 have different hardware limits:
> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>
> This patch introduces conditional compilation to optimize lr_mask size:
> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>
> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
> cannot have a value > 15. Thus, it should not possible to hit the
> BUG() in the default case.
>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>
What does this actually get you?
Because it doesn't actually eliminate the BUG()s you reference.
If you really want to go ahead with this patch, then make a lr_mask_t
or the right type and don't double-code everything.
~Andrew
|