Page MenuHomeFreeBSD

Fix bugs in interrupts allocation on ARM64
ClosedPublic

Authored by zbb on Jan 29 2016, 6:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 3, 11:53 PM
Unknown Object (File)
Sun, Nov 3, 11:53 PM
Unknown Object (File)
Sun, Nov 3, 11:53 PM
Unknown Object (File)
Sun, Nov 3, 11:53 PM
Unknown Object (File)
Sun, Nov 3, 11:41 PM
Unknown Object (File)
Sun, Nov 3, 7:09 PM
Unknown Object (File)
Oct 3 2024, 6:24 PM
Unknown Object (File)
Sep 26 2024, 9:55 PM
Subscribers

Details

Summary
  1. Separate interrupt descriptors lookup from allocation. It was possible to perform config on non-existing interrupt simply by allocating spurious descriptor.
  2. Must lock the interrupt descriptors table lookup to avoid mismatches. This ought to prevent trouble while setting up new interrupt and dispatching existing one.
  3. Use spin mutex rather than sleep mutex. This is mainly due to lock in arm_dispatch_intr

This should be eventually changed to a lock-less solution without
walking through a linked list on each interrupt.

Reviewed by:
Obtained from: Semihalf
Sponsored by: Cavium
Differential Revision:

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

zbb retitled this revision from to Fix bugs in interrupts allocation on ARM64.
zbb updated this object.
zbb edited the test plan for this revision. (Show Details)
zbb added reviewers: wma, andrew, imp.
zbb set the repository for this revision to rS FreeBSD src repository - subversion.
zbb added a subscriber: arm64.
wma edited edge metadata.

As we discussed today, looks fine to me.

This revision is now accepted and ready to land.Jan 29 2016, 7:00 PM
andrew edited edge metadata.
zbb edited edge metadata.

Don't lock PIC_ methods.
Not only this implies some behavior on methods but also is not necessary because we only need lock on the interrupt descriptors list and interrupt resources are locked by the resource manager.

This revision now requires review to proceed.Feb 8 2016, 10:55 AM
wma edited edge metadata.
This revision is now accepted and ready to land.Feb 8 2016, 11:22 AM
This revision was automatically updated to reflect the committed changes.