Skip to content

Commit d5c1e6e

Browse files
committed
arm64-64k: Increase max NR_IRQS from 64+8192 to 2^^19
For large HPC users of arm64 that will be using the 64k page-sized kernel variant, increase the needed max number of irqs from the current default, which is 64+8192, to a desired 2^^19. This is a RHEL-only patch. It is based on the original upstream posting, which was rejected because it put too large a memory increase for small memory arm64 systems. In this RHEL-only variation, we only change it for the 64k page-size variant, arm64 kernel b/c that's the use-case, and doesn't impact the 4k page-sized (standard) arm64 kernel. Note: A RHEL8 kernel on a laptop has 524544(512K+256) as NR_IRQs, so 2^^19/512K is not unreasonable for a server, but arm64-4k may be in smaller, edge servers. The increase in memory for the fixed-size array that NR_IRQS sizes is approx. 256K bytes, which is deemed small for arm64-64k memory configurations. The accepted upstream patch for this increase was based on a dynamic, maple-tree design. It is too late in the release to pull in the core maple-tree support, and base this functionality with little use seen upstream. Note: An attempt to base it on XArray, which is in RHEL9, failed upstream, thus the (successful) maple-tree patch accepted upstream. This patch will be reverted and replaced with the upstream version, based on maple-tree, in the next release, when the core maple-tree support will be backported (in kernel and in crash for use in crash-analysis). Upstream Status: RHEL only Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2166450 Testing: Simple boot testing and check KERN_INFO output of NR_IRQS. v2: set Upstream status to RHEL only. v3: rebase to tip, removing MR1820 dependency. Signed-off-by: Donald Dutile <ddutile@redhat.com>
1 parent 032ef07 commit d5c1e6e

File tree

1 file changed

+9
-0
lines changed
  • arch/arm64/include/asm

1 file changed

+9
-0
lines changed

arch/arm64/include/asm/irq.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@
44

55
#ifndef __ASSEMBLER__
66

7+
8+
/*
9+
* RHEL-9.2-only -- increase max NR_IRQS from 64+8192 default
10+
* for large, HPC arm64 kernels with 64K page-size
11+
*/
12+
#if defined(CONFIG_ARM_GIC_V3_ITS) && defined(CONFIG_ARM64_64K_PAGES)
13+
#define NR_IRQS (1 << 19)
14+
#endif
15+
716
#include <asm-generic/irq.h>
817

918
struct pt_regs;

0 commit comments

Comments
 (0)