Page MenuHomeFreeBSD

x86: change signatures of ipi_{bitmap,swi}_handler() to take pointer
ClosedPublic

Authored by kib on Mar 6 2026, 12:02 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, May 21, 11:01 AM
Unknown Object (File)
Fri, May 15, 1:20 PM
Unknown Object (File)
Fri, May 15, 1:20 PM
Unknown Object (File)
Fri, May 15, 10:35 AM
Unknown Object (File)
Fri, May 15, 10:35 AM
Unknown Object (File)
Fri, May 15, 8:12 AM
Unknown Object (File)
Tue, May 12, 3:48 PM
Unknown Object (File)
Sun, May 10, 12:14 PM

Details

Summary
instead of the frame itself.  It is some stretch of the amd64 ABI, and
is not easily fullfilled when handlers are called from C and not asm.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.Mar 6 2026, 12:02 AM
This revision is now accepted and ready to land.Mar 7 2026, 12:22 AM

Drat. Phabricator flagged me due to the Xen changes, but I didn't look too closely since it seemed neutral.

I've gotten the impression trap frames are being passed around too much. I think curthread should be updated rather closer to the handler and not at intr_event_execute_handlers(). Updating at intr_event_execute_handlers() causes problems for cascading PICs since they go through the function twice. This isn't too much of a problem on x86 since only Xen uses the functionality (a proper driver for Hyper-V likely would too, Bhyve may want in the future). For other architectures it is a real problem.

Notice Github #1748 (this was proposed a while back, I'm unsure of the last 2 commits and the clock path needs checking).