Page MenuHomeFreeBSD

arm64/nexus: limit to INTR_IRQ_INVALID interrupts
Needs ReviewPublic

Authored by ehem_freebsd_m5p.com on May 30 2021, 4:48 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 20, 2:15 PM
Unknown Object (File)
Dec 23 2023, 4:35 AM
Unknown Object (File)
Jul 3 2023, 12:19 PM
Unknown Object (File)
Jun 19 2023, 7:32 AM
Unknown Object (File)
Jan 16 2023, 2:29 PM
Unknown Object (File)
Jan 4 2023, 6:11 PM
Subscribers

Details

Reviewers
mhorne
manu
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...