[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



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.