Page MenuHomeFreeBSD

arm64/nexus: limit to INTR_IRQ_INVALID interrupts
AbandonedPublic

Authored by ehem_freebsd_m5p.com on May 30 2021, 4:48 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, May 15, 2:16 PM
Unknown Object (File)
Fri, May 15, 11:10 AM
Unknown Object (File)
Fri, May 15, 4:23 AM
Unknown Object (File)
Fri, May 15, 4:23 AM
Unknown Object (File)
Tue, May 12, 9:57 AM
Unknown Object (File)
Apr 20 2026, 10:15 AM
Unknown Object (File)
Apr 17 2026, 9:30 AM
Unknown Object (File)
Apr 16 2026, 5:23 AM
Subscribers

Details

Reviewers
mhorne
manu
andrew
Summary

Even INTR_IRQ_INVALID seems like rather a lot of interrupts right now.
I suppose some future device might need that many internally, but right
now even INTR_IRQ_INVALID exceeds all real world devices.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 42135
Build 39023: arc lint + arc unit

Event Timeline

Based on how rm_end = ~0 breaks the resource manager code, using that as the maximum is wrong. I'm unsure of what upper limit should be used, but 2^16 seems reasonable as the maximum interrupt number for the nexus. Perhaps 2^20 to leave a bit more headroom between the maximum allowed by a GICv3 and what some perverse system designer might actually make use of?

Last comment was mine on May 30th. It is now July 17th and no word. Month and a half seems a bit on the long side...

In light of what the intrng code does, might I suggest this as an alternative? Seems a genuine concern.

ehem_freebsd_m5p.com retitled this revision from arm64/nexus: limit to 2^16 interrupts to arm64/nexus: limit to INTR_IRQ_INVALID interrupts.Oct 16 2021, 1:28 AM
ehem_freebsd_m5p.com edited the summary of this revision. (Show Details)

There would be a distinct issue if this limit got hit...