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)
Sun, Apr 5, 4:24 PM
Unknown Object (File)
Sat, Apr 4, 4:46 AM
Unknown Object (File)
Thu, Apr 2, 10:28 PM
Unknown Object (File)
Wed, Mar 25, 9:13 AM
Unknown Object (File)
Sat, Mar 14, 9:40 PM
Unknown Object (File)
Fri, Mar 13, 10:28 PM
Unknown Object (File)
Wed, Mar 11, 8:08 PM
Unknown Object (File)
Wed, Mar 11, 2:59 AM

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).