Page MenuHomeFreeBSD

intrng: merge separated PIC types
AbandonedPublic

Authored by ehem_freebsd_m5p.com on Feb 19 2024, 7:58 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Oct 24, 4:41 AM
Unknown Object (File)
Mon, Oct 21, 4:44 PM
Unknown Object (File)
Sep 9 2024, 2:30 PM
Unknown Object (File)
Sep 9 2024, 5:47 AM
Unknown Object (File)
Sep 5 2024, 6:53 AM
Unknown Object (File)
Jul 30 2024, 4:08 AM
Unknown Object (File)
Jun 17 2024, 10:28 PM
Unknown Object (File)
Jun 6 2024, 7:22 AM
Subscribers

Details

Reviewers
jrtc27
mmel
Summary

"Normal PIC" and "MSI PIC" are not mutually exclusive. Many controllers
perform both tasks, so merge records for both types together.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 56111
Build 52999: arc lint + arc unit

Event Timeline

This is another approach to the issue pointed out in D40474, mainly using ->pic_flags as flags and allowing a pic_list entry to fill both roles.
Another variant of this strategy would be to add a pair of boolean arguments to intr_pic_register() so the caller would indicate which roles they can fill. This variant could be argued to be better as each layer of the implementation could get its own pic_list entry.

Notes: A bunch of the pic_*() functions in INTRNG declare their flags arguments as int which is wrong. Seems overkill to send that commit through Phabricator (could be handed off with patches/commits for D40474/D43980). I also have a cleanup commit which includes merging all those redundant KASSERT() together. This is silly to test pic_lookup() was implemented correctly in so many places.

Any word on D43980? Does seem appropriate to only create a single pic_list entry for combined PIC/MSI controllers.

Ping!

Does the silence mean it is now time to move this onto GitHub for landing? (may be better since this covers more than 1 commit)

Still needs a positive review and can't be contested on github.

Rounding up reviewers and getting reviews updated seems to get done more effectively via GitHub. I'm concerned about GitHub's handling of open source projects, but if that is the only way to make progress...

The problem which this was a part of solving looks like it will be dealt with via other means. As such dumping this.